文章目录
表的基本概念
- 表是包含数据库中所有数据库的对象。其中每一行代表一条唯一的记录,每一列代表记录中的一个字段。表中的数据。表中的数据库对象包含列,索引和触发器。
- 列(Columns):也称属性列,再具体创建表时,必须指定列的名字和数据类型。
- 索引(Indexes):是根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径,且可以监督表的数据,使其索引所指向的列中的数据不重复。
- 触发器(Triggers):是指用户定义的事务命令的集合,当对一个表中的数据进行插入、更新或删除时这组命令就会自动执行,可以用来确保数据的完整性和安全性。
表的基本操作
创建表
- 基本语法格式:
CREATE TABLE table_name(
属性名 数据类型,
......
属性名 数据类型
);
例:创建company数据库,在company数据库中创建t_dept表。
CREATE DATABASE company;
USE company;
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(50)
);
查看表结构
- DESCRIBE查看表定义
DESCRIBE table_name;
例:查看表t_dept结构
DESCRIBE t_dept;
- SHOW CREATE TABLE查看表详细定义
SHOW CREATE TABLE table_name;
例:
删除表
- 基本语法格式:
DROP TABLE table_name;
例:删除t_dept表:
修改表
- 修改表名
ALTER TABLE old_table_name RENAME [TO] new_table_name;
例:将t_dept表名修改为tab_dept:
ALTER TABLE t_dept RENAME tab_dept;
查看一下
- 增加字段
2.1在表最后一个位子增加字段
ALTER TABLE table_name ADD 属性名 属性类型;
例:在t_dept表最后增加字段
2.2在表第一个位子增加字段:
ALTER TABLE table_name ADD 属性名 属性类型 FIRST;
例:在t_dept表最前面添加字段
2.3在表指定的字段之后增加字段:
ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名;
例:在deptno字段后添加descri字段:
- 删除字段
ALTER TABLE table_name DROP 属性名;
例:删除descri字段:
- 修改字段:
4.1修改字段数据类型:
ALTER TABLE table_name MODIFY 属性名 数据类型;
例:将deptno的int(11)类型改为vachar(20)
4.2修改字段名字(同时修改属性名):
ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧(新)数据类型;
例:将loc名字改为location,并且数据类型改为char(10);
4.4修改字段顺序
ALTER TABLE table_name MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
例:把deptno调整到dname之后,把loc字段调到第一:
表的约束
- 所谓完整性是指数据库的准确性与唯一性和一致性,而完整性检查就是检查数据的准确性和唯一性。MySQL数据库管理系统提供了一些机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。
- 完整性约束:
- NOT NULL:约束字段不能为空
- DEFAULT:设置字段默认值
- UNIQUE KEY:约束字段的值唯一
- PRIMARY KEY:约束字段为表的主键
- AUTO_INCREMENT:约束字段的值为自动增加
- FOREIGN KEY:约束字段为表的外键
设置主键约束(PK约束)
- 单字段主键
基本语法
CREATE TABLE table_name(
属性名 数据类型 PRIMARY KEY,
......
属性名 数据类型
);
例:创建t_dept表,并设置deptno为主键
PK约束也相当于唯一约束+非空约束
- 多字段主键
基本语法:
CREATE TABLE table_name(
属性名 数据类型,
......
CONSTRAINT 约束名 PRIMARY KEY(属性名1,属性名2)
);
单个字段也可以使用这个语法
例:创建t_dept表,并设置deptno和dname为主键:
设置非空约束(NK约束)
基本语法:
CREATE TABLE table_name(
属性名 数据类型 NOT NULL,
......
属性名 数据类型
);
例:创建t_dept表,并设置deptno为非空:
设置字段默认值(DEFAULT)
基本语法:
CREATE TABLE table_name(
属性名 数据类型 DEFAULT 默认值,
......
属性名 数据类型
);
例:创建t_dept表,并设置loc为默认,默认值为nanjing:
设置字段自动增加(AUTO_INCREMENT)
基本语法:
CREATE TABLE table_name(
属性名 数据类型 AUTO_INCREMENT,
......
属性名 数据类型
);
例:创建t_dept表,并设置deptno为自动增加:
设置唯一约束(UK约束)
基本语法:
CREATE TABLE table_name(
属性名 数据类型 UNIQUE,
......
属性名 数据类型
);
例:创建t_dept表,并设置dname为唯一约束:
设置外键约束(FK约束)
基本语法:
CREATE TABLE table_name(
属性名 数据类型,
......
CONSTRAINT 约束名 FOREIGN KEY(属性名1)
REFERENCES 表名(属性名2)
);
例:在t_dept表的基础上,再创建一个t_emp表,设置deptno为外键约束:
总结
- 本次博客主要讲了关于表的基本操作和表的约束,其中主键约束可以是单字段,也可以是多字段。外键约束则保证了多个表之间的参照完整性。唯一约束则表示了,字段中数据的唯一性。非空则表示了字段值不能为空等。