莫听穿林打叶声,何妨吟啸且徐行
什么是数据库
- DB,Database,数据库,存储数据的仓库
- DBMS,Database Management System,数据库管理系统(MySQL,Oracle,SQL Server…)
- DBA,Database Administer,数据库管理员,操作DBMS管理DB
模型
- 实体+关系
- 实体间的关系
- 一对一
- 一对多、多对一
- 多对多
一对一:例如一个丈夫有一个妻子。建表:建一张Men表,增加一个外键字段wifeId,引用Women表的id
一对多:例如一个父亲有多个孩子。建表:建两个表:Father表和Child表,Child表中增加一个字段FatherId(‘一’方不动,’多’方添加一个外键字段)
多对多:例如一个学生可以选修多门课程,每门课程可供多个学生选择。建表:建三个表:Student表、Course表、Major表,Major表中增加两个外键字段StudentId 和 CourseId;
数据完整性约束
TODO
索引
TODO
SQL
什么是SQL
- Structure Query Language,结构化查询语言
- 与数据库通信的语言
SQL语句分类
DDL,数据定义语言
create/alter/drop database/table
create/drop index
DQL,数据查询语言
select
DML,数据操纵语言
insert update delete select
DCL,数据控制语言: 设置用户的访问权限 安全
grant,revoke
savepoint
lock
commit,rollback
数据类型
类型 | 说明 |
---|---|
integer(size) int(size) smallint(size) tinyint(size) | |
float(size,d) double(size,d) decimal(size,d) numeric(size,d) | 在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数 |
CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。 |
VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。 |
TEXT | 存放最大长度为 65,535 个字符的字符串。 |
DATE | YYYY-MM-DD |
TIME | HH:MM:SS |
DATETIME | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | YYYY-MM-DD HH:MM:SS |
BLOB | 大二进制数据 |