文章目录
创建表
语法形式
CREATE TABLE 表名(
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
.
.
.
属性名 数据类型
);
- 表名:创建表的名称
- 属性名:表中字段的名称
- 数据类型:指定字段的数据类型
- 完整性约束条件:是对字段的限制。如不符合,数据库系统不执行该用户的操作
约束条件 说明 PARAMARY KEY 标识该属性为该表的主键,可以唯一地标识对应的元组 FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键 NOT NULL 标识该属性不能为空 UNIQUE 表示该属性的值是唯一的 AUTO_INCREMENT 标识该属性的值自动增加,这是MySQL的SQL语句的特色 DEFAULT 为该属性的默认值
细节
- 在创建表前需要先使用
USE 数据库名
选择数据库 - 表名不能为SQL语言的关键字。
- 一个表可以有多个属性,定义时,不区分大小写,各属性用
,
隔开,最后一个属性不需要加,
。
设置表的主键
- 说明:主键可以是单一的字段,也可以是多个字段的组合。
- 作用:唯一标识该表中的每条信息。
- 目的:帮助MySQL以最快的速度查到表中的某一条信息。
- 必要条件:唯一、非空。
1)、单字段主键
语法:属性名 数据类型 PARAMARY KEY
该字段能够唯一的确定一条数据
2)、多字段主键
语法:PARAMARY KEY(属性名1,属性名2...属性名n)
这些字段的组合能够唯一的确定一条数据
设置表的外键
- 语法:
CONSTRANT 外键别名 FOREIGN KEY(属性1.1,属性1.2,...,属性1.n) REFERENCES 表名(属性2.1,属性2.2,...属性2.n)
- 外键别名:外键的代号
- 属性1:子表中设置的外键
- 表名:父表的名称
- 属性2:父表的主键
- 说明:外键是标的一个特殊字段。如果字段son是一个表A的属性,且依赖于表B的主键。那么,称表B为父表,表A为子表,son为表A的外键。通过son字段将父表B和子表A建立关联关系。设置表的外键指在创建表设置某个字段为外键。
- 作用:建立与父表的关联关系。保证信息的完整性。
- 原则:必须依赖与数据库中已存在的父表的主键。外键可以为空值。子表的外键关联的必须是父表的主键,而且数据类型必须一致
设置表的非空约束
- 语法:
属性名 数据类型 NOTNULL
- 说明:非空性是指字段的值不能为空值(NULL)。非空约束将保证所有记录中该字段都有值。
设置表的唯一性约束
- 语法:
属性名 数据类型 UNIQUE
- 说明:唯一性是指所有记录中该字段的值不能重复出现。
设置标的属性值自动增加
- 语法:
属性名 数据类型 AUTO_INCREMENT
- 说明:主要用于插入的新纪录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。约束字段可以是任何数据类型。默认情况下,该字段的值从1开始。
设置表的属性的默认值
- 语法:
属性名 数据类型 DEFAULT 默认值
- 说明:如果插入一条新的纪录是没有为该字段赋值,则自动插入默认值
查看表结构
1)、查看表基本结构语句DESCRIBE
语法:DESCRIBE 表名;
,其中DESCRIBE
可以简写为DESC
2)、查看表详细结构语句
语法:SHOW CREATE TABLE 表名;
,该语句加上\G更加美观。
修改表
1)、修改表名
语法:ALERT TABLE 旧表名 RENAME [TO] 新表名;
其中TO参数可选,不影响执行。
2)、修改字段的数据类型
语法:ALERT TABLE 表名 MODIFY 属性名 数据类型;
3)、修改字段名
语法:ALERT TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
4)、增加字段
语法:ALERT TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];
- 属性名1:需要增加的字段名称。
- 数据类型:新增加字段的数据类型。
- 完整性约束条件:设置新增字段的完整性约束条件。
- FIRST 加入到第一个位置。
- AFTER 属性名2:将新字段添加到属性名2所指的字段后。
如果执行的SQL语句中没有“FIRST”、“AFTER 属性名2”参数,新增的字段默认为表的最后一个字段。
增加字段时,如果能够加上完整性约束条件,一定要加上。这样可以保证此字段的安全性,甚至可以提高整个标表的数据安全性。
5)、删除字段
语法:ALERT TABLE 表名 DROP 属性名;
6)、修改字段的排列位置
语法:ALERT TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2;
7)、更改表的存储引擎
语法:ALERT TABLE 表名 ENGINE=存储引擎名;
此操作可以避免重新创建表,但是当表中数据过多时,可能会产生意料之外的响。
8)、删除表的外键约束
语法:ALERT TABLE 表名 DROP FOREIGN 外键别名;
- 外键别名:创建表时设置的外键的代号
删除表
1)、删除没有关系的普通表
语法:DROP TABLE 表名;
删除一个表时,表中的所有数据也会被删除。因此,在删除前一定要备份。
2)、删除被其他表关联的父表
假设example4表依赖于example1表。example4表的外键stu_id依赖于example1表的主键。
语法:ALERT TABLE example4 DROP FORING KEY d_fk;
删除其关联子表的外键约束后再去删除该表:DROP TABLE example1;