一, 数据库对象
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, 建表语法create table tabel_name
(
列名 类型,
...
)
2, 数据类型
varchar2(n) 变长字符串,最多 4KB
char(n) 定长, 效率高, 但浪费空间
number(m, n) 数字, m-总长度, n-小数位的长度
date 日期和时间
long 可变长度的字符串,最多 2GB
3, 举例
(1)建表 学生表 stu
create table stu
(
id number(6),
name varchar2(20),
sex number(1),
age number(3),
sdate date,
grade number(2) default 1,
class number(4),
email varchar2(50)
)
(2)插入记录
insert into stu(id, name, sex, age, sdate, grade, class, email)
values(201301, '张三', 1, 22, to_date('2012-09-01', 'YYYY-MM-DD'), 1, 3, 'zhangsan@163.com')
(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)外键约束
加在两张表上(主表,副表),
主表上某个字段的值 参考 副表主键的值
外键约束被参考的字段必须是主键,
即副表被主表参考的字段必须是主键
=> 字段级
class number(4) references class (id),
=> 表级
constraint stu_class_fk foreign key (class) references class(id),
create table class
(
id number(4) primary key,
name varchar2(20) not null
);
create table stu
(
id number(6),
name varchar2(20) constraint stu_name_nn not null,
sex number(1),
age number(3),
sdate date,
grade number(2) default 1,
class number(4),
-- class number(4) references class(id),
email varchar2(5),
constraint stu_class_fk foreign key (class) references class(id),
constraint stu_id_pk primary key (id),
constraint stu_name_email_uni unique (email, name)
);