1. 新增数据表

基本语法:

create table [if not exists] 表名(
字段名字 数据类型,
字段名字 数据类型       -- 最后一行不需要逗号
)[表选项];
复制代码

解释:

if not exists:如果表名不存在,那么创建,否则不执行创建代码(检查功能)

表选项:控制表的表现

字符集:charset/charset set 具体字符集; -- 保证表中数据存储的字符集

校对集:collate 具体校对集;

存储引擎:engine 具体的存储引擎(innodb 和 myisam)

任何一个表的设计都必须指定数据库。

  1. 方案1:显示的指定表所属的数据库

    create tabe 数据库名.表名();  -- 将当期数据表创建到指定的数据库中
    复制代码

    例:

     -- 创建数据表
     create table if not exists mydatabase.student(  -- 显示的student表放到mydatabase数据库下
        name varchar(10),
        gender varchar(12),
        number int
        age int
     )charset utf8;
    复制代码
  2. 方案2:隐式的指定表所属数据库:先进入到某个数据库环境,然后这样创建的表自动归属到某个指定的数据库。

    进入数据库环境:use 数据库名字;

    例:

    -- 创建数据表
    -- 进入数据库
    use mydatabase;
    
    -- 创建表
    create table class(
    name varchar(10),
    room varchar(10)
    )charset utf8;
    复制代码

    当创建数据表的SQL指令执行之后,发生了什么?

    • 指定数据库下已存在对应的表
    • 在数据库对应的文件夹下,会产生对应表的数据结构文件(跟存储引擎有关系)

2. 查看数据表

  1. 查看所有表

    基本语法:

    show tables;
    复制代码
  2. 查看部分表:模糊匹配

    基本语法:

    show tables like 'pattern';
    复制代码

    例:

    --查看以s结尾的表
    show table like '%s';
    复制代码
  3. 查看表创建语句

    基本语法:

    show create table 表名;
    复制代码

    例:

    --  查看表创建语句
    show create table student\g  -- \g 等同于 ;
    show create table student\G  -- 将查到的结构旋转90度变成纵向。
    复制代码
  4. 查看表结构:查看表中的字段信息

    基本语法:

     ~~~
     desc/describe/show columns from 表名;
     ~~~
    
     例:
    
     ~~~
     -- 查看表结构
     desc calss;
     describe calss;
     show columns from class;  // 以上三种语法表达的意思都一样
     ~~~
    复制代码

3. 修改数据表

表本身存在,还包含字段:表的修改包含两部分:修改表本身和修改字段。

  1. 修改表本身

表本身可以修改:表名和表选项

  • 修改表名:

    rename table 老表名 to 新表名;
    复制代码
  • 修改表选项:字符集、校对集和存储引擎

    alter table 表名 表选项 [=] 值;
    复制代码

    例:

    -- 修改表选项:字符集
    alter table my_student clarset = GBK;
    复制代码
  1. 修改字段

字段操作很多:新增,修改,重名,删除

  • 新增字段:

    alter table 表名 add [column] 字段名 数据类型 [列属性][位置];
    
    位置:字段名可以存放表中任意位置
        first:第一个位置
        after:在哪个字段之后:after字段名;默认的是在最后一个字段之后。
    复制代码

    例:

    -- 给学生表增加ID放在第一个位置
    alter table my_student add column id int first;
    复制代码
  • 修改字段:修改通常是修改属性或者数据类型

    alter table 表名 modify 字段名 数据类型 [属性][位置];
    复制代码

    例:

    -- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
    alter table my_student modify number char(10) after id;
    复制代码
  • 重命名字段

    alter table 表名 change 旧字段 新字段 数据类型 [属性][位置];
    复制代码

    例:

    -- 修改学生表中的 gender字段为sex
    alter table my_student change gender sex varchar(10);
    复制代码
  • 删除字段

    alter table 表名 drop 字段名;
    复制代码

小心: 如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)

4. 删除数据表

基本语法:

drop table 表名1,表名2;  --可以一次性删除多张表
复制