注意事项:
1.结束SQL语句:多条SQL语句必须以分号(;)分隔
2.SQL虽然不区分大小写,但建议关键字使用大写,所有表名和列用小写
3.在处理SQL语句时,其中的空格都被忽略
SELECT语句
一、检索
-
检索一列
输入:SELECT 列名 FROM 表名;
-
检索多列
列名之间必须以逗号(,) 隔开,但在最后一个列名后不加逗号
输入:SELECT 列名1,列名2,…,列名n FROM 表名;
-
检索所有列
如果给定一个 通配符( * ),则返回表中所有列。
输入:SELECT * FROM 表名;d注意:建议只有在确定需要表中的所有列时使用通配符
-
检索不同的行
不想每个值每次都出现,即只显示不同的值,需要使用关键字 DISTINCT
输入:SELECT DISTINCT 列名 FROM 表名;
使用 DISTINCT 后,只返回不同值(唯一),必须放在列名前面。一旦使用将应用于该语句中所有要显示的列
-
限制结果
指定表中要显示指定范围的行,使用关键字LIMIT
返回第一行或者前几行
输入:SELECT 列名 FROM 表名 LIMIT x;返回指定开始位置和指定行数
输入:SELECT 列名 FROM 表名 LIMIT x,y;注意:
1)检索出来的第一行的行号为0,因此LIMIT x,y 将从第x+1行开始检索
2)若行数不够,则有多少,显示多少
3)为避免混淆,MySQL 5 支持使用替代语法,即:LIMIT y OFFSET x,译为:从行 x 开始取 y 行。
-
完全限定名
1)列名可以是完全限定名
输入:SELECT 表名.列名 FROM 表名;
2)表名也可以实完全限定名
输入:SELECT 表名.列名 FROM 数据库名.表名;
二、排序检索
为了明确地排序用 SELECT 语句检索出的数据,可以使用 ORDER BY 子句。
-
按一个列排序
输入:SELECT 列名a FROM 表名 ORDER BY 列名a
分析:该语句指示数据库对 列名a 的输出 以字母顺序排序。
-
按多个列排序
为了按多个列排序,只需指定列名,列名之间用 逗号(,) 隔开即可。
输入:SELECT 列名1,列名2,…,列名n FROM 表名 ORDER BY 列名1,列名2;注意: 在使用 ORDER BY 进行多列排序时,根据输入的有限顺序依次进行排列。 在上述输入中,先对 列名1 进行排序,在列名1出项相同值得情况下,才开始对 列名2 进行排序
-
指定排序方向
排序方向可以分为升序和降序,升序关键字为 ASC(默认),降序关键字为 DESC3.1 单列排序——降序
输入:SELECT 列名a FROM 表名 ORDER BY 列名a DESC3.2 多列排序——降序
输入:SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名1 DESC,列名2
注意:DESC关键字只应用到直接位于其前面的列名,上述输入只对 列名1 生效,即 列名1 按照降序排序,其次 列名2 按照升序排序。如果想在多个列上都进行降序排序,必须对每个列都指定DESC关键字。
子句 与 关键字 的前后顺序: 在给出 ORDER BY 子句时,应该保证它位于 FROM 子句之后。如果使用 LIMIT 关键字,它应该位于 ORDER BY子句 之后。