您的位置:首页 > 数据库

数据库之约束和修改字段

2015-12-29 14:45 169 查看
今天主要学习的还是数据表

一.约束

数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。约束分为两类:行级和表级,处理机制是一样的。行级约束放在列后,表级约束放在表后,多个列共用的约束放在表后。
 
  约束类型
 总的来说有五种:唯一性和主键约束、外键约束、唯一约束、空值约束、默认值约束,
  主键约束:PRIMARY KEY  外键约束: FORENGN KEY 唯一约束:UNIQUE KEY 空值约束:NOT NULL  默认值约束:DAFAULT

主键约束:一个数据表中只能有一个主键约束

外键约束:主要是用于子表和父表之间创建索引

唯一约束:确保在同一个字段中不能有重复的值

空值约束:在设置给字段NOT NULL之后,字段的值不能为空

默认值约束:通过该约束可以给字段定义默认值,Int型后面直接跟数字 varchar(变长型字符)后面跟字符的时候记得加上单引号

二.对数据表的操作

      1.对数据表名称的操作

          (1)ALTER TABLE
(table name)RENAME(new table name);

(2)RENAME TABLE (table name) TO (new table name);

  
 2.对约束的操作

1).添加约束

ALTER
TABLE(table name)ADD PRIMARY KEY(data); //添加主键约束

           ALTER
TABLE (table name)ADD UNIQUE KEY(data1,data2)//添加唯一约束,与主键约束不一样的是,主键约束只有一个,这里允许多个

 ALTER
TABLE (table name)ADD FORENGN KEY(data)REFERENCE table name1(data1);//添加外键约束,其中table name和data是子表的数据,而table name1和data1是父表中的数据

W:在添加外键约束的时候,可以在最后面添加外键约束的参照,CASECADE
,SET NULL ,RESTRICT NO ACTION(eg:ON DELETE CASECADE,跟随主表进行更新或者是删除)

 ALTER
TABLE(table name)ALTER(data)SET DEFAULT (default value)//添加默认约束,data是需要添加约束的字段

2)删除约束

在删除约束之前,我们需要知道删除的约束的名字,通过如下代码来实现:

SHOW
INDEXES  FROM (table name);

ALTER
TABLE(table name)DROP PRIMARY KEY; //删除主键约束,因为主键约束只有一个,所以不需要提供索引位置

ALTER
TABLE (table name )DROP UIQUE KEY (index name)//删除唯一约束,index name是索引的名字或者是约束的名字,其他约束的删除也可以参照

    3.修改数据表中的列

(1)添加单列

ALTER
TABLE(table name)ADD dada datatype;//data是添加的字段名,datatype是字段数据的类型(eg:SMALLINT MEDIUMINT VARCHAR),后面可以添加约束(rg:NOT NULL DEFAULT FRIMARY KEY),当然,在datatype后面还可以加上列的位置,(eg:FIRST AFTER(dataname)),默认值是在所有列的最后

(2)添加多列

ALTER
TABLE(table name)ADD (dada1 data1type,data2 data2type);//添加多列和添加单列有所不同,这里需要加上小括号,同时每个字段之间需要逗号隔开,而且添加多列不能够在后面添加位置,只能在所有数据的最后

(3)删除列

ALTER
TABLE(table name)DROP data1,DROP data2;//此方法可以同时删除多列,也可以在删除列的同时增加列,不同的操作之间用逗号隔开

4)修改列定义

ALTER
TABLE(table name)MODIFY data datatype datalocation;//其中data是要修改的字段名,datatype是修改后的字段定义,datalocation是字段的位置(eg:FIRST,AFTER data1) !!在这里我们要记住,列定义修改的过程有可能会造成数据丢失的问题(eg:SMALLINT转换成了TINYINT)

ALTER
TABLE(table name)CHANGE olddata newdata
datatype datalocation;//CHANGE方法呢比MODIFY方法更好用,因为它多了一项功能,就是修改列的名称,在代码中,oiddata是我们希望修改的列名称,new data是修改之后的名称,其他参数和MODIFY方法是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库