SQL的集合操作和完整性约束
来源:互联网 发布:商业地产it 编辑:程序博客网 时间:2024/05/21 18:49
一、集合操作
(一)集合运算符
union/union all 并
intersect 交
minus 差
集合运算要求两个select语句是同构的,即列的个数和数据类型必须一致
union的结果集为两个查询结果的并集,是去掉重复值的
union all的结果集为两个查询结果的并集,是包含重复值的
intersect的结果集为两个查询结果的交集,不包含重复值
minus的结果集为属于第一个查询的结果集,但不属于第二个查询的结果集即从第一个查询的结果集中减去他们的交集,不包含重复值
(1)union all
select worker.ename,manager.enamefrom emp worker join emp manageron worker.mgr=manager.empno
union all
select ename,'boss'
from emp
where mgr is null;(2)union
select job from emp where deptno=20union(all)select job from emp where deptno=10;二、完整性约束
1.保证数据的一致性
2.通过数据库的特性或应用程序完成
3.数据库约束
主键(primary key)、唯一键(unique key)、外键(foreign key)、非空(not null)、检查(check)
类型 描述
实体完整性 主键值的任意部分不为空并且主键值唯一
引用完整性 外键的取值必须是已存在的主键值或为空
列值 列的取值必须满足数据类型的定义
用户自定义 取值必须遵守业务规则
unique key可以为空
(一)主键约束(pk)
1.每张表都应该创建主键而且只能有一个主键
2.强制列值的唯一性
3.主键任意部分的取值不能为空
4.有列级约束和表级约束两种形式
5.若主键列上没建索引,系统会自动创建唯一性索引
查表中的约束条件:
select constraint_name,constraint_typefrom user_constraintswhere table_name='STUDENT_YI';
创建约束条件,如果创建的约束条件没有命名,由系统建立在列级上自动命名(如SYS_C数字)
创建主键约束:
(1)建表时创建,可以建立在列级或者表级
(2)在建表后创建,建立在表级
例1:创建约束条件,建立在列级
create table student_yi(id number primary key,name varchar2(20));例2:创建约束条件,建立在表级
create table student_yi2(id number,name varchar2(2),constraint stuyi_id_pk primary key(id));例3:建表后,创建主键约束
create table student_yi(id number,name varchar2(20));
alter table student_yiadd constraint stuyi_id_pk primary key(id);
insert into student_yi(id,name)values(1234,'peter');重复执行上述语句,报ORA-00001违反唯一约束(插入了重复值)
insert into student_yi(name)values('peer');不提供主键值,将出现‘id不能为空’这种错误
删除表:
drop table student_yi;
(二)非空约束(NOT NULL)
创建非空约束只能建立在列级
create table student_yi(id number primary key,name varchar2(20) not null);要求此列上必须有值,错误的sql:insert into student_yi(id) values(1);
(三)唯一约束
create table student_yi(id number primary key,name varchar2(20),nickname varchar2(20),email varchar2(30) unique,constraint stuyi_nickname_uk unique(nickname));其中,email的唯一约束建立在列级,nickname的唯一约束建立在表级
- SQL的集合操作和完整性约束
- 完整性约束的SQL定义
- 完整性约束的SQL定义
- 完整性约束的SQL定义
- SQL server数据类型和完整性约束
- sql server 2008 数据库的完整性约束
- SQl -维护数据的完整性--约束 -
- SQL完整性约束
- SQL完整性约束
- 数据库的安全和完整性约束
- 索引和数据完整性约束的总结
- 完整性约束的定义和检验
- 四、完整性和约束
- 数据库完整性和约束
- ORACLE的完整性约束
- 表的完整性约束
- 完整性约束的状态
- 完整性约束的类型
- Caffe for Python 官方教程(翻译) ----我的第一个caffe程序
- CODEVS 1068 乌龟棋
- iptables相关教
- LintCode 29-交叉字符串
- JavaScript技术书籍和资料
- SQL的集合操作和完整性约束
- 【matlab】震撼!只能用这两个字了,真是奇女子
- Caffe依赖包解析
- 并查集—Virtual Friends
- Spring初始化Bean方法
- 机器学习之文本特征选择
- Ubuntu15安装Docker
- 排序——插入排序
- 无向带权图最小割stoer-wagner算法(poj 2914 Minimum cut)