DQL查询数据

DQL查询数据

指定查询字段

-- 查询全部学生
SELECT * FROM `student`
-- 查询指定的字段
SELECT `name`,`age` FROM `student`
-- 别名,给结果起名字 AS 可以给字段取别名,也可以给表取别名
SELECT `name` AS 学生姓名,`age` AS 学生年龄 FROM `student`
-- 函数 Concat(a,b)拼接成一个字符串
SELECT CONCAT('姓名:',`name`) AS 新名字 FROM `student`

-- 语法: SELECT 字段1,字段2 FROM `表`
-- 去重操作
-- 语法:SELECT DISTINCT 字段  FROM `表名`
SELECT DISTINCT gradename FROM `grade`

where条件子句

-- where语法添加条件
-- 语法:SELECT 字段1,字段2 FROM `表名` WHERE 条件1 AND 条件2
SELECT `name`,`age` FROM `student` WHERE `age`>=10 AND `age`<=11

模糊查询:比较运算符

运算符语法描述
likea like bSQL匹配,如果a匹配b则结果为真
ina in (a1,a2,…)如果a在a1,a2…其中的某个值中则结果为真
-- like结合 %(代表0到任意个字符) _(代表一个字符)进行查询
-- 例子:

-- 查询姓王的学生
SELECT `name` FROM `student` WHERE `name` LIKE '王%'
-- 查询姓王的学生且名字为两个字
SELECT `name` FROM `student` WHERE `name` LIKE '王_'
-- 查询姓王的学生且名字为三个字
SELECT `name` FROM `student` WHERE `name` LIKE '王__'
-- 查询姓王的学生且名字中有 文 字的
SELECT `name` FROM `student` WHERE `name` LIKE '王%文%'

-- in(具体的一个或者多个值)
-- 例子:

-- 查询年龄为10岁或者15岁的学生
SELECT `name` FROM `student` WHERE `age` IN (10,15)

联表查询

运算符介绍描述
left join左查询如果左边的表中要查询的字段不为空,无论右边的表查询的字段为不为空都可以查询到
inner join并查询只要左右两边的表中要查询的字段有一个不为空就可以查询到
right join右查询如果右边的表中要查询的字段不为空,无论左边的表查询的字段为不为空都可以查询到

查询两张表

-- SELECT `字段1`,`字段2`,`字段3` FROM `表1` INNER JOIN `表2` ON 两张表的交叉点
SELECT `name`,`age`,`gradename` FROM `student` INNER JOIN `grade` ON `id`=`gradeid`

查询两张以上的表

-- SELECT `字段1`,`字段2`,`字段3` FROM `表1` INNER JOIN `表2` ON 两张表的交叉点 INNER JOIN `表3` ON 三张表的交叉点  

分页和排序

-- 排序:升序 ASC 降序 DESC
-- 语法:ORDER BY `排序根据的字段` 排序方法
SELECT `name`,`age`,`sex` FROM `student` ORDER BY `age` ASC
-- 分页
-- 语法:LIMIT (n-1)*size,size     n代表当前页数,size代表一页有多少个数据
SELECT `name`,`age`,`sex` FROM `student` LIMIT 2,2

子查询

-- where中可以无限嵌套子查询
SELECT  `id`,`name`,`age` FROM `student`
WHERE age IN (
	SELECT `age` FROM `student`
	WHERE `age`>11
)

分组过滤

INSERT INTO student(`name`,`age`) VALUES('王文凯',12)
SELECT `name` ,AVG(age),MAX(age),MIN(age) FROM `student`
GROUP BY `name`  -- 通过指定字段进行分组
HAVING AVG(age)>10 -- 通过条件过滤数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值