学过编程语言的肯定知道,关键词就是在语言系统中保留字,具备特定的意义和功能,SQL语句也是一样的。不过SQL语言系统中的保留字相对会较多,具体可见附录。
接下来若干篇幅会根据常用的关键字介绍功能。
在SQL语句中,并不分大小写,所以关键词的大写和小写都执行一样的功能。
不过一般约定俗称的习惯是将关键词全大写,将对象(数据库实例、表、列等)全小写。
SQL语句是由关键词和待处理实例(对象)组成的,语句结束符是;或者\g(因为方便一般会使用;),空格和换行都不意味这语句的结束。
SHOW关键词主要功能是查看,可以查看数据库列表,表列表,列列表等等。
对于我来说是非常好用又基础的命令,因为在处理数据之前有可能会忘记实例的准确名字,通过SHOW关键词可以帮我解决我需要帮助的记性。
句法如下:
SHOW DATABASES;
#显示服务器上的数据库列表
SHOW TABLES;
#数据库中的表列表,这里需要先选定某一数据库
SHOW COLUMNS FROM tablename;
#显示表中的列
结果如下
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| library | #<---------------这是我们建立的数据库,其他都是系统的数据库
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> SHOW TABLES;
+-------------------+
| Tables_in_library |
+-------------------+
| products |
+-------------------+
1 row in set (0.00 sec)
mysql> SHOW COLUMNS FROM products;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| prod_id | int(11) | NO | PRI | NULL | auto_increment |
| prod_name | char(50) | NO | | NULL | |
| quantity | int(11) | NO | | NULL | |
| item_price | float | NO | | NULL | |
| supplier | varchar(50) | NO | | NULL | |
| numbers | int(11) | NO | | NULL | |
| address | varchar(50) | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
USE关键词主要功能是导入数据库,一般都是在最前面定义的语句。比如上面查看表列表的时候需要先导入某一个数据库
句法如下
USE mydatabase;
SHOW TABLES;
这就是查看在数据库mydatabase中可用表的列表,结果如下,表示有两个表可以使用(分别是friends、family)。
+---------------------------+
| Tables_in_mydatabases |
+---------------------------+
| myfriends |
| family |
+---------------------------+
SELECT关键词主要功能就是选择数据(众所周知select就是选择的意思)。这大概是最常用的关键词。SELECT能够组合很多子句,达到条件下选择数据的功能。后面会见到。
句法如下
USE mydatabase;
SELECT names FROM myfriends;
#这里使用的是列名(names)同样可以用完全限定列名(myfriends.names)
SELECT names
From myfriends;
第二句和第三、四句实现的功能都是一样的,但是后面这种方式看代码时更加容易理解。
可以选择多列或者全部列
#选择两列
SELECT names, telephones
FROM myfriends;
#选择全部列
SELECT *
FROM myfriends;
可以通过关键词LIMIT定义结果数量,DISTINCT定义非重复结果。
SELECT DISTINCT names
FROM myfriends
LIMIT 2,5;
语句表示在friends中的非重复项中从第3行开始选择5行作为结果。
SELECT语句选出的结果并没有一般意义上的排序含义,如果想要结果能够以某种顺序的形式出现,可以使用ORDER BY子句。
SELECT names
FROM myfriends
ORDER BY names
输出的就是names按照首字母排序的结果。
当然关于排序也有很多种设置,比如多列排序,升序降序等。例如
SELECT names, statue
FROM myfriends
ORDER BY statue DESC, names;
输出的是names、statue两列,并且按照statue降序排列names升序排列(排列默认是升序)。