@TOC
DQL语言
DQL(Data Query Language,数据查询语言)
查询数据库数据,如SELECT语句
简单的单表查询或多表的复杂查询和嵌套查询
数据库语言中最核心、最重要的语句
使用频率最高的语句
SELECT语法
指定查询字段
查询表中所有的数据列结果,采用“*”符号
select * from student;
可指定查询的结果数据列
如只查询student表中的学号、姓名、电话
SELECT StudentNo, StudentName, Phone FROM student;
AS子句
AS子句作用
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另外一个新名称来代替
AS子句用法
SELECT StudentNo AS “学号” FROM student;
SELECT a.StudentNo FROM student AS a;
SELECT Phone+1 AS Tel FROM student;
DISTINCT关键字的使用
作用
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条
使用表达式的列2-1
表达式一般由文本值、列值、NULL、函数和操作符等组成
应用场景
SELECT语句返回结果列中使用
SELECT语句的ORDER BY、HAVING等子句中使用
DML语句中的where条件语句中使用表达式
使用表达式的列2-2
在SQL语句中使用表达式
返回的列中使用,如
避免SQL返回结果中包含“ .”,“*”和括号等干扰开发语言程序,如
where条件语句
用于检索数据表中符合条件的记录
搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
搜索条件的组成
逻辑操作符
比较操作符
逻辑操作符
比较操作符
BETWEEN AND范围查询
根据一个范围值来检索
等同于 >= 和 <= 联合使用
LIKE模糊查询
在WHERE子句中,使用LIKE关键字进行模糊查询
与“%”一起使用,表示匹配0或任意多个字符
与“_”一起使用,表示匹配单个字符
使用IN进行范围查询
在WHERE子句中使用IN进行范围查询
查询的字段x的值,至少与括号中的一个值相同
多个值之间用英文逗号隔开
NULL空值条件查询
NULL
NULL代表“无值”
区别于零值0和空符串“”
只能出现在定义允许为NULL的字段
须使用 IS NULL 或 IS NOT NULL 比较操作符去比较
连接查询(多表查询)
连接查询
如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询
分类包括
内连接 ( inner join)
等值和非等值的连接查询
自身连接查询
外连接 ( out join )
左连接(LEFT JOIN)
右连接 ( RIGHT JOIN)
内连接查询2-1
INNER JOIN内连接
在表中至少一个匹配时,则返回记录
内连接查询2-2
等值和非等值的连接查询
与单表查询类似,都是SELECT语句
把多个表放到FROM后,并用逗号隔开
可使用AS关键字取别名,便于引用
如无重名查询字段则可省略数据表的指定
外连接
左外连接(LEFT JOIN)
从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行
右外连接(RIGHT JOIN)
从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行
不同的SQL JOIN对比
自连接查询
数据表与自身进行连接
从一个包含栏目ID,栏目名称和父栏目ID的表中,查询父栏目名称和其子栏目名称,表结构如下: