1 表的创建、修改及删除
分别说明MySQL数据库中表在创建、修改和删除过程中的各种操作和约束处理。
-
- 创建表
CREAT TABEL IF NOT EXISTS “tabel_name”(column_name column_type);
设置主键
分单字段主键和多字段主键。
单字段主键语法:属性名 属性类型 PRIMARY KEY
多字段主键语法:PRIMARY KEY(属性名1,属性名2,…,属性名n)
设置外键
语法:CONSTRAINT 外键别名 FOREIGH KEY(属性1.1,属性1.2,…,属性1.n) REFERENCES 表名(属性2.1,属性2.2,…,属性2.n)
其中,外键别名是外键的代号,属性1参数列表是子表中设置的外键;表明是指父表的表名,属性2参数列表是父表的主键。
设置非空
语法:属性名 数据类型 NOT NULL
唯一性约束
语法:属性名 数据类型 UNIQUE
唯一性约束将保证所有记录中该字段的值不能重复出现。
设置自增
语法:属性名 数据类型 AUTO_INCREMENT
一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。数据类型可以使任何整数类型。默认情况下,字段值从1开始自增。
默认值
语法:属性名 数据类型 DEFAULT 默认值
指定默认值后,在插入新的记录时,如果没有为这个字段赋值,那么DB将自动为这个字段插入默认值。如果没有使用DEFAULT指定默认值,也没有指定字段为非空,那么字段的默认值为空(NULL)。
ENGINE 设置引擎,CHARSET设置编码。
例子:在数据库RUNOOB创建数据表runoob_tbl:
USE RUNOOB;
CREAT TABEL IF NOT EXISTS `runoob_tb1`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_anthor` VARCHAR(30) NOT NULL,
`submission_date` DATE,
PRIMARY KEY(`runoob_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- 查看表结构
查看表结构基本语句
语法:DESCRIBE 表名;其中,DESCRIBE可缩写为DESC
该语法查看表的基本结构,包括:字段名、字段数据类型、是否为主键和默认值等。
DESC runoob_tb1(column_name column_type);
查看表详细结构语句
语法:SHOW CREATE TABLE 表名
除可查看表基本结构信息外,还可查看表默认的存储引擎和字段编码、完整性约束条件等信息。加上\G可美化展示效果。
-
- 修改表
修改表本身的信息,包括字段、数据类型、约束等内容。
修改表名
语法:ALTER TABLE 就表名 RENAME [TO] 新表名;
同一个DB中,表名是唯一的。
修改字段的数据类型
语法:ALTER TABLE 表名 MODIFY 属性名 数据类型;
属性名即字段名。
修改字段名
语法:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
如果数据类型不需要修改,将新数据类型设置成与原来的一样。
增加字段
语法:ALTER TABLE 表名 属性名1 数据类型 [完整性约束条件] [FIRST] [AFTER 属性名2];
其中,“属性名1”参数指需要增加的字段的名称;“数据类型”为新增字段的数据类型;“完整性约束条件”是可选的,设置新增字段的完整性约束条件;“FIRST”是可选的,作用是将新增字段设置为表中的第一个字段;“AFTER 属性名2”是可选参数,作用是将新增字段添加到“属性名2”所指的字段后。如果SQL中没有“FIRST”、“AFTER 属性名2”制定新增参数的位置,新增的字段默认为是表的最后一个字段。
删除字段
语法:ALTER TABLE 表名DROP 属性名;
属性名为需要从表中删除的字段的名称。
DROP TABLE runoob_tb1;
修改字段的排列位置
语法:ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
其中,“属性名1”参数制定需要修改位置的字段的名称;“数据类型”指“属性名1”的数据类型;“FIRST”参数指定位置为表的第一个位置;“AFTER 属性名2”参数指定“属性名1”插入在“属性名2”之后。
-
- 更改表的存储引擎
语法:ALTER TABLE 表名 ENGINE=存储引擎;
其中,存储引擎为设置的新的存储引擎的名称。
-
- 删除外键约束
语法:ALTER TABLE 表名 DROP FOREIGH KEY 外键别名;
其中外键别名参数指创建表时设置的外键的别号。
-
- 删除表
在删除存在外键关系的表时,通过先删除子表的外键约束再删除父表的方法可以不影响子表中的数据保证数据库的安全。