SQL学习(二)

mac2025-05-21  48

文章目录

检索数据排序检索数据过滤数据使用WHERE子句WHERE子句操作符组合WHERE子句用通配符进行过滤用正则表达式进行搜索

检索数据

从某表中检索某列或者多列:

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子句

表操作中检索出表数据的子集是经常用的,下面介绍使用WHERE子句中指定的搜索条件进行过滤:

SELECT 列名 FROM 表名 WHERE 检索条件;

WHERE子句操作符

操作符说明=等于<>不等于!=不等于<小于>大于<=小于等于>=大于等于!<不小于!>不大于BETWEEN在指定的两个值之间IS NULL为NULL值

组合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著

最新回复(0)