MySQL表基本操作
表是数据库中基本的操作对象,是数据存储的基本单位。表中的数据是按行和列来存储的,每一行代表一条数据。
创建数据表
创建表之前需要指定操作的数据库,表是存在数据库内的。使用 USE 命令指定库
USE my_db;
如果不指定数据库会抛出 No database selected 的错误
创建数据表语法:
CREATE TABLE <表名>
(
字段1, 数据类型 [约束类型] [默认值],
字段2, 数据类型 [约束类型] [默认值],
... ...
[表级别的约束条件]
);
创建表的名称不区分大小写,不能使用SQL的关键字例如,CREATE、DROP 等。
使用主键约束
主键约束(Primary Key Constraint)要求主键列的数据唯一。主键可以是一个字段也可以是多个字段。
字段名 数据类型 PRIMARY KEY [默认值];
主键的创建也可以放在定义完所有列之后
[CONSTRAINT<约束名>] PRIMARY KEY [字段名]
外键约束
外键约束用来在两个表之间建立连接,可以是一列或者多列。一个表可以有一个或多个外键。外键在实际开发中一般很少使用,原因是数据库操作会变得复杂,所以一般采用通过程序控制而不是用外键约束。
[CONSTRAINT<外键名>] FOREIGN KEY 字段名1 [,字段名2,...] REFERENCES <主表名> 主键列1 [,主键列2...];
外键名表示定义外键约束的名称,一个表不能有相同名称的外键。字段名表示子表需要添加外键约束的字段列;主表名表示被子表外键所依赖的表名称;主键列表示主表中定义的主键列。
非空约束
非空约束表示字段不能为空,当插入入空值时会抛出异常。
字段名 数据类型 not null;
唯一约束
唯一约束表示要求该列唯一,允许为空但只能有一个。
字段名 数据类型 UNIQUE
使用默认约束
默认约束表示当差新字段时给出默认值
字段名 数据类型 DEFAULT 默认值
属性自增
当希望自动生成字段值时可以使用主键自增,每新加一条数据字段自动加1。一个表中只能由一个字段使用自增,且该字段必须为主键的一部分。自增约束字段可以是任何整数类型。
字段名 数据类型 AUTO_INCREMENT
查看数据表结构
使用DESCRIBE可以查看表的字段信息。包括字段名、数据类型、是否为主键、是否有默认值等。
DESCRIBE 表名;
可以简写为
DESC 表名;
查看详细表结构
使用 SHOW CREATE TABLE 语句可以用来显示创建表时使用的语句
SHOW CREATE TABLE <表名\G>;
\G参数表示格式化展示内容,为可选项。
修改表结构
修改表结构使用 ALTER TABLE 常用的改表操作有:修改表名、字段名、字段数据类型、增加或删除字段、修改字段排列位置、更改表的搜索引擎、删除表的外键约束等。
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
修改字段数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>;
修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
添加字段
ALERT TABLE <表名> ADD <新字段名> <数据类型>
[约束条件] [FIRST | AFTER 已存在字段名];
删除字段
ALTER TABLE <表名> DROP <字段名>;
修改字段排列位置
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER<字段2>;
修改表存储引擎
ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
删除表的外键约束
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
删除数表
DROP TABLE [IF EXISTS] 表1,表2,...表n;
DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表。如果存在外键的情况下,直接删除主表会显示失败,可以先删除外键约束再删除表。