从某表中检索某列或者多列:
SELECT 列名1,列名2,列名3 FROM 表名;检索所有的列,可以在实际列名的位置使用星号通配符:
SELECT * FROM 表名;上面检索出来的数据顺序是没有意义的,为了明确的排序,我们可以使用ORDER BY子句,ORDER BY子句必须是SELECT子句中最后一条子句:
SELECT 列名1 FROM 表名 ORDER BY 列名2;经常需要按不止一列进行数据排序,例如:如果要显示雇员清单,可能希望按姓和名排序。如果列4中的所有值都是唯一的,则不会按照列5排序:
SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名4,列名5;除了可以用列名指出排序顺序外,还可以按照相对列位置进行排序:
SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 2,3;数据排序默认是升序(ascending)排序,也可以使用ODER BY子句以降序(descendng)排序。
SELECT 列名1 FROM 表名 ORDER BY 列名2 DESC;表操作中检索出表数据的子集是经常用的,下面介绍使用WHERE子句中指定的搜索条件进行过滤:
SELECT 列名 FROM 表名 WHERE 检索条件;SQL允许给出多个WHERE子句,这些子句可以以AND子句的方式或OR子句的方式使用。
AND操作符表示检索满足所有给定的过滤条件的行,OR操作符表示检索匹配任一给定的过滤条件的行,IN操作符用来指定条件范围NOT操作符用来否定它之后所跟的任何条件利用通配符可以创建比较特定数据的搜索模式。
%通配符表示任何字符出现任意次数_通配符只匹配单个字符而不是多个字符[ ]通配符用来指定一个字符集,它必须匹配指定位置的一个字符下面的语句可以找出名字以B或L开头的学生名字:
SELECT student_name FROM student WHERE student_name LIKE "[BL]%" ORDER BY student_name;正则表达式是用来匹配文本的特殊的字符集合的。 我们先来看一个例子:
SELECT student_name FROM student WHERE student_name REGEXP "[BL][a-z]+" ORDER BY student_name;表示匹配以B或L开头,后面为1个或多个小写字母的student_name。
参考书籍: 《MySQL必知必会》 Ben Forta著 《SQL必知必会》 Ben Forta著