表的操作


查看所有表

语法

SHOW TABLES;

创建表

语法

1
2
3
4
5
6
7
8
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (
  field datatype [约束] [comment '注解内容'],
  field datatype [约束] [comment '注解内容'],
  ...
) 
[engine 存储引擎] 
[character set 字符集] 
[collate 排序规则];
  • TEMPORARY :表示临时创建一个表
  • field :表示字段名
  • datatype :表示数据类型
  • 约束 :表示字段的约束条件
  • comment :表示字段的注释
  • engine :表示表的存储引擎
  • character set :表示表的字符集
  • collate :表示表的排序规则

示例

创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则 为utf8mb4_0900_ai_ci

1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS user(
    id BIGINT COMMENT '用户编号',
    name VARCHAR(10) COMMENT '用户名字',
    password VARCHAR(20) COMMENT '密码',
    birthday DATE COMMENT '生日'
)CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

创建⼀个表并指定存储引擎为MyISAM

1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS user(
    id BIGINT COMMENT '用户编号',
    name VARCHAR(10) COMMENT '用户名字',
    password VARCHAR(20) COMMENT '密码',
    birthday DATE COMMENT '生日'
)ENGINE = MyISAM ;

表在磁盘上对应的文件

创建数据加时使用校验语句

IF NOT EXISTS

查看表结构

DESC 表名;

示例

  • Field:表中的列名
  • Type:列的数据类型
  • Null:是否允许为空
  • Key:索引类型
  • Default:默认值
  • Extra:额外信息

修改表

语法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
ALTER TABLE tbl_name 
[alter_option [, alter_option] ...];

alter_option: {
    table_options
  | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
  | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
  | DROP [COLUMN] col_name
  | RENAME COLUMN old_col_name TO new_col_name
  | RENAME [TO | AS] new_tbl_name
}
  • tbl_name: 要修改的表名
  • ADD: 向表中添加列
  • MODIFY: 修改表中现有的列
  • DROP: 删除表中现有的列
  • RENAME COLUMN: 重命名表中现有的列
  • RENAME [TO | AS] new_tbl_name: 重命名当前的表

示例

向表中添加⼀列

1
ALTER TABLE user ADD email VARCHAR(20) COMMENT'邮箱' AFTER birthday;

AFTER 是一个用于指定新添加字段位置的关键字,如果不指定 AFTER 或 FIRST(FIRST 表示插入到表的第一个位置),新字段默认会被添加到表中所有现有字段的最后。

修改某列的⻓度

1
ALTER TABLE user MODIFY [COLUMN] name VARCHAR(30) COMMENT '用户名字';

重命名某列

1
ALTER TABLE user RENAME COLUMN name TO username;

COLUMN 不能省略

删除某个字段

1
ALTER TABLE user DROP [COLUMN] email;

修改表名

1
ALTER TABLE user RENAME TO users;

删除表

1
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...;

TEMPORARY 表示删除临时表 tbl_name 表示要删除的表名 IF EXISTS 表示如果表不存在,不报错

微信:zxcyuijkl
使用 Hugo 构建
主题 StackJimmy 设计