美文网首页
03-表的增删改查

03-表的增删改查

作者: 喝酸奶要舔盖__ | 来源:发表于2019-01-05 13:36 被阅读0次

    创建表

    create table [if not exists] 表名(
        字段名称 数据类型 [null | not null],
        字段名称 数据类型 [auto_increment],
        字段名称 数据类型 [primary key],
        字段名称 数据类型 [default],
        字段名称 数据类型 [comment]
    )engine=存储引擎;
    
    字段名称: 相当于Excel中每一列的名称
    数据类型: 相当于Excel中每一列的数据类型
    
    [null | not null] 该字段是否可以为空, 默认都可以为空
    [auto_increment] 该字段的值自动增长
    [primary key] 主键, 一张表中只能有一个主键
    [default] 默认值, 如果没有传递对应的值, 就使用默认值
    [comment] 备注, 方便程序员之间沟通
    存储引擎  innodb/myisam/memory
    

    注意点:
    由于一个MySQL中可以有很多数据库, 所以在创建表之前必须告诉MySQL要创建到哪一个数据库中

    示例一:
    use person;
    create table stu(
        id int,
        name varchar(20)
    );
    上面语句的含义: 在person数据库中创建一张叫做stu的表, 表中有两个字段, 分别是id和name, id将来可以存储int类型的值, name将来可以存储字符串类型的值
    
    示例二: 企业开发推荐写法
    use person;
    create table if not exists stu(
        id int,
        name varchar(20)
    );
    

    查看表

    • 查看数据库中的表
      show tables;
    • 查看表的结构
      desc[ribe] 表名;

    删除表

    drop table [if exists] 表名1, 表名2, ....;

    示例一:
    drop table stu;
    注意点: 表不存在会报错
    
    示例二:
    drop table if exists stu;
    
    示例三:
    #可以连续删除多张表
    drop table if exists stu1,stu2;
    

    修改表

    • 添加字段
      alter table 表名 add 字段名 数据类型 [位置];
    示例一:
    会将新的字段添加到原有字段的最后
    alter table stu3 add email varchar(30);
    
    示例二:
    会将新的字段添加到原有字段的最前面
    alter table stu3 add phone int first;
    
    示例三:
    会将新的字段添加到指定字段的后面
    alter table stu3 add addr varchar(100) after name;
    
    • 删除字段
      alter table 表名 drop 字段名;
    示例一:
    alter table stu3 drop name;
    
    • 修改字段
      alter table 表名 change 原始字段名 新字段名 数据类型;
    示例一:
    改字段名称, 并且改字段的类型
    alter table stu3 change addr age int;
    
    示例二:
    改字段的类型, 不改字段的名称
    alter table stu3 modify phone varchar(20);
    
    • 修改表的存储引擎
      alter table 表名 engine=引擎名称;
    修改表的存储引擎实例
    alter table stu2 engine=innodb;
    
    • 修改表名
      alter table 原始名称 rename to 新名称;

    存储引擎分类

    • innodb: 默认
    create table stu(
        id int,
        name varchar(20)
    );
    create table stu1(
        id int,
        name varchar(20)
    )engine=innodb;
    - 通过观察发现指定存储引擎为innodb和不指定引擎创建表生成的文件夹都一样, 所以推断出默认使用的就是innodb存储引擎
    - innodb存储引擎只要创建一张表就会自动创建一个后缀为frm的文件
    - 注意:
        + .frm文件不是存储表中的数据的, 数据会存储到ibdata1中, 如果数据比较多系统会自动创建ibdata2, ibdata3, ....
        + .frm文件是MySQL表结构定义文件
    
    • myisam
    create table stu2(
        id int,
        name varchar(20)
    )engine=myisam;
    - 通过观察发现指定存储引擎为myisam, 只要创建一张表就会自动创建三个文件
    -  .frm文件是MySQL表结构定义文件
    -  .MYD文件存储表的数据
    -  .MYI文件存储表的索引
    
    • memory
    create table stu3(
        id int,
        name varchar(20)
    )engine=memory;
    - 通过观察发现指定存储引擎为memory; 只要创建一张表就会自动创建一个文件
    -  .frm文件是MySQL表结构定义文件
    - 注意点:
        + memory会将数据存储到内存中, 一旦电脑重启数据就不见了
        + 特点读写比较快, 但是不会永久存储
    

    相关文章

      网友评论

          本文标题:03-表的增删改查

          本文链接:https://www.haomeiwen.com/subject/kmmrrqtx.html