数据库
本文最后更新于:2021年4月8日 下午
数据库
关系型数据库 RDBMS
可以理解为Excel
里面都是表,只是用程序代码来操作表格里的数据
- CS模型(client/server)
MiaraDB
PostgreSQL
Office Access
SQLServer
OceanDB
Oracle
MySQL - 非CS模型
SQLite 10亿行,4T
sqlite把数据存在一个文件里,通过sqlite提供的相关函数去读取
非关系型数据库
- 文档型数据库(MongoDB, PunchDB)
JOSN {name: 'z', age: 18, foo: 8}, {name: 'a', age: 28}
- 缓存型数据库,KV数据库,Key, Value
Redis
redis.get(‘xxx’)
redis.push(‘yyy’, ‘333’) - 日志型数据库
语句
- select 表头关键字(展示哪几列)
aaa * 10 as bbb
,xxx是新建列的名称;若有空格,用’’包起来;关键字distinct,不重复 - from 文件夹
- where 筛选条件
- 运算符
- and or not
- in
state = 'VA' or state = 'GA' or state = 'FL'
和state in ('VA', 'FL', 'GA')
等价 - between
points >= 1000 and points <= 300
和points between 1000 and 3000
等价 - like
last_name like '%y'
筛选姓最后一个字母是y的人
% 任意字符数 _ 单字符 - regexp 正则表达式详情见这里
1
2
3
4
5^ 开头
$ 结尾
| 逻辑或
[abc] abc其中一个或多个
[a-f] a-f中一个或多个 - is null 为空的单元格
- ordered by 排序关键字
在关系型数据库中,每个表格都有一个主键列,这一列中的值能够唯一识别表里的记录
关键字desc 降序排列 - limit
limit 10
只展示前10项limit 6,3
略过前6项,展示3项
连接
内连接join
1 |
|
外连接left join/right join
1 |
|
natural join
cross join
union 合并多个查询的结果
1 |
|
行
1 |
|
函数
- 基本函数
max() min() avg() sum() count()
- group by 分组
- having
- case
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16-- 简单case函数
case gender
when '1' then 'f'
when '2' then 'm'
else 'NaN' end
-- case搜索函数
case when gender = '1' then 'f'
when gender = '2' then 'm'
else 'NaN' end
-- case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略
--下面这段sql,无法得到“第二类”这个结果
case when col_1 in ('a','b') then '第一类'
when col_1 in ('a') then '第二类'
else '其他' end
web前端学习笔记12——数据库
http://example.com/posts/b1456509.html