• 数据库表的操作


    目录

    一、表的创建

    1、创建语法

    2、创建案例

    二、查看表结构

    三、修改表

    1、修改表名

    2、添加记录

    3、修改列属性

    4、添加列(字段)

    5、删除列(字段)

    6、修改列名字

    四、删除表

    五、修改表结构的风险

    1、风险

    2、建议


    一、表的创建

    1、创建语法

    1. CREATE TABLE table_name (
    2. field1 datatype,
    3. field2 datatype,
    4. field3 datatype
    5. ) character set 字符集 collate 校验规则 engine 存储引擎;
    6. //charset=字符集 collate=校验规则
    说明:
    field 表示列名;
    datatype 表示列的类型;
    character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
    collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;

    2、创建案例

    1. create table users (
    2. -> id int,
    3. -> name varchar(20) comment '用户名',
    4. -> password char(32) comment '密码是32位的md5值',
    5. -> birthday date comment '生日'
    6. -> ) character set utf8 engine MyISAM;

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

    二、查看表结构

    desc 表名;

    三、修改表

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

    语法:

    1. ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
    2. datatype]...);//添加一个列
    3. ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
    4. datatype]...);//修改列属性的语法
    5. ALTER TABLE tablename DROP (column);

    1、修改表名

    alter table users rename to user1;
    

    2、添加记录

    1. insert into person (name,age,gender) values('kevin',19,'male')
    2. ,('mei',21,'female');

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

    3、修改列属性

    alter table person modify home char(32);
    

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

    4、添加列(字段)

    alter table person add home varchar(32) comment '家乡' after name;

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

    5、删除列(字段)

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

    6、修改列名字

    1. alter table person change home hometown varchar(32);
    2. //不但要给新名称,而且新字段需要完整定义

    四、删除表

    drop table user1;
    

    五、修改表结构的风险

    1、风险

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

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

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

    2、建议

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

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

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

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

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

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

  • 相关阅读:
    AOSP——Android.mk解析
    MySQL数据类型
    数据转换成json格式
    带头双向循环链表的实现
    mybits--动态sql和分页
    python基于django的商品比价平台
    HDLbits exercises 1 (开头到vector5节选题)
    网工内推 | 急聘网络运维,周末双休,厂商认证优先
    C# 基础(四)
    【python爬虫】15.Scrapy框架实战(热门职位爬取)
  • 原文地址:https://blog.csdn.net/weixin_65592314/article/details/132742181