hooyantsing's Blog

第39次课程

字数统计: 1.1k阅读时长: 5 min
2019/07/17

源辰74班

第39次课程

07.17.2019

**内容    **

Oracle_表,约束的创建[蒋斌]

1.Oracle表创建

–主表

create table classInfo(

       cid number(4),

       cname varchar2(100),

       cyear number(4),

       clen number(1)

);

–从表

create table stuInfo(

       stuNo number(10) primary key,

       cid number(4),

       stuName varchar2(100),

       stuCardId varchar2(20),

       sex varchar2(4),

       stuAge number(3),

       stuTel varchar2(15),

       stuAddr varchar2(100)

);

2.表记录的操作

–向表中添加表记录

insert into classInfo values(1,’计算机’,2014,4);

/insert into <表名> values(<对应表参数>);/

–将表中删除表记录

delete from classInfo;

/delete from <表名>/

–参数’’空字符串和null空 均是表空

insert into classInfo values(2,’’,2014,4);

insert into classInfo values(3,null,2014,4);

表记录:

7ca032b82ce7e5353b8b8f7cd8bbf8a6.png

3.自增功能

–自增功能

create sequence s_test start with 1001 increment by 1;

/create sequence <自定义序列名> start with <起始值> increment by <每次递增值>;/

insert into classInfo values(s_test.nextval,’网络工程’,2014,4);

/添加表记录/

4.Constraint 约束

–Constraint 约束

–添加约束

–主键约束 primary key 唯一、非空

alter table classInfo add constraint pk_stuInfo_cid primary key(cid);

/alter table <表名> add constraint <自定义约束名> primary key(<字段名>);/

–外键约束 foreign key

alter table stuInfo add constraint fk_stuInfo_cid foreign key(cid) references classInfo(cid);

/alter table <从表名> add constraint <自定义约束名> foreign key(<从表外键字段名>) references <主表名<主表主键字段名>>/

–唯一约束 unique

alter table classInfo add constraint uq_classInfo_cname unique(cname);

/alter table <表名> add constraint <自定义约束名> unique(<字段名>)/

–非空约束

alter table classInfo modify cname not null;

/alter table <表名> modify <字段名> not null;/

–检查校验约束 check

–单选项

–法一

alter table stuInfo add constraint ck_stuInfo_sex check(sex=’男’ or sex=’女’);

/alter table <表名> add constraint <自定义约束名> check(<检查字段名>=’值1’ or <检查字段名>=’值2’);/

–法二

alter table stuInfo add constraint ck_stuInfo_sex check(sex in(‘男’,’女’));

/alter table <表名> add constraint <自定义约束名> check(<检查字段名> in (‘值1’,’值2’))/

–范围项

–法一

alter table stuInfo add constraint ck_stuInfo_age check(stuAge>12 and stuAge<30);

/alter table <表名> add constraint <自定义约束名> check(<检查字段名> > 值1 and <检查字段名> < 值2);/

–法二

alter table stuInfo add constraint ck_stuInfo_age check(stuAge between 12 and 30);

/alter table <表名> add constraint <自定义约束名> check(<检查字段名> between 值1 and 值2)/

–对多个字段约束项

alter table stuInfo add constraint ck_stuInfo_telandaddr check(stuTel is not null or stuAddr is not null);

/alter table <表名> add constraint <自定义约束名> check(<检查字段名1> is not null or <检查字段名2> is not null)/

5.建表时声明约束

–所有的约束在建表时声明

create table stuInfo(

       stuNo number(10) primary key,

       cid number(4) constraint fk_stuInfo_cid references classInfo(cid),

       stuNmae varchar2(100) not null,

       stuCardId varchar2(20) constraint ck_stuInfo_carid check(length(stuCardId)=18),

       sex varchar2(4) default ‘男’

constraint ck_stuInfo_sex check(sex=’男’ or sex=’女’),

       stuAge number(3) constraint ck_stuInfo_age check(stuAge between 12 and 30),

       stuTel varchar2(15) unique,

       stuAddr varchar2(100),

constraint ck_stuInfo_telandaddr check(stuTel is not null or stuAddr is not null)

);

6.对约束的操作

–对约束的操作

–查看表的约束

select * from user_constraints where table_name=’STUINFO’;

/select * from user_constraints where table_name=’<表名>’;/

–删除约束

alter table stuInfo drop constraint CK_STUINFO_CARID;

/alter table <表名> drop constraint <约束名>/

–禁用约束

alter table stuInfo disable constraint CK_STUINFO_SEX;

/alter table <表名> disable constraint <约束名>/

–启用约束

alter table stuInfo enable constraint CK_STUINFO_SEX;

/alter table <表名> enable constraint <约束名>/

–更改约束

alter table <表名> rename constraint <旧约束> to <新约束>;

7.对字段的操作

–查看表结构

select * from user_tab_columns where table_name=’STUINFO’;

/select * from user_tab_columns where table_name=’<表名>’/

–修改表名

alter table stuInfo rename to studentInfo;

/alter table <旧表名> rename to <新表名>/

–修改字段名

alter table studentInfo rename column sex to stuSex;

/alter table <表名> rename column <旧字段名> to <新字段名>/

–添加字段

alter table studentInfo add stupwd number(10);

/alter table <表名> add <添加字段名> <添加字段类型>/

–修改字段的数据类型

alter table studentInfo modify stupwd varchar2(10);

/alter table <表名> modify <字段名> <新字段类型>/

–删除字段

alter table studentInfo drop column stupwd;

/alter table <表名> drop column <字段名>/

CATALOG