什么是数据库(database)?
能存放数据的地方就是数据库.
什么是数据库管理系统(DBMS)?
管理数据库的软件,例如MySQL, SQL Server等.
数据库的分类
- 关系型数据库(SQL)
- MySQL
- Oracle
- SQL Server
- PostgreSQL
- 非关系式数据库(NoSQL)
什么是SQL(Structured Query Language)?
一种用于管理关系型数据库的语言.
想要与MogoDB进行交互, 需要使用MogoDB的查询语言, 而不能使用SQL.
SQL的基本语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| CREATE DATABASE 数据库名;
USE 数据库名;
create table 表名 (
列名 数据类型,
列名 数据类型,
列名 数据类型,
...
);
insert into 表名 (列名, 列名, 列名,...) values (值, 值, 值,...);
select 列名, 列名, 列名,... from 表名;
update 表名 set 列名=新值 where 条件;
delete from 表名 where 条件;
drop table 表名;
drop database 数据库名;
|
数据类型
1
2
3
4
5
6
| INT -- 整数
DECIMAL(m, n) -- 实数, m为总位数, n为小数位数
VARCHAR(n) -- 字符串, 最大长度为n
BLOB -- (Binary Large Object)二进制大对象(图片, 音频, 视频等)
DATE -- 日期(YYYY-MM-DD 2025-04-26)
TIMESTAMP -- 时间戳(YYYY-MM-DD HH:MM:SS 2025-04-26 20:07:00)
|
约束
1
2
3
4
5
6
| NOT NULL -- 非空约束
UNIQUE -- 唯一约束
PRIMARY KEY -- 主键约束
FOREIGN KEY -- 外键约束
CHECK -- 检查约束
DEFAULT -- 默认约束
|
修改,删除资料
1
2
3
4
5
6
7
| UPDATE 表名 SET 列名=新值 WHERE 条件;
DELETE FROM 表名 WHERE 条件;
DROP TABLE 表名;
DROP DATABASE 数据库名;
|
SQL查询语句
合并
UNION (上下)合并多个结果集
1
2
3
| select 列名 from 表名1
UNION
select 列名 from 表名2;
|
JOIN 连接
1
2
3
4
5
6
7
8
| select 列名 from 表名1
JOIN 表名2 ON 表名1.列名 = 表名2.列名;
select 列名 from 表名1
LEFT JOIN 表名2 ON 表名1.列名 = 表名2.列名;
select 列名 from 表名1
RIGHT JOIN 表名2 ON 表名1.列名 = 表名2.列名;
|
子查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| select 列名
from 表名1
where 列名 in (
select 列名
from 表名2
);
select 列名
from 表名1
where 列名 = (
select 列名
from 表名2
where 条件
);
|
on delete
1
2
3
4
5
| foreign key (列名) references 表名 (列名)
ON DELETE NO ACTION -- 删除主表数据时, 不做任何操作
ON DELETE RESTRICT -- 删除主表数据时, 不允许删除从表数据
ON DELETE CASCADE -- 删除主表数据时, 同时删除从表数据
ON DELETE SET NULL -- 删除主表数据时, 将从表数据设置为NULL
|