IN嵌套子查询
(1) 不相关的IN 子查询:子查询可以单独执行,与被嵌套的查询无关。
如,查询与‘李勇’同系的学生学号 可以先查询出‘李勇’所在的系,然后再到S表中查询与上述结果相同的记录。
SELECT SNO
FROM SXX
WHERE DEPA IN
(SELECT DEPA
FROM SXX
WHERE SNAME=‘李勇’)
查询‘数据库原理’课程的选课人数
SELECT
COUNT(*)
FROM
SCXX
WHERE
CNO IN
( SELECT
CNO
FROM
CXX
WHERE
CNAME=‘数据库原理’)
(2) 相关的子查询:子查询中要用到父查询表的信息,子查询不能独立执行。
如,查询选修课程号为“C01”课程且成绩至少高于选修课程号为“C02”的同学的Cno、Sno和GRADE。
在子查询中,因为要查找该同学‘C02’课程的成绩,所以,需要父查询表中该学生的学号信息。
数据插入
数据插入方式有两种:
(1) 元组值的插入INSERT INTO 基本表名(列名表)
VALUES (元组值)
或
INSERT INTO 基本表名(列名表)
(TABLE(元组值),(元组值),……)
(2) 查询结果的插入
INSERT INTO 基本表名(列名表)
SELECT 查询语句
3.4.2 SQL数据删除
DELETE FROM 基本表名 [WHERE条件表达式]
3.4.3 数据修改
UPDATE 基本表名SET 列名=值表达式,[列名=值表达式……] [WHERE 条件表达式](语义:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出)
对视图的查询(SELECT)操作,和基本表一样,但是视图的更新操作受到下列三条规则的限制:
如果视图是从多个基本表使用联接操作导出的,则不允许更新。
如果导出的视图使用了分组和聚合操作,也不允许更新。
如果视图是从单个基本表使用选择、投影操作导出的,并且包括了基本表的主键或某个候选键, 那么这样的视图称为“行列子集视图”,则可以执行操作。
误点分析
- 相关子查询中要注意查询顺序。
- 删除语句和更新语句显示的结果是几行做音响,要进一步用查询语句才能查看出语句修改情况。
小组作业笔记
小组本次实现SQL与VB进一步连接。实现了进一步功能介绍。