创建表
- 创建表格式
CREATE TABLE <table_name> ( 字段名1, 数据类型 [列级约束条件] [默认值], 字段名2, 数据类型 [列级约束条件] [默认值], ... [表级约束条件] );
- 表名不区分大小写,不能使用 SQL 语言中的关键字
约束
-
主键约束
字段名 数据类型 PRIMARY KEY [默认值]
:单字段主键 定义字段时定义PRIMARY KEY(字段1, 字段2,...字段n)
: 多字段约束, 表约束时定义
-
外键约束
[constraint <外键名> FOREIGN KEY 字段名1 [,字段名2...] REFERENCES <主表名> 主键列1 [, 主键列2,...]
- 可以有一个或多个外键
- 外键若不为空,则每个外键值必须等于另一个表中主键的某个值
- 保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。
-
非空约束
字段名 数据类型 NOT NULL
: 值不能为空
-
唯一性约束
字段名 数据类型 UNIQUE
:要求该列唯一,允许为空,但只能出现一个空值。CONSTRAINT STH UNIQUE(name)
: 可以多个值
-
默认约束
字段名 数据类型 DEFAULT 默认值
: 设置默认值
-
属性值自增
字段名 数据类型 AUTO_INCREMENT
: 字段自动增加TINYINT、SMALLINT、INT、BIGINT
都可以自增- 一个表只能有一个字段使用自增,且必须为主键的一部分
- 初始值默认 1 ,字段值自动加 1
查看表结构
DESCRIBE/DESC table_name
:查看表的结构,包含字段名,类型, NULl 约束,KEY 约束,DEFAULT 约束,附加信息 ( AUTO_INCREMENT ) 等SHOW CREATE TABLE table_name;
: 查看表详细的结构语句
修改数据表
- 修改表名
ALTER TABLE <old_name> RENAME [TO] <new_name>
: 修改旧到新
- 修改字段的数据类型
ALTER TABLE <table_name> MODIFY <字段名> <数据类型>
: 修改字段的数据类型
- 修改字段名
ALTER TABLE <table_name> CHANGE <old_name> <new_name> <new_data_type>
- 添加字段
ALTER TABLE <table_name> ADD <new_name> <type_name_type> [constraint] [FIRST | AFTER name]
FIRST
插入列在第一行,AFTER name
表示插入列在name
之后
- 删除字段
ALTER TABLE <table_name> DROP <name>
: 删除字段
- 修改字段的排列位置
ALTER TABLE <table_name> MODIFY column1 <dataType> FIRST | AFTER <column2
: after和first同上
- 修改引擎
ALTER TABLE table_name ENGIEN=engienName
- 删除表的外键约束
ALTER TABLE table_name DROP FOREIGH KEY <fk_name>
删除数据表
DROP TABLE [IF EXISTS] table_name1,2
- 有主外键关系时, 先删除主外关系,然后删除表