MySql 查询记录

本文介绍了MySQL中的查询技巧,包括内连接INNER JOIN查询各院系人数,LEFT JOIN和RIGHT JOIN展示不同连接方式,LIKE子句用于筛选含有特定字符的记录,UNION操作符结合多个查询结果,并讲解了Delete删除操作。

单表查询院系下专业下的已就业人数

设计表

sql语句

SELECT info.SZYX,info.ZY,
	(SELECT count(*) FROM report_jy WHERE SZYX = info.SZYX
		AND ZY = info.ZY
		AND JYZK = '已就业'
	) yjys,
	(SELECT count(*) FROM report_jy WHERE SZYX = info.SZYX
		AND ZY = info.ZY AND JYZK = '未就业'
	) wjys,
	(SELECT count(*) FROM report_jy
		WHERE SZYX = info.SZYX
		AND ZY = info.ZY
		AND JYZK = '升学'
	) sxs
FROM report_jy AS info
WHERE (zy is not NULL AND zy !='')
GROUP BY ZY

 

内连接:INNER JOIN 

内连接INNER JOIN是最常用的连接操作。从数学的角度讲就是求两个表的交集,从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录

SELECT stu.c_id,stu.s_name,col.c_name FROM yx_student stu INNER JOIN yx_college col ON col.uv_code = '112420' AND col.c_level = '2' AND stu.c_yx = col.id

查询 各院系人数

SELECT
	col.id,
	col.c_name,
	CASE WHEN COUNT(col.id) IS NULL THEN 0 ELSE COUNT(col.id) END AS nums
FROM
	yx_student stu
INNER JOIN yx_college col ON col.uv_code = '112420'
AND col.c_level = '2'
AND stu.c_yx = col.id
GROUP BY
	col.id

CASE WHEN COUNT(col.id) IS NULL THEN 0 ELSE COUNT(col.id) END AS nums FROM yx_student stu

表示总数为null时显示0否则显示总数

左连接:LEFT JOIN 

左连接LEFT JOIN的含义就是求两个表的交集外加左表剩下的数据。依旧从笛卡尔积的角度讲,就是先从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录(见最上面四条) 

SELECT
	stu.c_zy,
	stu.s_name,
	col.id,
	col.c_name
FROM
	yx_student stu
LEFT JOIN yx_college col ON col.uv_code = '112420'
AND col.c_level = '2'
AND stu.c_yx = col.id

 

右连接:RIGHT JOIN

同理右连接RIGHT JOIN就是求两个表的交集外加右表剩下的数据。再次从笛卡尔积的角度描述,右连接就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上右表中剩余的记录

LIKE

需要获取 runoob_author 字段含有 "COM" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。

SQL LIKE 子句中使用百分号 %字符来表示任意字符

select xm,yx,zymc,bjmc from report_qg_xsjf WHERE yx LIKE '%林%'

UNION 操作符

UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据

select xm,yx from report_qg_xsjf UNION SELECT xm,yx FROM report_qg_stuscore

Delete删除 

 

结果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值