澳门金沙vip 12

澳门金沙vipOracle之约束

删除数据库表

约束用于限制加入表数据的类型,目的是保证数据的一致性和完整性

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列:desc 表名;
修改表名:alter table t_book rename to bbb; 添加列:alter table 表名
add column 列名 varchar; 删除列:alter table 表名 drop column 列名;
修改列名MySQL: alter table bbb change nnnnn hh int;
修改列名SQLServer:exec sp_rename’t_student.name’,’nn’,’column’;
修改列名Oracle:lter table bbb rename column nnnnn to hh int;
修改列属性:alter table t_book modify name varchar;
sp_rename:SQLServer 内置的存储过程,用与修改表的定义。 MySQL
查看约束,添加约束,删除约束 添加列,修改列,删除列
查看表的字段信息:desc 表名; 查看表的所有信息:show create table 表名;
添加主键约束:alter table 表名 add constraint 主键 primary key 表名;
添加外键约束:alter table 从表 add constraint 外键 foreign key 从表
references 主表; 删除主键约束:alter table 表名 drop primary key;
删除外键约束:alter table 表名 drop foreign key 外键; 修改表名:alter
table t_book rename to bbb; 添加列:alter table 表名 add column 列名
varchar; 删除列:alter table 表名 drop column 列名; 修改列名MySQL:
alter table bbb change nnnnn hh int; 修改列名SQLServer:exec
sp_rename’t_student.name’,’nn’,’column’; 修改列名Oracle:alter table
bbb rename column nnnnn to hh int; 修改列属性:alter table t_book
modify name varchar; sp_rename:SQLServer
内置的存储过程,用与修改表的定义。 先删除主键 alter table table_test
drop primary key; 然后再添加主键 alter table table_test add primary
key; alter table test rename test1; –修改表名 alter table test add
column name varchar not null; –添加表列 alter table wd_express drop
column id; — 删除表列 alter table wd_express drop column tbid; —
删除表列 alter table wd_express change column express_id id int ; —
修改表列名 alter table wd_express add PRIMARY key ; alter table test
modify address char –修改表列类型 ||alter table test change address
address char alter table test change column address address1 varchar–
修改表列名

drop table [if exists] 表一,表二…..;

创建格式:在创建表时规定约束(在Create添加),也可以在创建之后添加(Alter
table)。

表分区:比如图书信息表有1000万个图书信息,如何优化他,其中一种方式就是表分区。就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。

约束类型:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT。

 基本操作如下:

非空约束 NOT NULL

非空约束就是限制必须为某个列提供值,不允许有空值的存在。

空值(NULL)是不存在的值,它既不是数字0也不是空字符串,而是不存在未知的情况,即:该列的所有值不能为空,但可以为空字符或者0。

create teable 表名(

    列名 类型(参数) not null,

    …

);

或者

alter table 表名 modify 列名 not null;

结果:通过desc查看会发现Nullable那一列的Y消失,表示此列不能为空。且在插入数值的时候此列必须添加数值,否则会报错。

create table test1 (

BookNO number(4) not null,

BookName varchar2(20),

Author varchar2(10)

);

或者

alter table test1 modify Author not null;

澳门金沙vip 1

取消非空约束使用alter方法:alter table test1 modify Author null;
设置test1的Author可以

澳门金沙vip 2

唯一约束 UNIQUE

唯一性约束强调所在的列不允许有相同的值,但可以有多个Null。

其定义比主键约束弱,即他的列允许有空值(主键不允许有空值),唯一性约束的主要作用是保证在除主键外,其他列值得唯一性。

create teable 表名(

列名 类型(参数) unique,

);

或者

create teable 表名(

列名 类型(参数) Constraint 约束名 unique,

);

或者

create teable 表名(

列名1 类型(参数)

Constraint 约束名 unique(列名);

澳门金沙vip,);

或者

alter table 表名 add constraint 约束名 unique(列名);

即:直接在列后面添加unique,

或在列后面添加 constraint 约束名 unique,

或在最后添加constraint 约束 unique(列名),

或者alter table 表名 add constraint 约束名 unique(列名);

建议使用的方法为alter和在最后添加最后添加constraint 约束
unique(列名)。

注:添加约束名的好处为:便于删除操作,在删除时需要通过约束名来完成操作。同时如果不添加约束名则系统会自动生成约束名,在表移动等操作时,约束名也会更改,会造成后期操作的麻烦。

create table test3(

MemNo number(4) not null,

QQ varchar2(20) unique

);

或者

create table test3_1(

MemNo number(4) not null,

QQ varchar2(20) Constraint QQ_UK unique

);

或者

create table test3_2(

MemNo number(4) not null,

QQ varchar2(20),

Constraint QQ_UK3_2 unique(QQ)

);

或者

alter table test3 add constraint QQ_UK2 unique(MemNO);

澳门金沙vip 3

澳门金沙vip 4

取消唯一性约束:alter table test3 drop constraint QQ_UK2;

先创建bookinfo的表,然后分区“partition by range(xx)”就是通过xx来分区。

