本节主要内容:
Oracle建表与约束
一, 数据库对象
1、表(Table )
数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的。
列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。
行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。
一个数据库表由一条或多条记录组成,没有记录的表称为空表。
每个表中通常都有一个主关键字,用于惟一地确定一条记录。
2、索引(Index)
索引是根据指定的数据库表列建立起来的顺序。
它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。
3、视图(View)
视图看上去同表似乎一模一样,具有一组命名的字段和数据项,
但它其实是一个虚拟的表,在数据库中并不实际存。
视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。
由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,
即通过视图只显示那些需要的数据信息。
4、图表(Diagram)
图表其实就是数据库表之间的关系示意图。利用它可以编辑表与表之间的关系。
5、缺省值(Default)
缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。
6、规则(Rule)
规则是对数据库表中数据信息的限制。它限定的是表的列。
7、触发器(Trigger)
触发器是一个用户定义的SQL事务命令的集合。
当对一个表进行插入、更改、删除时,这组命令就会自动执行。
8、存储过程(Stored Procedure)
存储过程是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。
9、用户(User)
所谓用户就是有权限访问数据库的人。
二, 建表与约束
1, 建表语法
2, 数据类型
3, 举例
(1)建表 学生表 stu
(2)插入记录
(3)非空约束 not null
非空约束也是数据库对象, 可以给它命名
=>
name varchar2(20) constraint stu_name_nn not null,
如果未命名, 则oracle会自动命名
(4)唯一约束 unique
①字段级约束
只能约束一个字段, 紧跟在字段定义后面
=>
email varchar2(50) unique
注意: null 不算重复.
②表级约束
在所有字段定义完之后定义, 可约束多个字段
email 与 name 的组合 不能重复.
=>
email varchar2(50),
constraint stu_name_uni unique(email, name)
(5)主键约束 primary key
可以唯一标识一条记录
=>字段级约束
id number(6) primary key,
语法上: not null + unique
逻辑上: 代表一条记录
=>表级约束
constraint stu_id_pk primary key(id),
(6)外键约束