DDL语句关键字:
表:
- 建表:create table <表名>
- 删除表:drop table <表名>
- 修改表名:rename <表名> to <新表名>
列:
- 新增列:
alter table <表名> add(字段名1 数据类型 [not null|null],字段名2 数据类型 [not null| null]);
-
删除列:alter table <表名> drop column <列名>;
-
修改列:数据类型/约束 alter table 表名 modify(列名 数据类型 [default 默认值] [not null|null]);
-
修改列名:alter table 表名 rename column 列名 to 新列名;
约束条件:
1. 主键(primary key):相当于身份证号码,特点非空且唯一,也是属于表对象,在设计一张表示,需要有主键列,最多有一个,可以没有。(也可以多列联合在一起形成联合主键)
2. 唯一(unique):值不能重复,属于表对象,唯一键也必须要有别名,若没有指定别名,则Oracle随即分配一个唯一的别名,列值是不能重复的,但是可以存在多个null值。
3. 非空(not null):值不能为空,一个列默认是可以为空。
4. 检查(check(条件)):检查值是否满足某个条件,属于表对象,必须要有名字,
5. 默认值(default 值):当没有给列指定值的时候,则取默认值;在创建表时,若没有给列指定默认值,那么该列的默认值是空(即null)
6. 外键(references主表名(主键名)引用): 外键值可以为null。在oracle中外键对应的列名必须是主键或者唯一(具有唯一性即可)。
建表语句:
create table <表名>(
列名1 数据类型 [primary key],
列名2 数据类型 [unique],
列名3 数据类型 [not null | null],
列名4 数据类型 [check(条件)],
列名5 数据类型 [references 表名(列名)],
...
列名N 数据类型 [default 默认值] [各种约束]
);
例如:建立一个学生表:学号为主键,班级号为外键:
create table student(
sno char(30) primary key, --主键约束
sname char(30) not null,--非空约束
sex char(10) check(sex='男' or sex='女'), --检查约束
age number(2),
score number(3,1),
tel number(11) unique,--唯一约束
classno varchar2(30) references classes(classno), --外键约束
school_date date
);
修改表结构(以学生表为例):
--删除表
drop table student
--修改表名
rename student to students
--修改表结构
--1.增加列
alter table student add classno varchar2(30);
--2.删除列
alter table student drop column classno;
--3.修改列的数据类型
alter table student modify sex varchar2(10)
--4.重命名列
alter table student rename column sex to gender