命令:
1、登录数据库
shell> mysql -h host -u user -p shop
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log
Type 'help' for help.
mysql>
要点:登录的时候-p后不要跟密码,因为在同一个系统下的其他用户可以用w看到登录信息。最后的shop是数据库名。
2、退出数据库
mysql> QUIT
Bye
你也可以键入control-D断开。
3、查看版本号和当前日期
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
要点:mysql的命令不区分大小写,select/SeleCT/SELECT等都是等效的。但是需要注意的是数据库名字是linux系统下的一个目录故数据库名字是区分大小写的。 * 一个命令通常由SQL语句组成,随后有一个分号。
4、如果你决定,你不想要执行你在输入过程中输入的一个命令,打入\c取消它:
mysql> SELECT
-> USER()
-> \c
mysql>
mysql> 准备好接受新命令
-> 等待多行命令的下一行
'> 等待下一行,收集以单引号(“'”)开始的字符串
"> 等待下一行,收集以双引号(“"”)开始的字符串
5、显示数据库
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
要点:其中mysql数据库是用来存储登录用户权限的不要操作它。
6、改变当前操作的数据库
mysql> USE test
Database changed
7、分配权限给指定用户
mysql> GRANT ALL ON menagerie.* TO your_mysql_name;
your_mysql_name是指定用户名称
8、创建数据库
mysql> CREATE DATABASE menagerie;
数据库名字是linux系统下的一个目录故数据库名字是区分大小写的。
9、查看数据库表
mysql> show tables from DB_Radius;
+---------------------+
| Tables_in_DB_Radius |
+---------------------+
| T_AcctBatchDetail |
... ...
| T_UserDelete |
+---------------------+
23 rows in set (0.00 sec)
10、查看表结构
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
11、从外部文件装载数据
建立文本文件,pet.txt,类似:
name owner species sex birth death
Fluffy Harold cat f 1993-02-04
命令:LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
要点:这里文件需要放在mysql安装目录中。文本文件pet.txt中不需要第一行name owner...。
12、增加数据
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
13、检索表命令
表中所有信息:
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
按条件检索
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1"; #出生日期小于1998年的宠物
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f"; #找出所有雌性的狗狗 使用的 AND
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird"; #找出所有的蛇和鸟 使用的OR
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
-> OR (species = "dog" AND sex = "f"); #找出所有的公猫和母狗 使用的AND和OR的组合
mysql> SELECT name, species, birth FROM pet
-> WHERE species = "dog" OR species = "cat"; #找出所有的狗和猫,只列出名字/类型/生日字段
mysql> SELECT name, birth FROM pet ORDER BY birth; #列出名字/生日,并按照生日升序排列
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; #以逆序排列
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC; #类型按升序排列后生日按逆序排列,注意DESC关键词仅适用于紧跟在它之前的列名字(birth);
mysql> SELECT name, (TO_DAYS(death)-TO_DAYS(birth))/365 FROM pet; #计算出宠物的享年
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet; #计算出宠物到现在的年龄
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age FROM pet; 同上,加上了列别名(age)
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
-> FROM pet ORDER BY age; #使用列别名后就可以使用别名来排序了
14、删除数据从表
mysql> DELETE FROM pet;
15、升级修改数据
mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";
要点:这里的关键字Bowser不区分大小写。
16、SQL的模式匹配
允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。
为了找出以“b”开头的名字:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
为了找出以“fy”结尾的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
为了找出包含一个“w”的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
为了找出包含正好5个字符的名字,使用“_”模式字符:
mysql> SELECT * FROM pet WHERE name LIKE "_____";
阅读(1735) | 评论(0) | 转发(0) |