这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战
数据库查询,视图使用
1. 单表查询
SELECT * FROM s
复制代码
2. 多表查询并排序输出
SELECT s.Sname,
sc.Cno,
sc.Grade
FROM
s,
sc
WHERE
s.Sno=sc.Sno
ORDER BY
sc.Grade
复制代码
3. 使用聚类函数
SELECT s.Sname,
AVG(sc.Grade)
FROM
s,
sc
WHRER
s.Sno=sc.Sno
GROUP BY
s.Sname
复制代码
4. 分组查询
SELECT * FROM sc
GROUP BY
Cno
HAVING
Grade > 90
复制代码
5. 嵌套查询
SELECT * FROM s WHRER Sno
IN (SELECT Sno FROM WHRER sc.Grade>90)
复制代码
6. 模糊查询
SELECT * FROM c WHRER Cname LIKE '%a%'
复制代码
7 创建并使用视图查询
7.1 创建多表连接视图
CREATE VIEW V_SSC (S_no,S_name,S_dept,C_no,S_Grade ) AS
SELECT s.Sno,Sname,Sdept,Cno,Grade
FROM s,sc WHRER s.Sno = sc.Sno AND
Sdept 'CS' WITH CHECK OPTION
复制代码
7.1.1 查询视图
SELECT * FROM V_SSC
复制代码
7.1.2 验证视图
在更新CS
系的学生时可以顺利更改
UPDATE V_SSC SET S_Grade=60 WHRER S_no='1' AND C_no='1'
复制代码
涉及到了多个基本表,所以不能插入
INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade)
VALUES ('3', 'FanOne','CS','2','95')
复制代码
7.2 单表视图
7.2.1 创建单表连接视图
CREATE VIEW V_S(S_no,S_name,S_dept,S_class) AS SELECT
Sno,Sname,Sdept,Class FROM s
WHRER Sdept = 'CS' WITH CHECK OPTION
复制代码
7.2.2 查询单表视图
SELECT * FROM v_s
复制代码
7.2.3 插入’CS’系学生信息,视图和基本表都发生变化
INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade)
VALUES ('3', 'FanOne','CS','19')
复制代码
视图
基本表
插入非’CS’的时候就会报错
INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade)
VALUES ('4', 'FanOne','CSGO','19')
复制代码
近期评论