@windyBaby
2017-05-04T09:24:30.000000Z
字数 1777
阅读 696
RDBMS vs NoSQLRDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键-值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
数据字典
数据字典(英语:data dictionary)是一个自动的或手动的存储数据元的定义和属性的文档。 指一组对数据流程图中的数据流、数据文件、数据项及处理逻辑进行定义描述的表格。
数据字典示例
例如有个博客的数据库
里面有个article博客文章的表
1.插入一条数据
INSERT INTO article (`id`,`author`,`title`,`content`,`post_time`) VALUES (3,'watson','new book','123123','2017-05-04 13:10:51')
2.删除整表数据
DELETE FROM article
3.更新整个表
UPDATE class_table SET ID=4,name="haha",class=88,score=19
4.查询整个表的数据
SELECT `name` FROM class_table
1.字段=或>或<某个值
WHERE id=5
2.不等于某个值 !=
WHERE name!="xiaoming"
3.多个条件OR 或 AND
WHERE name="mary" AND class="1"
ORDER BY `name` ASC,`class` DESC
分组时会有常用的函数功能便于分组后的计算
1.COUNT(filed)计数
SELECT name, COUNT(*) FROM user_table GROUP BY name;
2.SUM(field)总和
SELECT name, SUM(score) FROM user_table GROUP BY class;
3.AVG(field)算平均数
SELECT name, AVG(score) FROM user_table GROUP BY class;
1.LIMIT n
LIMIT 5 //前5条数据
2.LIMIT n,m
LIMIT 5,10 //第6至第15条数据
author表的 alias(别名)为a,为左表
| id | name | age |
|---|---|---|
| 1 | mary | 18 |
| 2 | john | 22 |
| 3 | james | 21 |
books表的 alias(别名)为b,为右表
| id | name | books |
|---|---|---|
| 1 | hank | book1 |
| 2 | mary | book2 |
| 3 | john | book3 |
1. 用JOIN会合并两个表共同项
SELECT * FROM author a JOIN books b ON a.name=b.name
结果:
| id | name | age | id(2) | name(2) | book |
|---|---|---|---|---|---|
| 1 | mary | 18 | 2 | mary | book2 |
| 2 | john | 22 | 3 | john | book3 |
2. LEFT JOIN 会保留左边表的所有数据,即使相对应的右表有空项
SELECT * FROM author a LEFT JOIN books b ON a.name=b.name
结果:
| id | name | age | id(2) | name(2) | book |
|---|---|---|---|---|---|
| 1 | mary | 18 | 2 | mary | book2 |
| 2 | john | 22 | 3 | john | book3 |
| 3 | james | 21 | [Null] | [Null] | [Null] |
3.RIGHT JOIN 会保留右边表的所有数据,即使相对应的左表有空项
SELECT * FROM author a RIGHT JOIN books b ON a.name=b.name
结果:
| id | name | age | id(2) | name(2) | book |
|---|---|---|---|---|---|
| 1 | mary | 18 | 2 | mary | book2 |
| 2 | john | 22 | 3 | john | book3 |
| [Null] | [Null] | [Null] | 1 | hank | book1 |
tips
unsigned 无符号(0及正整数)
primary key 主键
innoDB是MySQL的高可扩展性和高性能存储引擎