首先解释数据库DataBase(DB):即存储数据的仓库,数据经过有组织的存储
数据库管理系统DataBase Management System(DBMS):管理数据库的软件
SQL(Structured Query Language):结构化查询语言 / 操作关系型数据库的编程语言 / 定义操作所以关系型数据库的统一标准
关系型数据库
下图是截取了2020年左右关系型数据库管理系统的前十排名图:
- Oracle:收费大型数据库
- MySQL:开源免费的中小型数据库
- SQL Server:MicroSoft 公司收费的中型数据库(C# 和 .net 等语言常用)
- PostgreSQL:开源免费的中小型数据库
- DB2:IBM 公司的收费大型数据库
- SQLite:嵌入式微型数据库(可作为 Android 内置数据库)
- MariaDB:开源免费的中小型数据库
顾名思义即建立在关系模型上的数据库,也可以说是由多张可以相互连接的 二维表 组成的数据库。
CRUD(create、read、update、delete)是精髓!
SQL 结构化查询语言
SQL 通用语法
SQL 分类(加星是管理员,无是用户)
DDL* 操作数据库 DataBase
DDL* 操作表 Table
CRUD(Create、Retrieve/Read、Update、Delete)操作*
DESC 数据库名称;
查询数据库结构
数据类型
MySQL 中可分为三类:数值、日期、字符串
分类 | 数据类型 | 大小 | 描述 |
---|---|---|---|
数值类型 | TINYINT | 1 byte | 小整数值 |
SMALLINT | 2 bytes | 大整数值 | |
MEDIUMINT | 3 bytes | 大整数值 | |
INT或INTEGER | 4 bytes | 大整数值 | |
BIGINT | 8 bytes | 极大整数值 | |
FLOAT | 4 bytes | 单精度浮点数值 | |
DOUBLE | 8 bytes | 双精度浮点数值 | |
DECIMAL | 小数值 | ||
日期和时间类型 | DATE | 3 | 日期值 |
TIME | 3 | 时间值或持续时间 | |
YEAR | 1 | 年份值 | |
DATETIME | 8 | 混合日期和时间值 | |
TIMESTAMP | 4 | 混合日期和时间值,时间戳 | |
宇符串类型 | CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长宇符串 | |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 | |
TINYTEXT | 0-255 bytes | 短文本字符串 | |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 | |
TEXT | 0-65 535 bytes | 长文本数据 | |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 | |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 | |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 | |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
MySQL 图形化界面工具
- Navicat
- SQLyog
DML
指除 Query 操作外的 Create、Update、Delete。
DQL (非常重要!)
数据库设计
a.约束
主要有:非空、唯一、主键、默认、检查、外键约束
1.非空约束
2.唯一约束
3.主键约束
4.默认约束
5.外键约束(连接约束)
(一个论坛网站的数据库设计图)
b.表关系
1.一对多
2.多对多
3.一对一
4.小结
c.总结
扩展:多表查询(多表连接)
介绍:
1.内连接
2.外连接
3.子查询(嵌套查询)
事务
事务四大特征
- 原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
- 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
- 隔离性(Isolation):多个事务之间,操作的可见性
- 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
事务其它有关的就以后再议吧!