5.1 表的基本概念
表示包含数据库中所有数据的数据库对象。一行代表唯一的记录,一列代表记录的一个字段。
- 列(Columns):属性列,创建表时必须指定列名和数据类型。
- 索引(Indexes):根据指定列建立起来的顺序,提供了快速访问数据的途径。
- 触发器(Triggers):用户定义的事务命令的集合。
5.2 表的操作
创建表
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.
.
.
属性名 数据类型
);
查看表定义
DESCRIBE table_name;
查看表详细定义
SHOW CREATE TABLE table_name\G
注意:sql语句可以使用";","\g","\G"符号来结束,使用"\G"可以使结果显示更加美观。
删除表
DROP TABLE table_name;
修改表名
ALRET TABLE old_table_name RENAME [TO] new_table_name;
增加字段
ALERT TABLE table_name
ADD 属性名 数据类型;//在表的最后一个位置增加字段
ALERT TABLE table_name
ADD 属性名 数据类型 FIRST;//在表的第一个位置增加字段
ALERT TABLE table_name
ADD 属性名 数据类型
AFTER 属性名;//在表的最后一个位置增加字段
删除字段
ALERT TABLE table_name
DROP 属性名;
修改字段
ALERT TABLE table_name
MODIFY 属性名 数据类型;//修改字段的数据类型
ALERT TABLE table_name
CHANGE 旧属性名 新属性名 旧数据类型;//修改字段的名字
ALERT TABLE table_name
MODIFY 旧属性名 新属性名 旧数据类型 新数据类型;//修改字段的名字和属性
修改字段的顺序
ALERT TABLE table_name
MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
5.3 操作表的约束
5.3.1 MySQL支持的完整性约束
完整性是指数据的准确性和一致性。MySQL提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。
完整性约束关键字 | 含义 |
NOT NULL | 约束字段的值不为空 |
DEFAULT | 设置字段的默认值 |
UNIQUE KEY(UK) | 约束字段的值是唯一 |
PRIMARY KEY(PK) | 约束字段为表的主键,可以作为改表记录的唯一标识 |
AUTO_INCREAMENT | 约束字段的值为自动增加 |
FOREIGN KEY(FK) | 约束字段为表的外键 |
注意:在为约束设置标识符时,推荐使用“约束缩写_字段名”。例如uk_uname。
1. 设置主键约束:
CREATE TABLE table_name(
属性名 数据类型 PRIMY KEY,//单字段主键
......
);
CREATE TABLE table_name(
属性名 数据类型,
......
【CONSTRAINT 约束名】 PRIMARY KEY(属性名1,属性名2),//属性1和属性2为联合主键
);
2.设置外键约束:
子表中某个字段的取值由父表决定。例如,表示每个部门有多个雇员,有雇员表和部门表,雇员表(字表)中有一个表示部门编号的字段depno(外键),其依赖于部门表(父表)的主键。
CREATE TABLE table_name(
属性名 数据类型,
......
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1)
REFFERENCES 表名(属性名2)
);
属性名1为子表中设置外键的字段名,属性名2为父表中设置主键约束的字段名。