目录
一、表的创建
1、创建语法
2、创建案例
二、查看表结构
三、修改表
1、修改表名
2、添加记录
3、修改列属性
4、添加列(字段)
5、删除列(字段)
6、修改列名字
四、删除表
五、修改表结构的风险
1、风险
2、建议
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
//charset=字符集 collate=校验规则
create table users (
-> id int,
-> name varchar(20) comment '用户名',
-> password char(32) comment '密码是32位的md5值',
-> birthday date comment '生日'
-> ) character set utf8 engine MyISAM;
desc 表名;
语法:
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);
alter table users rename to user1;
insert into person (name,age,gender) values('kevin',19,'male')
,('mei',21,'female');
说明:括号里的列名称可以省略,这是默认添加全部列。
alter table person modify home char(32);
这种修改是直接覆盖原来的属性,后面的comment也会被覆盖。
alter table person add home varchar(32) comment '家乡' after name;
alter table person drop gender;
alter table person change home hometown varchar(32);
//不但要给新名称,而且新字段需要完整定义
drop table user1;
(1)修改数据库的表可能会导致数据丢失或损坏。例如,如果修改了表的数据类型或长度,可能会造成数据截断或转换错误。如果修改了表的主键或唯一约束,可能会引发数据冲突或重复。如果修改了表的外键或参照完整性约束,可能会破坏数据之间的关联关系。
(2)修改数据库的表可能会影响索引的效率和空间占用。例如,如果修改了表的列名或顺序,可能会导致索引失效或需要重建。如果修改了表的列属性或默认值,可能会导致索引分裂或碎片化。如果修改了表的存储引擎或字符集,可能会导致索引不兼容或需要转换。
(3)修改数据库的表可能会增加数据库的维护成本和复杂度。例如,如果修改了表的结构或功能,可能会导致应用程序需要修改或适配。如果修改了表的分区或分片策略,可能会导致数据迁移或同步问题。如果修改了表的备份或恢复方案,可能会导致数据安全或可用性风险。
因此,数据库的表不建议随意修改,除非有充分的理由和测试。一般来说,数据库的表应该在设计阶段就做好规划和优化,避免后期频繁变更。如果确实需要修改数据库的表,应该遵循以下原则:
(1)在修改数据库的表之前,应该做好数据备份和恢复计划,以防止数据丢失或损坏。
(2)在修改数据库的表之前,应该评估修改的影响和风险,以及是否有更好的替代方案。
(3)在修改数据库的表之前,应该通知相关的应用程序开发者和维护者,以便做好协调和测试工作。
(4)在修改数据库的表时,应该尽量减少对线上业务的影响和干扰,选择合适的时间和方式进行操作。
(5)在修改数据库的表后,应该及时检查数据和索引的完整性和有效性,以及监控数据库的性能和稳定性。