class05_操纵表
Posted 77-is-here
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了class05_操纵表相关的知识,希望对你有一定的参考价值。
操纵表
【注意】:不同数据库,操纵表的语法差别较大,本节课讲解内容,仅针对mysql数据库
表的关键信息
剖析一张表包含的关键信息
必须要有的信息:
- 表名
- 字段名
- 字段类型
更新表定义
介绍如何更新表名、字段名、字段数据类型等
更新表名:使用关键字: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