【无标题】

emp
#子查询
#两条SQL语句
#工资高于2号部门平均工资的人员信息
SELECT * FROM emp WHERE sal>(SELECT AVG(sal) FROM emp WHERE dept_id=2)
#查询工资最高的员工信息
emp#查询和孙悟空工作相同的员工信息
SELECT * FROM emp WHERE job=(SELECT job FROM emp WHERE NAME=“孙悟空”)
AND NAME!=“孙悟空”

#查询工资最低员工部门同事们的工资
SELECT * FROM emp WHERE dept_id=
(SELECT dept_id FROM emp WHERE sal=(SELECT MIN(sal) FROM emp)
)AND sal!=(SELECT MIN(sal) FROM emp)

#关联关系
#1.一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应
#2.一对多:一张表中有一条记录可以对应另外一张表中的多条记录

#3.多对多:一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录;
#同时B表中的一条记录也能对应A表中的多条记录:多对多的关系
#老师表:t 学生表:s 关系表:t_s
#建表
CREATE TABLE t(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20))
CREATE TABLE s(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20))
CREATE TABLE t_s(tid INT,sid INT)
#添加数据
INSERT INTO t VALUES(NULL,‘苍老师’),(NULL,‘传奇’)
INSERT INTO s VALUES(NULL,‘小红’),(NULL,‘小花’),(NULL,‘小绿’)
INSERT INTO t_s VALUES(1,1),(1,2),(1,3),(2,2),(2,3)
#查询每个老师名字和对应的学生名字
SELECT t.name,s.name
FROM t JOIN t_s ts ON t.id=ts.tid JOIN s ON s.id=ts.sid
#查询苍老师的学生姓名
SELECT s.name
FROM t JOIN t_s ts ON t.id=ts.tid JOIN s ON s.id=ts.sid
WHERE t.name=“苍老师”

#等值连接
SELECT e.name,d.name
FROM emp e,dept d WHERE e.dept_id=d.id AND sal>2000

SELECT e.name,e.sal,d.name,d.loc
FROM emp e,dept d WHERE e.dept_id=d.id AND job=‘程序员’

#内连接
SELECT e.name,d.name
FROM emp e JOIN dept d ON e.dept_id=d.id WHERE sal>2000

SELECT e.name,e.sal,d.name,d.loc
FROM emp e JOIN dept d ON e.dept_id=d.id WHERE job=‘程序员’

#外连接
INSERT INTO emp(NAME) VALUES(“灭霸”)
SELECT e.name,d.name
FROM emp e LEFT JOIN dept d ON e.dept_id=d.id

SELECT d.name,loc,e.name,sal
FROM emp e RIGHT JOIN dept d ON e.dept_id=d.id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值