【学习笔记】DQL查询数据

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`

image-20220929112055544

 

去重 distinct

作用:去除select查询出来的结果中重复的数据,只显示一条

SELECT * FROM `result`

image-20220929113529780

SELECT DISTINCT `studentno` FROM `result`

image-20220929113642547

 

数据库的列(表达式)

数据库中的表达式:文本值、列、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
posted @ 2022-09-30 15:15  GrowthRoad  阅读(14)  评论(0编辑  收藏  举报