3.DDL
数据库
1.查看所有数据库名称
show databases;
如下图所示,infornation_schema、mysql、performance_schema以及sys都是mysql自带的系统级数据库。
2.创建数据库
create database if not exists databaseName character set = utf8;
如下图所示,创建mydb数据库之后,通过命令查看当前系统中所含有的所有数据库。
3.查看创建数据库的语句
show create database databaseName;
如下图所示,查看名为mydb数据库的创建语句。
4.使用数据库
use databaseName;
如下图所示,使用名为mydb数据库的命令。
5.查看当前所使用的数据库
select database();
如下图所示,查询当前所使用的数据库命令。
6.删除数据库
drop database if exists databaseName;
如下图所示,删除student数据库之后,只剩下系统级的四个数据库。
数据表
1.数据类型
在创建数据表时,准确的定义字段的数据类型是非常重要的。 MySQL支持多种数据类型,但大致可以分为3类:数值、日期和字符串类型。
类型 | 所占字节数 | 说明 |
---|---|---|
tinyint | 1 | 小整数值 |
smallint | 2 | 大整数值 |
mediumint | 3 | 大整数值 |
int | 4 | 大整数值 |
bigint | 8 | 极大整数值 |
float | 4 | 单精度浮点数值 |
double | 8 | 双精度浮点数值 |
decimal | Max(D+, M+) | 含小数值,例如金额 |
类型 | 所占字节数 | 说明 |
---|---|---|
date | 3 | YYYY-MM-DD |
time | 3 | HH:MM:SS |
year | 1 | YYYY |
datetime | 8 | YYYY-MM-DD HH:MM:SS |
timestamp | 8 | YYYYMMDDHHMMSS |
类型 | 所占字节数 | 说明 |
---|---|---|
char | 0~255 | 定长字段串 |
varchar | 0~65535 | 变长字符串 |
text | 0~65535 | 长文本数据 |
blob | 二进制形式的文本数据 |
2.查看所有数据表名称
show tables;
如下图所示,选择mydb数据库,查看其含有的数据表,因为还没有创建数据表,所以查询结果为空。
3.创建数据表
create [temporary] table [if not exists] tableName
[(definition,…)]
[toptions]
[statement]
- temporary:表示创建临时表,在当前会话结束后将自动消失。
- if not exists:在建表前,先判断表是否存在,只有该表不存在时才创建。
- definition:建表语句的关键部分,用于定义表中各列的属性。
- options:表的配置选项,如表的默认存储引擎、字符集。
- statement:通过select语句建表。
如下图所示,创建contacts数据表,然后查询数据库含有的表名称,查询结果为contacts。
4.查看创建数据表的语句
show create table tableName;
如下图所示,查看名为contacts数据表的创建语句。
5.删除数据表
drop table tableName;
如下图所示,删除名为contacts的数据表之后,通过show tables命令查看当前数据库所拥有的数据表,结果为空。
6.添加单列
alter table tableName add column columnName defination first | after columnName;
如下图所示,在contacts数据表的name列后添加一列age,数据类型为int。
7.修改列名称
alter table tableName change older newer defination first | after columnName;
如下图所示,将contacts数据表的phone列名称修改为mobile,数据类型为varchar。
8.修改列定义
alter table tableName modify columnName defination first | after columnName;
如下图所示,将contacts数据表的mobile列的长度由11修改为16。
9.修改表名称
alter table tableName rename newName;
如下图所示,将contacts数据表的名称修改为contact。
数据完整性
1.数据完整性
数据完整性是指存储在数据库中的数据,应该保持一致性和可靠性。
关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户自定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。
2.实体完整性
实体就是现实世界中的某个对象,RDBMS中一行代表一个实体。实体完整性就是保证每一个实体都能被区别。实体完整性要求每张表都有唯一标识符,每张表中的主键字段不能为空且不能重复。
3.参照完整性
主要是表与表之间的关系,可以通过外键来实现。参照完整性要求关系中不允许引用不存在的实体。
4.域完整性
域完整性主要是对列的输入有要求,通过限制列的数据类型、格式或值的范围来实现。域完整性是针对某一具体关系数据库的约束条件,它保证表中某些列不能输入无效的值。域完整性指列的值域的完整性,如数据类型、格式、值域范围、是否允许空值等。
5.用户自定义完整性
借助存储过程和触发器实现。用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
6.约束
- 主键约束
alter table tableName add constraint primary key(...); alter table tableName drop primary key;
- 外键约束
alter table tableName add contraint foreign key(...) references tablename; alter table tableName drop foreign key ...;
- 默认值约束
alter table tableName alter colimnname set default value; alter tablre tableName alter columbbane drop default;
- 唯一键约束
alter table tableName add constraint unique key(...); alter table tableName drop index ...;
推荐阅读