Oralce学习总结--oracle建表和约束
来源:互联网 发布:如何成为首富 知乎 编辑:程序博客网 时间:2024/05/16 11:52
一.概念:
DBMS -- DataBase Management System
DBMS 是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库
实体——在数据库中用行记录,称之为记录
实体的属性——在数据库中列表示,称之为字段或属性
数据库中的表:
数据库中的表由行和列组成
数据库中的表由行和列组成
记录和属性:
表中的行用来存储实体,称为记录
表中的列用来存储每个实体的属性,称为字段或属性
主键:以唯一标识一个实体(记录)的列称之为主键列主键列选择的原则是:
a.最少性
b.尽量选择单个键作为主键
c.稳定性
e.尽量选择数值更新少的列作为主键
数据类型:
字符数据类型 char 、varchar2、long…
数字类型 int、number、decimal…
日期类型 date
其它数据类型 raw、long raw、Blob、Clob、Bfile
二.创建表语法
create table [<模式名>.]<表名>(
<字段1> <类型> [约束条件],
<字段2> <类型> [约束条件],
...
)[tablespace <命名空间>];
三.数据完整性和约束
1.主键约束
特点:非空且唯一
作用:确保表中每一行数据的唯一性
注意:一个表只能设置一个主键约束,但是主键约束可以由多个字段构成(组合主键)
创建方式:
a.在创建表的时候设置主键约束
字段名 字段类型 primary key
b.在修改表时添加主键约束
alter table <表名> add constraint <主键约束名字> primary key (<列名1>,<列名2>....); //多个列作为组合主键用逗号分开
2.外键约束
特点:唯一涉及到表与表之间关系的约束
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 references 主表名(列名) //必须是主键,同一数据类型,值来源于主表的主键,或者null
b.在修改表的时候添加外键约束
alter table <表名> add constraint <外键约束名> foreign key(<外键列名>) references <主表>(<列名>)[on delete cascade|on delete set null]
3.唯一约束
作用:保证字段值的唯一性
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 unique
b.在修改表的时候添加外键约束
alter table <表名> add constraint <唯一约束名> unique(<列名>)
4.检查约束
作用:表中的值 更具有实际的意义
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 check(条件)
b.在修改表的时候添加外键约束
alter table <表名> add constraint <检查约束名> check(<条件>)
有约束名称的(主键、外键、唯一,检查),以上四种
a.更改约束的名称
alter table <表名> rename constraint <旧约束名> to <新约束名>;
b.删除主键约束
禁用(启用) disable、enable
alter table <表名> disable constraint <约束名>;
删除:
alter table <表名> drop constraint <约束名>;
5.非空约束
创建方式:
a.在创建表的时候设置非空约束
字段名 字段类型 not null
b.在修改表的时候添加非空约束
alter table <表名> modify <列名> [字段类型] not nulll;
c.将非空改为可以为null
alter table <表名> modify <列名> [字段类型] nulll;
四:行级约束和表级约束
行级约束:跟在字段后面,对当前行进行约束
表级约束:写完字段后“,”隔开,constraint +约束ming+约束类型(主键,外键约束,检查约束)
区别:
行级约束只能对表中的当前字段(属性)进行约束
表级约束可以对表中的多个字段进行约束(例如组合主键一定要用表级约束)
ps:附加一个带约束的例子:
create table stuInfo(
stuNo number(10) primary key,--主键约束
cid number(4) constraint FK_stuInfo_cid references classInfo(cid),--外键约束 关联班级id
stuName varchar2(100) not null,--非空约束
stuCardId varchar2(20)
constraint CK_stuInfo_stuCardId check(length(stuCardId)=18),--检查约束
sex varchar2(4) default '男' --设置默认值
constraint CK_stuInfo_sex check( sex='男' or sex='女' ),
stuAge number(3)
constraint CK_stuInfo_stuAge check(stuAge between 12 and 30),
stuTel varchar2(15) unique, --注意:唯一约束不对NULL做约束
stuAddr varchar2(100),
constraint CK_stuInfo_stuTelAndAddr check( stuTel is not null or stuAddr is not null)--表级约束
);
数据类型:
字符数据类型 char 、varchar2、long…
数字类型 int、number、decimal…
日期类型 date
其它数据类型 raw、long raw、Blob、Clob、Bfile
二.创建表语法
create table [<模式名>.]<表名>(
<字段1> <类型> [约束条件],
<字段2> <类型> [约束条件],
...
)[tablespace <命名空间>];
三.数据完整性和约束
1.主键约束
特点:非空且唯一
作用:确保表中每一行数据的唯一性
注意:一个表只能设置一个主键约束,但是主键约束可以由多个字段构成(组合主键)
创建方式:
a.在创建表的时候设置主键约束
字段名 字段类型 primary key
b.在修改表时添加主键约束
alter table <表名> add constraint <主键约束名字> primary key (<列名1>,<列名2>....); //多个列作为组合主键用逗号分开
2.外键约束
特点:唯一涉及到表与表之间关系的约束
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 references 主表名(列名) //必须是主键,同一数据类型,值来源于主表的主键,或者null
b.在修改表的时候添加外键约束
alter table <表名> add constraint <外键约束名> foreign key(<外键列名>) references <主表>(<列名>)[on delete cascade|on delete set null]
3.唯一约束
作用:保证字段值的唯一性
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 unique
b.在修改表的时候添加外键约束
alter table <表名> add constraint <唯一约束名> unique(<列名>)
4.检查约束
作用:表中的值 更具有实际的意义
创建方式:
a.在创建表的时候设置外键约束
字段名 字段类型 check(条件)
b.在修改表的时候添加外键约束
alter table <表名> add constraint <检查约束名> check(<条件>)
有约束名称的(主键、外键、唯一,检查),以上四种
a.更改约束的名称
alter table <表名> rename constraint <旧约束名> to <新约束名>;
b.删除主键约束
禁用(启用) disable、enable
alter table <表名> disable constraint <约束名>;
删除:
alter table <表名> drop constraint <约束名>;
5.非空约束
创建方式:
a.在创建表的时候设置非空约束
字段名 字段类型 not null
b.在修改表的时候添加非空约束
alter table <表名> modify <列名> [字段类型] not nulll;
c.将非空改为可以为null
alter table <表名> modify <列名> [字段类型] nulll;
四:行级约束和表级约束
行级约束:跟在字段后面,对当前行进行约束
表级约束:写完字段后“,”隔开,constraint +约束ming+约束类型(主键,外键约束,检查约束)
区别:
行级约束只能对表中的当前字段(属性)进行约束
表级约束可以对表中的多个字段进行约束(例如组合主键一定要用表级约束)
ps:附加一个带约束的例子:
create table stuInfo(
stuNo number(10) primary key,--主键约束
cid number(4) constraint FK_stuInfo_cid references classInfo(cid),--外键约束 关联班级id
stuName varchar2(100) not null,--非空约束
stuCardId varchar2(20)
constraint CK_stuInfo_stuCardId check(length(stuCardId)=18),--检查约束
sex varchar2(4) default '男' --设置默认值
constraint CK_stuInfo_sex check( sex='男' or sex='女' ),
stuAge number(3)
constraint CK_stuInfo_stuAge check(stuAge between 12 and 30),
stuTel varchar2(15) unique, --注意:唯一约束不对NULL做约束
stuAddr varchar2(100),
constraint CK_stuInfo_stuTelAndAddr check( stuTel is not null or stuAddr is not null)--表级约束
);
阅读全文
1 0
- Oralce学习总结--oracle建表和约束
- 倪蒙oralce学习笔记之Oracle创建删除用户、角色、表空间、导入导出数据库总结
- oracle学习总结-------数据库的约束
- oracle建表约束
- oracle 创建表和约束
- Oracle创建表和约束
- ORACLE学习笔记 索引和约束
- oralce数据库表删除主键约束
- ORALCE实例和ORACLE体系结构
- oracle约束总结
- oracle 约束总结
- Oracle之约束总结
- ORACLE约束总结
- Oracle约束总结
- ORACLE约束总结
- 09-Oracle学习_建表与约束
- oracle分页和创建表和约束
- 学习oracle约束
- Qt Post上传图片文件到服务器
- 矩阵快速幂
- OkHttp 3.7源码分析(五)——连接池
- 一个多继承的Python实例
- 求职
- Oralce学习总结--oracle建表和约束
- Ubuntu14.04安裝PostgreSQL9.5+3DCityDB_v3.3.1+3dcitydb-web-map-client
- 面向对象基础
- 实现类似塔读掌阅的Toast
- 「游族杯」上海市高校程序设计邀请赛暨华东师范大学第九届 ECNU Coder 程序设计竞赛 A. 足球锦标赛
- 子数组之和
- SQLi-Labs 学习笔记(Less 1-10)
- Makefile语法规则教程
- org.hibernate.LazyInitializationException