python17、MySQL(二)

筛选条件:
比较运算符:
where+字段+is null或is not null查看是否空的字段

排序:
SELECT columns FROM tb_name ORDER BY col [asc/desc]
其中columns 为字段栏,可以是*,,col为指定的字段可以换成其他的,不输入排序方式时[asc/desc],会默认执行正序

desc命令用于获取数据表结构。

desc命令格式:
desc 表名,, 用desc方式查看文件

限制:
SELECT columns FROM tb_name LIMIT start, count ;
start, count用数字代表:
SELECT columns FROM tb_name LIMIT 3, 4 ;
这里表示从第3条开始往后显示4条数据,只写一个参数不是两个的时候,是只显示多少条

去重:
SELECT DISTINCT FROM tb_name;
去掉完全重复的数据

模糊查询:
SELECT * FROM tb_name where + 字段+like+‘%’;全部模糊查询
SELECT * FROM tb_name where + 字段+like+‘zh%’;开头带有zh的模糊查询
%是任意多个字符或任意0个,是任意一个字符(用来寻找不清楚字符但知道个数的,个数必须知道返回多少的任意字符看有多少给

范围查询:
间隔返回: IN,位置分散
连续范围: BETWEEN a AND b ,
a <= value <= b范围在一块

聚合和分组:
聚合函数:
在SELECT * FROM tb_name的前加的函数并用括号括起字段名
分组函数(往往和聚合函数连起来使用):
Select 字段 from 表 group by 字段;(这里把字段值相同的分为一组)
Select count(
/字段) from 表 group by 字段,(这里把字段值相同的分为一组,并且显示个数,null为0)
Select 字段+count(/字段(这里的字段不能和by后面的一样)) from 表 group by 字段;select可以加多个字段,用来对多个字段分组,count只是作统计的可要可不要
count后面加字段出现null是空的所以返回0个数,
后面加
表示从所有字段值作参考再选择class作为个数依据去统计个数,此时null左右两边的其他字段不为null就可以不为0
只能够出现分组字段和聚合字段,其他字段会报错,这里的前后字段要相同

聚合筛选:
Select 字段1 from 表名 group by 字段1,字段2 having 字段2>=80;
加having条件表达式,可以对输出的结果做出限制
having(对聚合出来的数据进行筛选,where是在筛选前就已经执行了,where在这放在group前面,having放group up后)在聚合筛选才能用
having对输出进行筛选,where一开始就已经对整张表筛选了

子查询:
select * from students where age > (select avg(age) from students);
查询嵌套查询,一句顶两句

查询出的把多个表连成的多条的一个数据
内连接:
有条件:inner join 。。。on。。。
在无条件后面加 on 第一张表名.字段 = 第二张表名.字段
显示出所写字段相同的字段值

无条件(所有组合类型都显示出来):inner join
第一张表中的每一项会和另一张表的每一项依次组合
select * from 表名 [inner] join 表名;
把第一张表塞到指定表名中去

外连接:
左外连接:
对两张表做连接的时候,在连接条件不匹配的时候
留下左表中的数据,而左表中的数据以NULL填充
select * from 表名 left join 表名 on 表名.字段= 表名.字段;
on后面的顺序不影响效果

右外连接:
对两张表做连接的时候,在连接条件不匹配的时候
留下右表中的数据,而左表中的数据以NULL填充

猜你喜欢

转载自blog.csdn.net/qwe863226687/article/details/113969314