4 DQL查询数据
4.1 DQL
Data Query Lnguage ; 数据查询语言
-
所有的查询操作 都用Select
-
数据库最核心的语言
4.2 指定查询字段
-- 查询全部的学生 select 字段 from 表
SELECT * FROM `student`
SELECT * FROM `result` -- 查询所有学生的成绩
-- 查询指定字段
SELECT `studentno`,`studentname` FROM `student`
-- 使用别名 给结果起一个名字 as 可以给字段起别名 也可以给表起别名
SELECT `studentno` AS '学号',`studentname` AS '学生姓名' FROM `student` AS 1班
-- 函数 拼接字符串 concat(a,b)
SELECT CONCAT('姓名:',`studentname`) AS 新名字 FROM `student`
去重:去除select语句查询出来的结果中重复的语句,只显示一条
-- 查询参加考试的同学
SELECT * FROM `result`
SELECT `studentno` FROM `student`
-- 去重
SELECT DISTINCT `studentno` FROM `student`
数据库的列(表达式)
select 表达式 from 表
-- 查询系统的版本
SELECT VERSION()
SELECT 100*3-1 AS res
SELECT @@auoto_increment_increment
-- 学员考试成绩+1 查看
SELECT `studentno`,`studentresult`+1 AS '提分后' FROM `result`
4.3 where 条件子句
检索条件中符合条件的函数
逻辑运算符
运算法 | 语法 | 结果描述 |
---|---|---|
and && | a and b a &&b | |
or || | a or b a||b | |
not ! | not a !a |
-
尽量使用英文符号
-- where
SELECT `studentno`,`studentresult` FROM `result`
-- 查询考试成绩在 95-100 之间的
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentresult`>=95 AND `studentresult`<=100
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentresult`>=95 && `studentresult`<=100
-- 模糊查询
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentresult` BETWEEN 95 AND 100
-- 查询 1000 号学生之外的成绩
-- != 不等于
SELECT `studentno`,`studentresult` FROM `result`
WHERE `studentno` !=1000
SELECT `studentno`,`studentresult` FROM `result`
WHERE NOT `studentno` =1000
模糊查询 :比较运算符
运算符 | 语法 | 描述 |
---|---|---|
is null | a is null | 如果操作符为null,结果为真 |
is not null | a is not null | 如果操作符为not null,结果为真 |
between | a between b and c | a在 b和c 之间,则结果为真 |
like | a like b | SQL 匹配 如果a匹配b,则结果为真 |
in | a in (a1,a2,a3...) | 假设a在 (a1,a2,a3...)中,则结果为真 |
-- 模糊查询
-- 查询姓刘的同学 like结合 (%,代表0--任意一个字符;_代表一个字符)
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '张%'
-- 查询刘 后面只有一个字的
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '张_'
-- 查询名字中间有 伟 字的同学4
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentname` LIKE '%伟%'
-- in 具体的一个或者多个值 查询指定的学生信息
SELECT `studentno`,`studentname` FROM `student`
WHERE `studentno` IN (1001,1002)
-- 查询地址在北京的学生
SELECT `studentno`,`studentname`,`address` FROM `student`
WHERE `address` LIKE '%北京%'
SELECT `studentno`,`studentname`,`address` FROM `student`
WHERE `address` IN ('广东深圳')
-- null not null
SELECT `studentno`,`studentname`,`phone` FROM `student`
WHERE `phone` IS NULL
-- 查询有出生日期的同学
SELECT `studentno`,`studentname` FROM `student`
WHERE `borndate` IS NOT NULL
谢谢关注哦...