class05_操纵表

Posted 77-is-here

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了class05_操纵表相关的知识,希望对你有一定的参考价值。

操纵表

【注意】:不同数据库,操纵表的语法差别较大,本节课讲解内容,仅针对mysql数据库

表的关键信息

剖析一张表包含的关键信息

必须要有的信息:

  1. 表名
  2. 字段名
  3. 字段类型

更新表定义

介绍如何更新表名、字段名、字段数据类型等

更新表名:使用关键字:RENAME TABLE。

      RENAME TABLE 旧表名 TO 新表名;

例如,生产环境投产前备份teacher表,使用如下语句:

      RENAME TABLE teacher TO teacher_bak;

 

 

更新字段名:使用关键字:ALTER TABLE。 必须包含字段类型!

      ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型;

后面三个参数必须都在,不然会报错

比如,修改teacher_name的字段名为teacher_nm,使用如下语句:

       ALTER TABLE teacher CHANGE teacher_name teacher_nm VARCHAR(100);

【注意】:修改字段名时,可同时修改字段类型。

              也可以只修改字段类型,字段名不变

 

更新字段类型:使用关键字ALTER TABLE:【与上面的区别,这种方法只更新字段类型,保留原有字段名】必须包含字段类型!

      ALTER TABLE 表名 MODIFY 字段名 新字段类型;

比如,修改teacher_name的类型为VARCHAR(100),如下:

      ALTER TABLE teacher MODIFY teacher_name VARCHAR(200) ;

      ALTER TABLE teacher MODIFY teacher_name VARCHAR(200)  NOT NULL ;

ALTER TABLE teacher MODIFY teacher_name VARCHAR(200)  NOT NULL DEFAULT ‘’;

 

 

删除字段默认值:使用关键字:ALTER TABLE

      ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;

比如,删除teacher_name的默认值,使用如下语句:

ALTER TABLE teacher ALTER COLUMN teacher_name drop default;

【注意】:也可以用MODIFY方法 最后不加default消除默认。

 

更新主键字段:

[注意]:更新为主键的字段,自动设置NOT NULL

设置主键:如果表已经存在,但没有定义主键字段,可使用关键字:ALTER TABLE,设置主键。

ALTER TABLE 表名 ADD PRIMARY KEY(主键字段列表);

比如,将teacher表的teacher_name和gender两个字段设置为主键,使用如下语句:

ALTER TABLE teacher ADD PRIMARY KEY(teacher_name,gender)

删除主键字段:如果表中已经定义主键字段,可使用关键字:ALTER TABLE,删除现有主键

ALTER TABLE 表名 DROP PRIMARY KEY;

比如,将teacher表的主键删除,使用如下语句:

ALTER TABLE teacher DROP PRIMARY KEY;

新增字段:使用关键字:ALTER TABLE:

ALTER TABLE 表名 ADD COLUMN新字段名 字段类型(这两个必须有) 其他属性;

比如,在teacher表中新增年龄字段age,使用如下语句:

ALTER TABLE teacher ADD COLUMN age int not null default 0;

删除字段:使用关键字:ALTER TABLE:

ALTER TABLE 表名 DROP COLUMN 字段名;

比如,在teacher表中删除年龄字段age,使用如下语句:

ALTER TABLE teacher DROP COLUMN age;

删除表:删除一张已经创建好的表,使用关键字:DROP TABLE:

DROP TABLE 表名;

比如,删除teacher表,使用如下语句:

DROP TABLE teacher;

汇总

总结一下本节课中使用到的关键字及语法结构

【注意】关于操纵表的语法,具体以实际数据库语法为准。

【建议】操纵表是一个很复杂的事情,所以最好在定义时就做好充分的考虑并为以后扩展留下空间。

以上是关于class05_操纵表的主要内容,如果未能解决你的问题,请参考以下文章

自动生成建表语句

[20-05-18][Thinking in Java 26]Java Inner Class 10 - Anonymous Inner Class 5

逆向工程 Java *.class 文件以更改变量的数据类型

JVM14_Class文件结构细节魔数Class文件版本常量池访问标识(或标志)类索引|父类索引|接口索引集合字段|方法|属性表集合

Java千百问_05面向对象(014)_如何获取范型的类Class

[20-05-15][Thinking in Java 17]Java Inner Class 1 - Inner Class 2