[关闭]
@windyBaby 2017-05-04T09:24:30.000000Z 字数 1777 阅读 696

关系型数据库语言之SQL


脑图link

概念

              RDBMS vs NoSQL

RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键-值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性

数据字典
数据字典(英语:data dictionary)是一个自动的或手动的存储数据元的定义和属性的文档。 指一组对数据流程图中的数据流、数据文件、数据项及处理逻辑进行定义描述的表格。
数据字典示例


实例

例如有个博客的数据库
里面有个article博客文章的表

1.插入一条数据

  1. INSERT INTO article (`id`,`author`,`title`,`content`,`post_time`) VALUES (3,'watson','new book','123123','2017-05-04 13:10:51')

2.删除整表数据

  1. DELETE FROM article

3.更新整个表

  1. UPDATE class_table SET ID=4,name="haha",class=88,score=19

4.查询整个表的数据

  1. SELECT `name` FROM class_table

WHERE

1.字段=或>或<某个值

  1. WHERE id=5

2.不等于某个值 !=

  1. WHERE name!="xiaoming"

3.多个条件OR 或 AND

  1. WHERE name="mary" AND class="1"

ORDER BY

  1. ORDER BY `name` ASC,`class` DESC

GROUP BY

分组时会有常用的函数功能便于分组后的计算
1.COUNT(filed)计数

  1. SELECT name, COUNT(*) FROM user_table GROUP BY name;

2.SUM(field)总和

  1. SELECT name, SUM(score) FROM user_table GROUP BY class;

3.AVG(field)算平均数

  1. SELECT name, AVG(score) FROM user_table GROUP BY class;

LIMIT

1.LIMIT n

  1. LIMIT 5 //前5条数据

2.LIMIT n,m

  1. LIMIT 5,10 //第6至第15条数据

JOIN

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会合并两个表共同项

  1. 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 会保留左边表的所有数据,即使相对应的右表有空项

  1. 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 会保留右边表的所有数据,即使相对应的左表有空项

  1. 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的高可扩展性和高性能存储引擎

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注