图中选中的部分为运行的代码
DQL( Data Query Language 数据查询语言 )
查询数据库数据 , 如SELECT语句
简单的单表查询或多表的复杂查询和嵌套查询
是数据库语言中最核心,最重要的语句
使用频率最高的语句
SELECT
语法
SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
[left | right | inner join table_name2] -- 联合查询
[WHERE ...] -- 指定结果需满足的条件
[GROUP BY ...] -- 指定结果按照哪几个字段来分组
[HAVING] -- 过滤分组的记录必须满足的次要条件
[ORDER BY ...] -- 指定查询记录按一个或多个条件排序
[LIMIT {[offset,]row_count | row_countOFFSET offset}];
-- 指定查询的记录从哪条至哪条
-- 查询表中所有的数据列结果 , 采用 **" \* "** 符号; 但是效率低,不推荐 .
-- 查询所有学生信息:
SELECT * FROM student;
-- 查询指定列(学号 , 姓名)--
SELECT studentno,studentname FROM student;
AS 子句作为别名
作用:
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另一个新名称来代替
-- 这里是为列取别名(当然as关键词可以省略)--
SELECT studentno AS 学号,studentname AS 姓名 FROM student;
-- 使用as也可以为表取别名 --
SELECT studentno AS 学号,studentname AS 姓名 FROM student AS s;
![](https://img-blog.csdnimg.cn/20210615190515836.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
-- 使用as,为查询结果取一个新名字
-- CONCAT()函数拼接字符串
SELECT CONCAT('姓名:',studentname) AS 新姓名 FROM student;
![](https://img-blog.csdnimg.cn/20210615190835173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
DISTINCT关键字的使用(去除重复记录):
作用
:
去掉
SELECT
查询返回的记录结果中重复的记录
(
返回所有列的值都相同
) ,
只返回一条
![](https://img-blog.csdnimg.cn/20210615191223705.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
使用表达式的列:
数据库中的表达式
:
一般由文本值
,
列值
, NULL ,
函数和操作符等组成
应用场景
:
SELECT
语句返回结果列中使用
SELECT
语句中的
ORDER BY , HAVING
等子句中使用
DML
语句中的
where
条件语句中使用表达式
SELECT @@auto_increment_increment;
-- 查询自增步长
![](https://img-blog.csdnimg.cn/20210615191610982.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
SELECT VERSION();
-- 查询版本号
![](https://img-blog.csdnimg.cn/20210615191739789.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
SELECT 100*3-1 AS 计算结果;
-- 表达式
-- pwd集体提加一查看
SELECT studentno,StudentResult+1 AS '提分后' FROM result;
where条件语句
作用:用于检索数据表中 符合条件 的记录
搜索条件可由一个或多个逻辑表达式组成
,
结果一般为真或假
.
逻辑操作符 :
![](https://img-blog.csdnimg.cn/20210615192214430.png)
-- 在user表中查询pwd等于123,同时id为1的id,name和pwd
SELECT `id`,`name`,`pwd` FROM `user` WHERE `pwd`=123 AND `id`=1;
-- 查询user表中id不等于1的id,name
SELECT `id`,`name`FROM`user`WHERE`id`!=1;
模糊查询 : 比较操作符
![](https://img-blog.csdnimg.cn/20210615202327804.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phdmFfaXNfTk9fMQ==,size_16,color_FFFFFF,t_70)
注意:
数值数据类型的记录之间才能进行算术运算
;
相同数据类型的数据之间才能进行比较
;
-- 查询user表中home为北xxxx的id,name;
SELECT`id`,`name`FROM`user`WHERE `home` LIKE '北%';
-- 查询user表中home为徐x的id,name,sex;
SELECT`id`,`name`,`sex`FROM `user`WHERE `home`LIKE '徐_';
-- 查询user表中name为xxxx是xxxx的id,name;
SELECT`id`,`name`FROM `user`WHERE `name`like'%是%';
-- 查询user表中
SELECT`id`,`name`,`sex`,`home`FROM `user`WHERE `home`IN('徐州');
-- 查询user表中info不为空的id,name;
SELECT`id`,`name`FROM `user`WHERE `info`is not null;
-- 查询user表中info为空或者为null的id,name;
SELECT`id`,`name`FROM`user`WHERE`info`='' or `info`is NULL;