修改数据表


1. 修改表名

mysql是通过ALTER TABLE语句来实现表名的修改的,具体的语法规则如下:

ALTER TABLE<旧表名> RENAME [ TO ] <新表名>;

其中,TO为可选参数,使用与否均布影响结果。

将数据表tb_dept3 改名为  tb_deptment3,sql语句如下:

ALTER TABLE tb_dept3 RENAME tb_deptment3;

2. 修改字段的数据类型

修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型。在mysql中修改字段数据类型的语法如下:

ALTER TABLE   < 表名 >  MODIFY <字段名>  < 数据类型 >

其中,“表名”指要修改数据类型的字段所在表的名称,“字段名”指需要修改的字段,“数据类型”指修改后字段的新数据类型。

将数据表tb_dept1中name字段的数据类型有varchar(22)修改成varchar(25),sql语句如下:

ALTER TABLE tb_dept1 MODIFY VARCHAR(30);

3. 修改字段名

mysql中修改表字段名的语法规则如下:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变,sql语句如下:

ALTER TABLE tb_dept1 CHANGE location  loc VARCHAR(50);

将数据表tb_dept1中的loc字段名称改为location,同时将数据类型变为VARCHAR(60),sql语句如下:

ALTER TABLE tb_dept1 CAHANGE loc location VARCHAR(60);

注:CHANGE 也可以只修改数据类型,实现和MODIFY同样的效果,方法是将sql语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。

4. 添加字段

随着业务需求的变化,可能需要在已经存在的表中添加新的字段。一个完整字段包括字段,数据类型,完整性约束。添加字段的语法格式如下:

ALTER TABLE <表名> ADD <新字段名><数据类型>

         [ 约束条件 ] [ FIRST|AFTER  已存在字段名 ];

新字段名为需要添加的字段的名称。“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段。“AFTER”为可选参数,其作用是是将新添加的字段添加到指定的“已存在字段名”的后面。

“FIRST”或“AFTER已存在字段名”用于指定新增字段在表中的位置,如果sql语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。

1)添加无完整性约束条件的字段

在数据表tb_dept1中添加一个没有完整性约束的INT类型的字段managerid(部门经理编号),sql语句如下:

ALTER TABLE tb_dept1 ADD managerid INT(10);

2)添加有完整性约束条件的字段

在数据表tb_dept1中添加一个不能为空的VARCAHR(12)类型的字段column1,sql语句如下:

ALTER TABLE tb_dept1 ADD colum1 VARCHAR(12) not null;

3)在标的第一列添加一个字段

在数据表tb_dept1中添加一个INT类型的字段column2,sql语句如下:

ALTER TABLE tb_dept1 ADD column2 INT(11) FIRST;

4)在表的指定列之后添加一个字段

在数据表tb_dept1中name列后添加一个INT类型的字段column3,sql语句如下:

ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;

5. 删除字段

删除字段是将数据表中的某个字段从表中移除,语法格式如下:

ALTER TABLE <表名>  DROP <字段名>;

删除数据表tb_dept1表中column2字段,sql语句如下:

ALTER TABLE tb_dept1 DROP column2;

6. 修改字段的排列位置

对于一个数据表来说,在创建的时候,字段在表中的排列顺序就已经确定了。但表的结构并不是完全不可以改变的,可以通过ALTER TABLE来改变表中字段的相对位置。语法格式如下:

ALTER TABLE <表名>  MODIFY  <字段1> < 数据类型 >  FIRST|AFTER <字段2>;

“字段1”指要修改位置的字段,“数据类型”指“字段1”的数据类型,“FIRST”为可选参数,指将“字段1”修改为表的第一个字段,“AFTER字段2”指将“字段1”插入到“字段2”后面。

1)修改字段为表的第一个字段

将数据表tb_dept中的column1字段修改为表的第一个字段,sql语句如下:

ALTER TABLE tb_dept MODIFY column1 VARCAHR(12) FIRST;

2)修改字段到表的指定列之后

将数据表tb_dept1中的column1字段插入到location字段后面,sql语句如下:

ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER location;

7.删除表的外键约束

对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会接触主表和从表之间的关联关系,mysql中删除外键的语法格式如下:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

删除tb_emp5表中的外键约束,sql语句如下;

ALTER TABLE tb_emp5 DROP FOREIGN KEY fk_emp_dept1;

8.删除数据表

删除数据表就是将数据库中已经存在的表从数据库中删除。注意,删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做好备份。

1)删除没有被关联的表

在mysql中,使用DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表。语法如下:

DROP TABLE [ IF EXISTS ]  表1,表2,... 表n;

删除数据表tb_dept2,sql语句如下:

DROP TABLE IF EXISTS tb_dept2;

2)删除被其他表关联的主表

数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除。可以先删除与它关联的子表,再删除父表,只是这样同时删除了两个表中的数据。但有种情况下可能要保留子表,这时如要单独删除父表,只需将关联的外键约束条件取消,然后就可以删除父表。

你可能感兴趣的:(修改数据表)