发布 php 微网站,设计上海展会2021时间,网站内容保护,2017网站开发合同下载引言
一些对表结构的修改操作是日常数据库操作中非常低频的#xff0c;这就好像盖完了一栋楼之后#xff0c;很少会去动地基#xff0c;不过这种情况在实际开发当中并非完全没有可能#xff0c;因此#xff0c;此篇博客主要总结表结构修改相关的语句。
一、备份表
如果…引言
一些对表结构的修改操作是日常数据库操作中非常低频的这就好像盖完了一栋楼之后很少会去动地基不过这种情况在实际开发当中并非完全没有可能因此此篇博客主要总结表结构修改相关的语句。
一、备份表
如果要执行一些修改表结构的操作建议可以先对表整体进行备份
CREATE TABLE old_table_bak SELECT * FROM old_table;
注意 备份生成的表不会有主键和自增等信息需要重新添加。
二、修改表名
两种语句
ALTER TABLE old_table_name RENAME new_table_name;
RENAME TABLE old_table_name TO new_table_name;
三、修改字符集
推荐的字符集是 utf8编码但在某些情况下可能还会要求使用GBK或者 GB2312等。
ALTER TABLE table_name CHARSET gbk;
# 或
ALTER TABLE table_name CHARSET gb2312;
四、清空表数据
高危操作谨慎执行
DELETE FROM table_name;
delete from 操作会一条一条进行删除还有一种更快速的删除: TRUNCATE
TRUNCATE table_name;
4.1 DELETE 与 TRUNCATE 在事务中的区别
关闭自动提交开启事务执行 DELETE 语句。
SET autocommit 0;
DELETE FROM emp_bak; 再执行 ROLLBACK 语句
ROLLBACK; 可以成功回滚。
再次开启事务执行 TRUNCATE 语句
TRUNCATE emp_bak;
执行回滚ROLLBACK但是数据仍然没有恢复。可见TRUNCATE 一旦执行则不可逆因此在实际工作中一定要慎用该SQL。
五、删表
高危操作谨慎执行
DROP TABLE IF EXISTS table_name;
六、修改表字段
6.1 修改字段类型
将表中的某个字段的类型修改并且设置为非空
ALTER TABLE table_name MODIFY column_name VARCHAR(50) NOT NULL;
6.2 修改字段名字
将表中的某个字段名称修改并且设置为非空
ALTER TABLE table_name CHANGE old_column_name new_column_name CHAR(30) NOT NULL;
实际上MODIFY 和 CHANGE 的区别并不十分明显。
MODIFY 主要用来修改字段属性和约束无法重命名字段。
CHANGE 主要用来修改字段的名称可以同时修改属性和约束但前提是必须要进行重命名操作如果不希望修改名称又想用CHANGE 关键字那么可以重命名为旧名称即
ALTER TABLE table_name CHANGE old_column_name old_column_name CHAR(30) NOT NULL;
另外注意NOT NULL 非空约束在不写的情况下是会变为允许为NULL 的。因此如果你想修改某个字段的类型或者名称但不想修改 非空约束那么就必须在修改语句中加 NOT NULL 否则该字段将被置为允许为 NULL。
6.3 添加字段
在表最后追加一个字段默认为NULL
ALTER TABLE table_name ADD new_column SMALLINT DEFAULT NULL;
在表中指定位置新增一个字段
ALTER TABLE table_name ADD new_column VARCHAR(50) DEFAULT NULL COMMENT 品类编号 AFTER id;
在表头加入一个新字段
ALTER TABLE table_name ADD new_column VARCHAR(50) DEFAULT NULL FIRST;
6.4 删除字段
ALTER TABLE table_name DROP column_name;
七、主键的维护
7.1 删除主键约束和自增
删除主键之前要确保该主键是非自增的否则无法删除主键我们使用AUTO_INCREMENT 来约束自增和 NOT NULL一样如果不写那么就会变为非自增
ALTER TABLE table_name MODIFY id INT NOT NULL;
然后删除主键约束
ALTER TABLE table_name DROP PRIMARY KEY;
7.2 添加主键和自增
除了在建表的时候指定主键和自增我们还可以通过下面的方式指定主键和自增
ALTER TABLE table_name ADD PRIMARY KEY (id);
ALTER TALBE table_name MODIFY id INT NOT NULL AUTO_INCREMENT;
我们也可以将主键和自增一起指定
ALTER TABLE table_name MODIFY id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (id);