• MySQL整理4—数据表的基本操作2


    二、查看数据表结构

    查看数据表结构可用:describe和show create table tablename语句

    describe tb_emp1;
    

    show create table tb_emp1; 
    

    三、修改数据表

    #修改表名字alter
    alter table tb_emp3 rename to tb_3;
    #修改字段的数据类型
    alter table tb_emp3 modify name varchar(30); 
    #修改列名和数据类型   alter table 表名 change 旧列名 新列名 数据类型
    #change也可以只修改数据类型,旧新列名相同就可以
    alter table tb_emp3 change salary sal int ;
    #添加字段
    alter table tb_3 add managerid int(11);
    #删除一列
    alter table tb_3 drop salary;
    #修改列的顺序
    show tables;
    desc tb_3;
    alter table tb_3 modify name varchar(30) first;
    desc tb_3;
    alter table tb_3 modify name varchar(25) after id;
    #更改表的存储引擎
    alter table tb_3 engine=innodb;
    #删除表的外键约束
    alter table tb_3 drop foreign key <外键名>
    
    四、删除数据表
    SQL中的drop、delete、truncate都表示删除,但是三者有一些差别
    • delete和truncate只删除表的数据不删除表的结构;drop删除表的数据和表的结构
    • 速度,一般来说: drop> truncate >delete
    • delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效; 如果有相应的trigger,执行的时候将被触发.
    • truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚,操作不触发trigger.
    drop、delete与truncate分别在什么场景之下使用?
    • 不再需要一张表的时候,用drop
    • 想删除部分数据行时候,用delete,并且带上where子句
    • 保留表而删除所有数据的时候用truncate
    delete和truncate删除数据的区别?
    • truncate table test执行更快,清空物理文件,清空表中的所有内容
    • delete from test是逻辑删除,按行删除,而且可以通过where语句选择要删除的行
    1.删除没用被关联的表
    drop table if exists tb_emp1;
    

    2.删除被其他表关联的主表(有外键约束)

    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) not null,
    location varchar(50)
    );
    create table tb_emp5(
    id int(11) primary key,
    name varchar(25),
    deptID int(11),
    salary float,
    constraint fk_empdept1 foreign key(deptID) references tb_dept1(id)
    /*添加外键约束  非空约束*/
    );
    

    此时直接删除表tb_dept1并不能完成,sql语句会报错。需要先删除外键约束

    alter table tb_emp5 drop foreign key fk_empdept1;
    drop table tb_dept1;
    
  • 相关阅读:
    Jmeter 脚本录制
    Scrapy 爬虫模拟登陆的3种策略
    Scrapy Shell
    Ipython
    XPath helper
    python3 接口测试数据驱动之操作mysql数据库
    Pandas 基础(17)
    Pandas 基础(16)
    在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
    Pandas 基础(15)
  • 原文地址:https://www.cnblogs.com/nctjlyh/p/10477353.html
Copyright © 2020-2023  润新知