sql学习笔记

2020-07-14  本文已影响0人  茴香豆的茴字有几种写法

最近又迷上了sql、python,因为想做两个爬虫,爬点东西来玩玩。sql是一种操作数据库的语言,又分为DDL、DML两类,由于我只需要对数据库做查询操作,所以就只重点学了查询语言了。当然,数据库的DML语言除了查询,还有增加、删除、更改语言,不过相对于查询语言,使用频率、复杂程度都相对比较简单。

最简单的数据库查询语言:select * from table,这是查询表里所有的内容

如果想要查询一些字段,比如学生表里的姓名(name),学号(id)信息

select name, id from student

如果想查年龄大于18岁的学生的姓名,这个时候就要用到where这个关键字了:

select name from student where age>18 

where 可以后面跟条件,还有另外一个关键字后面也可以跟条件——having,但是这两者的区别在于having是用于分组查询之后,就是说如果分组之后还要筛选一遍,那就必须用having,如:查询班级中男女生大于18岁的各有多少人

select sex, count(*)as '人数' from student group by sex having age>18

分组之后要再想设置条件查询,那就必须得用having了,分组之前想要设置条件查询,必须用where

分组:关键词:group by ,分组相当于把一个表格按条件分成两个表格,分别对这两个表格进行操作,比如上面的把班级的学生按性别分成男生和女生两个表格,然后再找男生中大于18的有多少人;女生中大于18岁的有多少人。

还有聚合函数:sum 、count 、avg等等,这些函数都是将一系列数据进行计算,然后返回但一个一个值,这个比较简单。

其次比较麻烦的就是多表查询,表的链接,这是现实情况中遇到最多的情况。

常见表的链接一般只有两种,一种是左外连接,一种是内连接,基本上这两种情况占了绝大多数。

左外连接:A表 left  (out) join  B表 on 条件。左外连接的语法都比较简单,关键是找准用谁做A表,谁做B表,谁放在前,谁放在后结果是完全不一样的,这里不展开。

内连接:A表 (inner) join B表 on 条件,语法也比较简单,内连接就不用了考虑A表、B表谁在前谁在后了

嵌套查询: 所谓嵌套查询就是把一段SQL查询语语句插入到另外一段SQL查询语句里面去,这里要注意的是不要把逻辑搞错了,一嵌套就容易自己都看不懂代码了。

sql当然是不止这些内容了,暂时先写到这里了,接着干python,争取早点弄出点好玩的东西来

上一篇下一篇

猜你喜欢

热点阅读