创建学生表,字段和类型如下所示:
字段 | 字段类型 | 说明 |
---|---|---|
id | 整型 | number |
name | 字符型 | varchar2 |
sex | 字符型 | char(2) |
brithday | 日期型 | date |
score | 小数型 | number(3,1) |
resume(简历) | 大文本型 | clob |
create table students(
id number,
name varchar2(32),
sex char(20),
birthday date,
score number(3,1),
resume clob
);
–添加班级字段 cid
alter table students add(cid number);
–学生姓名变成 varchar2(30)
alter table students modify(name varchar2(30));
–删除简历字段
alter table students drop(resume);
–修改表名
rename students to stus
–修改列名 cid–>classid
alter table stus rename column cid to classid;
——————–约束———————-
–非空约束:顾名思义,所约束的列不能为 NULL 值。否则就会报错
create table t1(id number,name varchar2(32) not null);
—唯一(UNIQUE )约束:在表中每一行中所定义的这列或这些列的值都不能相同。
– 必须保证唯一性。否则就会违法约束条件。
–注意:用于指定列的值不能重复,可以为null
create table t2(id number unique,name varchar2(30));
–主键约束:唯一而且不能为null,一个表只能有一个主键约束
create table t3(id number primary key ,name varchar2(30));
–外检约束:用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必需
– 具有主键约束或是 e unique 约束,当定义外键约束后,
– 要求外键列数据必需在主表的主键列存在或是为 null
create table class(cid number primary key,
cname varchar2(32) not null);
create table t4(sid number primary key,
sname varchar2(32) not null,
classid number references class(cid)
);
–条件(CHECK )约束:表中每行都要满足该约束条件。
– 条件约束既可以在表一级定义也可以在列一级定义。
– 在一列上可以定义任意多个条件约束。
create table t5(
id number primary key,
sal number check(sal>=1000 and sal<2000),
sex char(2) check(sex in ('男','女'))
);
–案例
–商品goods表:
商品号 goodsId(主键),商品名 goodsName(非空),
单价 price(大于零),商品类别 category,供应商 provider;
create table goods(
goodsid number primary key,
goodsname varchar2(64) not null,
price number check(price >0),
category varchar2(10),
provider varchar2(64)
);
–客户customer表:
客户号 customerId(主键),姓名 name(非空),住址 address,
邮箱 email,性别 sex(默认男,check),身份证 cardId(唯一);
create table customer(
customerid number primary key,
cname varchar2(20) not null,
address varchar2(200),
email varchar2(64) unique,
sex char(2) default '男' check(sex in ('男','女')),
idcard char(18) unique
);
–购买purchase表:
客户号 customerId(外键),商品号 goodsId(外键),
购买数量 nums(1 到 30 个);
create table purchase(
cid number references customer(customerid),
gid number references goods(goodsid),
nums number check(nums>=1 and nums<=30)
);
–要求
建表,在定义中要求声明:
(1).每个表的主外键;
(2).客户的姓名不能为空值;
(3).单价必须大于 0,购买数量必须在 1 到 30 之间;
(4).邮箱不能够重复;
(5).客户的性别必须是 男 或者 女,默认是男;
–维护约束
create table t6(id number,
name varchar2(32),
idcard char(18),
address varchar2(200)
);
–增加主键:
alter table t6 add constraint PK_T6 primary key(id);
–添加非空约束
alter table t6 modify name not null;
–添加唯一约束
alter table t6 add constraint UK_IDCARD unique(idcard);
##### –添加检查约束
alter table t6 add constraint CK_ADDRESS check(address in ('伊滨','老城区','洛龙区'));