数据库表的操作

目录

一、表的创建

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)在修改数据库的表后,应该及时检查数据和索引的完整性和有效性,以及监控数据库的性能和稳定性。

相关推荐
oradh3 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist4 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
2601_963282775 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo5 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师6 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶8 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP8 小时前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils8 小时前
sys_dump 备了库,角色和权限别漏在外面
数据库
接着奏乐接着舞。8 小时前
【2026】73道Redis 常见面试题与参考答案
数据库·redis·后端·缓存