(三)数据库管理系统及其应用环境的创建使用数据库查询,视图

这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

数据库查询,视图使用

1. 单表查询

SELECT * FROM s
复制代码

image.png

2. 多表查询并排序输出

SELECT s.Sname,
        sc.Cno,
        sc.Grade
FROM 
    s,
    sc
WHERE
    s.Sno=sc.Sno
 ORDER BY
     sc.Grade
复制代码

image.png

3. 使用聚类函数

SELECT s.Sname,
       AVG(sc.Grade)
FROM 
    s,
    sc
WHRER
    s.Sno=sc.Sno
GROUP BY
    s.Sname
复制代码

image.png

image.png

4. 分组查询

SELECT * FROM sc 
    GROUP BY 
        Cno
    HAVING
        Grade > 90
复制代码

image.png

5. 嵌套查询

SELECT * FROM s WHRER Sno 
    IN (SELECT Sno FROM WHRER sc.Grade>90)
复制代码

image.png

6. 模糊查询

SELECT * FROM c WHRER Cname LIKE '%a%'
复制代码

image.png

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
复制代码

image.png
 

image.png

7.1.1 查询视图

SELECT * FROM V_SSC
复制代码

image.png

 

7.1.2 验证视图

在更新CS系的学生时可以顺利更改

UPDATE V_SSC SET S_Grade=60 WHRER S_no='1' AND C_no='1'
复制代码

image.png

image.png

image.png

 

涉及到了多个基本表,所以不能插入

INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade) 
VALUES ('3', 'FanOne','CS','2','95')
复制代码

image.png

 

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
复制代码

image.png

image.png

7.2.2 查询单表视图

SELECT * FROM v_s
复制代码

image.png

 

7.2.3 插入’CS’系学生信息,视图和基本表都发生变化

INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade) 
VALUES ('3', 'FanOne','CS','19')
复制代码

image.png

 

视图

image.png

基本表

image.png

 

插入非’CS’的时候就会报错

INSERT INTO V_SSC(S_no,S_name,S_dept,C_no,S_Grade) 
VALUES ('4', 'FanOne','CSGO','19')
复制代码

image.png