简单查询语句(SELECT 查询语句)
检索单个列
SELECT 列名 FROM 表名
检索多个列
SELECT 列名1,列名2 FROM 表名
检索所有列
SELECT * FROM 表名
一般,除非你确实需要表中的每个列,否则最好别使用 * 通配符。
虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
使用通配符有一个大优点。由于不明确指定列名(因为星号检索每个列),所以能检索出名字未知的列。
检索不同的行(去重复值)
SELECT DISTINCT 列名 FROM 表名`
不能部分使用DISTINCT
DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT 列1, 列2 FROM 表名,除非指定的两个列都不同,否则所有行都将被检索出来。
限制结果(返回行数)
SELECT * FROM 表名 LIMIT 开始行数,返回行数
SELECT * FROM 表名 LIMIT 返回行数 OFFSET 开始行数 仅MySQL 5以上支持
例:返回表中前五条数据
SELECT * FROM 表名 LIMIT 0,5
或MYSQL5+ `SELECT * FROM 表名 LIMIT 5 OFFSET 0
返回表中第6~10条数据
SELECT * FROM 表名 LIMIT 5,5
或MYSQL5+ SELECT * FROM 表名 LIMIT 5 OFFSET 5
行0 检索出来的第一行为行0而不是行1。因此,LIMIT1,1 将检索出第二行而不是第一行。
在行数不够时 LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13 行),MySQL将只返回它能返回的那么多行。
MySQL 5的LIMIT语法
LIMIT 3, 4的含义是从行4开始的3 行还是从行3开始的4行?如前所述,它的意思是从行3开始的4 行,这容易把人搞糊涂。由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。
使用完全限定的表名
SELECT 表名.列名 FROM 表名
完全限定名字可以在联合查询的时候避免多表的列重名的情况。