开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情
集合查询
- 集合操作的种类
- 并操作UNION
- 交操作INTERSECT
- 差操作EXCEPT
- 参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须兼容。
[例]查询信息科学(IS)系的学生和年龄不大于19岁的学生
解:方法一:
方法二:
- UNION:将多个查询结果合并起来时,系统自动去掉重复元组。
- UNION ALL:将多个查询结果合并起来时,保留重复元组
[例] 查询信息科学(IS)系同时年龄不大于19岁的学生
解:
[例]查询信息科学(IS)系的学生与年龄不大于19岁的学生的差集。 解:
数据插入
两种插入数据方式
- 插入元组
- 插入子查询结果
可以一次插入一个或多个元组
插入元组
语句格式
INSERT [INTO] <表名>[(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>] … )
功能 : 将一个新元组插入指定表中
例子
例1.将新生记录(9521105,陈冬,男,信息系,18岁)插入到Student表中。
解:INSERT INTO Student VALUES (‘9521105’, ‘陈冬’, '男', 18, '信息系')
注意
- 必须用逗号将各个数据分开
- 字符型数据要用单引号括起来。
- INTO子句中没有指定列名,则新插入的记录必须在每个属性列上均有值(可以为NULL),且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。
- 插入数据不能破坏表上已定义的完整性规则。
例2、插入一行的部分数据值
解: INSERT INTO SC(Sno, Cno) VALUES('9521105', 'c01')
注意:
- 将VALUES子句中的值按照INTO子句中指定列名的顺序插入到表中
- 对于INTO子句中没有出现的列,则新插入的记录在这些列上将取空值,如上例的Grade即赋空值。
- 但在表定义时有NOT NULL约束的属性列不能取空值。
查询看着理论其实很枯燥无聊,但是有意思的地方就在于真正自己手打出代码的时候,这是一个将理论与实践结合的过程,真的很有用,大家可以多敲几遍试试。