数据库表的操作

目录

一、表的创建

1、创建语法

2、创建案例

二、查看表结构

三、修改表

1、修改表名

2、添加记录

3、修改列属性

4、添加列(字段)

5、删除列(字段)

6、修改列名字

四、删除表

五、修改表结构的风险

1、风险

2、建议


一、表的创建

1、创建语法

sql 复制代码
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
//charset=字符集  collate=校验规则

说明:
field 表示列名;
datatype 表示列的类型;
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;

2、创建案例

sql 复制代码
create table users (
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '密码是32位的md5值',
    -> birthday date comment '生日'
    -> ) character set utf8 engine MyISAM;

说明:
不同的存储引擎,创建表的文件不一样。
users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm :表结构
users.MYD :表数据
users.MYI :表索引

二、查看表结构

sql 复制代码
desc 表名;

三、修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

语法:

sql 复制代码
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);//添加一个列

ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);//修改列属性的语法

ALTER TABLE tablename DROP (column);

1、修改表名

sql 复制代码
alter table users rename to user1;

2、添加记录

sql 复制代码
insert into person (name,age,gender) values('kevin',19,'male')
,('mei',21,'female');

说明:括号里的列名称可以省略,这是默认添加全部列。

3、修改列属性

sql 复制代码
alter table person modify home char(32);

这种修改是直接覆盖原来的属性,后面的comment也会被覆盖。

4、添加列(字段)

sql 复制代码
alter table person add home varchar(32) comment '家乡' after name;


插入新字段后,对原来表中的数据没有影响。

5、删除列(字段)

注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

sql 复制代码
alter table person drop gender;

6、修改列名字

sql 复制代码
alter table person change home hometown varchar(32);
//不但要给新名称,而且新字段需要完整定义

四、删除表

sql 复制代码
drop table user1;

五、修改表结构的风险

1、风险

(1)修改数据库的表可能会导致数据丢失或损坏。例如,如果修改了表的数据类型或长度,可能会造成数据截断或转换错误。如果修改了表的主键或唯一约束,可能会引发数据冲突或重复。如果修改了表的外键或参照完整性约束,可能会破坏数据之间的关联关系。

(2)修改数据库的表可能会影响索引的效率和空间占用。例如,如果修改了表的列名或顺序,可能会导致索引失效或需要重建。如果修改了表的列属性或默认值,可能会导致索引分裂或碎片化。如果修改了表的存储引擎或字符集,可能会导致索引不兼容或需要转换。

(3)修改数据库的表可能会增加数据库的维护成本和复杂度。例如,如果修改了表的结构或功能,可能会导致应用程序需要修改或适配。如果修改了表的分区或分片策略,可能会导致数据迁移或同步问题。如果修改了表的备份或恢复方案,可能会导致数据安全或可用性风险。

2、建议

因此,数据库的表不建议随意修改除非有充分的理由和测试。一般来说,数据库的表应该在设计阶段就做好规划和优化,避免后期频繁变更。如果确实需要修改数据库的表,应该遵循以下原则:

(1)在修改数据库的表之前,应该做好数据备份和恢复计划,以防止数据丢失或损坏。

(2)在修改数据库的表之前,应该评估修改的影响和风险,以及是否有更好的替代方案。

(3)在修改数据库的表之前,应该通知相关的应用程序开发者和维护者,以便做好协调和测试工作。

(4)在修改数据库的表时,应该尽量减少对线上业务的影响和干扰,选择合适的时间和方式进行操作。

(5)在修改数据库的表后,应该及时检查数据和索引的完整性和有效性,以及监控数据库的性能和稳定性。

相关推荐
不是起点的终点41 分钟前
【实战】Python 一键生成数据库说明文档(对接阿里云百炼 AI,输出 Word 格式)
数据库·python·阿里云
2301_813599553 小时前
Go语言怎么做秒杀系统_Go语言秒杀系统实战教程【实用】
jvm·数据库·python
NCIN EXPE7 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台7 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路7 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家7 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE7 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow128 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO8 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_743623928 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python