【学习笔记】DQL查询数据
DQL
-
Data Query Language
-
使用select,查询
-
是数据库中最核心的语言
-
使用频率最高的语句
查询指定字段
-- 查询学生表所有信息
SELECT * FROM `student`
-- 查询指定字段
SELECT `studentno`,`studentname` FROM `student`
-- 给指定字段起别名,也可以给表起别名 使用AS ,需要注意的是,AS后面的具体别名引号可加可不加
SELECT `studentno` AS 学号,`studentname` AS 姓名 FROM `student`
-- 函数 Concat(a,b) a 是前缀,b是某个字段
SELECT CONCAT('姓名:',`studentname`) AS 新名字 FROM `student`
去重 distinct
作用:去除select查询出来的结果中重复的数据,只显示一条
SELECT * FROM `result`
SELECT DISTINCT `studentno` FROM `result`
数据库的列(表达式)
数据库中的表达式:文本值、列、null、函数、计算表达式、系统变量等
select 后面跟的就是表达式
SELECT VERSION() -- 查看系统版本
SELECT @@auto_increment_increment -- 查询自增步长
SELECT 1+1-3 AS 结果 -- 计算表达式
where 条件子句
作用:检索数据中符合条件的值
搜索的条件由一个或多个表达式组成,结果返回布尔值
表达式中又有运算符
逻辑运算符
运算符 | 语法 | 描述 |
---|---|---|
AND && | a AND b a&&b | 逻辑与,两个为真,结果为真 |
OR || | a OR b a||b | 逻辑或,一个为真,结果为真 |
NOT ! | NOT a !a | 逻辑非,真为假,假为真 |
尽量使用英文字母,保证sql的一致性
-- AND 查询分数在80~90 之间的
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentresult` > 80 AND `studentresult` <100
-- OR 查询分数大于80 或 小于60的
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentresult` > 80 OR `studentresult` <60
-- NOT 查询分数不是58的
SELECT `studentno`,`studentresult` FROM `result`
WHERE NOT `studentresult` = 58
模糊查询
运算符 | 语法 | 描述 |
---|---|---|
IS NULL | a IS NULL | a如果为空,结果为真 |
IS NOT NULL | a IS NOT NULL | a如果不为空,结果为真 |
BETWEEN | a BETWEEN b AND c | a在[b,c],结果为真 |
LIKE | a LIKE b | 如果a匹配b,结果为真 |
IN | a IN (a1,a2,a3) | 如果a为a1,a2,a3任意一值结果为真 |
在运算符LIKE中,有两个符号:% 和 _ 相当于占位符
% 代表任意个字符 _代表一个字符
-- 查询姓张的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '张%'
-- 查询姓张,但名字后面只有一个字的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '张_'
-- 查询学号为1000,1002,1003的学生,使用IN一条语句即可解决
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentno` IN (1000,1001,1002)
-- 查询地址为空的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `address` IS NULL
-- 查询地址不为空的学生
SELECT `studentno`,`studentname` FROM `student`
WHERE `address` IS NOT NULL