主键约束PRIMARY KEY

主键约束唯一地标识了每一行记录(非空+唯一),在一个表中,最多只能有一个主键约束,主键约束既可以由一个列组成,也可以由两个或两个以上列组成(这种称联合主键)。

create teable 表名(

列名 类型(参数) primary key,

);

或者

create teable 表名(

列名 类型(参数) Constraint 自定义主键名 primary key,

);

或者

create teable 表名(

列名1 类型(参数),

constraint 自定义主键名 primary key (主键列名)

);

或者

alter table 表名 add constraint 自定义主键名 primary key(列名)

具体的方法和添加唯一约束相同,建议使用的方法为alter和在最后添加最后添加constraint
约束 unique(列名)。

create table test4(

stuno number(10) primary key,

stuname varchar2(8)

);

或者

create table test4_1(

stuno number(10) constraint test4_1_PK primary key,

stuname varchar2(8)

);

或者

create table test4_2(

stuno number(10),

stuname varchar2(8),

constraint test4_2_PK primary key(stuno)

);

或者

create table test4_3(

stuno number(10),

stuname varchar2(8)

);

或者

alter table test4_3 add constraint test4_3_PK primary key(stuno);

澳门金沙vip 5

澳门金沙vip 6

删除主键:alter table 表名 drop constraint 约束名

里面分了三个区,p1,p2,p3.分别为20109999之前,20159999之前,和其他。

外键约束FOREIGN KEY

外键约束主要是在B表中的某一列受到A表的制约,B的那一列的值只能是A内的值,比如工资表的员工号必须受员工表的员工号限制一样,工资表不能有不存在的员工号。

一般外键约束会使用两个表进行关联,外键是指”当前表”引用”另一个表”的某一列或某几列。在另一个表中,被引用的列必须具有主键约束或者唯一性约束,不存在的数据不能出现在当前表的对应列中。一般情况下当删除被引用表中数据时,该数据也不能出现在外键列中,如果存在则删除失败。

create teable 表名(

列名 类型(参数) ,

constraint 自定义外键名称 foreign key(外键表列名) references
被引用表名(被引用列名)

);

alter table 表名 add constraint 自定义外键名称 foreign key
(外键表列名) references 被引用表名;

create table test5(

stuno number(10),

age int,

constraint FK_test_5 foreign key (stuno) references test4_1(stuno)

);

或者

create table test5_1(

stuno number(10),

age int

);

或者

alter table test5_1 add constraint FK_test_5_1 foreign key (stuno)
references test4_2(stuno);

澳门金沙vip 7

删除外键约束:alter table test5_1 drop constraint FK_test_5_1;

 

条件约束 CHECK

check约束是为了让表中某字段值只能输入固定的值。

create teable 表名(

列名 类型(参数)  check (列名 in (选项1,选项2)),

);

或者

create teable 表名(

列名1 类型(参数),

constraint 约束名

);

或者

alter table 表名 add constraint 自定义主键名 check (列名 in
(选项1,选项2));

create table test6(

stuno number(10),

sex char(2) check (sex in (‘男’,’女’))

);

或者

create table test6_1(

stuno number(10),

sex char(2),

constraint check_test_6_1 check (sex in (‘男’,’女’))

);

或者

create table test6_2(

stuno number(10),

sex char(2)

);

或者

alter table test6_2 add constraint check_test_6_2 check (sex in
(‘男’,’女’));

澳门金沙vip 8

check设置数值范围:constraint check 表名 check (列名 between 小范围 and
大范围);

设置为大写:constraint check 表名 check (列名 = upper(列名));

取消 alter table test6_2 drop constraint check_test_6_2;

向表中插入数据“insert into xx values(xx,’xx’)”

默认约束 DEFAULT

默认约束是设置列的默认值,即当插入一行时,若不给出该列的值,就用默认值代替。

create teable 表名(

列名 类型(参数) default ‘默认值’,

);

或者

alter table 表名 modify 列名 default ‘默认值’;

结果:在添加数据的时候,如果在设置有默认值的列没有添加数据则会把默认值添加进去。

create table test2 (

BookNO number(4) not null,

BookName varchar2(20),

Author varchar2(10) default ‘me’

);

或者

alter table test2 modify BOOKNAME default ‘you’;

澳门金沙vip 9

取消默认约束 alter table test2 modify BOOKNAME default null;

注:

add用于修改字段类型和长度的(即修改字段的属性)

modify修改表的数据结构。

update是修改数据内容的。

drop是删除数据内容。

澳门金沙vip 10

查看每个分区的内容”select * from xx partition(xx)”

澳门金沙vip 11

 

主键的概念:

表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键
如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

外键

通俗的说就是两个表相关联,连接这俩表的那个字段就是外键

约束

通过对表的行和列的数据做出限制,来确保数据的完整性和唯一性。

一般有非空约束,主键约束,唯一约束,默认约束,外键约束。

澳门金沙vip 12

比如图书编号和类别编号就要主键约束,类别编号就要外键约束,书名非空约束和唯一约束。