20180314 mysql

学习内容:

表查询语句:

select 字段名 from 表名; //查询指定列

select 字段名 as 自定义字段名 from 表名; //查询时修改显示的列名 注意并未改变表结构

select  (字段名+字段名) as 自定义字段名 from 表名; //查询时合并列,加法运算,只能合并数值

select distinct 字段名 from 表名; //查询时去重

条件查询:

select 字段名 from 表名 where 字段名=值 and 字段名=值; //与运算查询

select 字段名 from 表名 where 字段名=值 or 字段名=值; //或运算查询

select 字段名 from 表名 where 字段名> < >= <= !=; //大于 小于 大于等于 小于等于 不等于查询

select 字段名 from 表名 where 字段名 between 值 and 值; //相当于 >= and <=查询

insert into 表名 values(); //空

insert into 表名 values(''); //空字符串

select 字段名 from 表名 where 字段名 is null; //判断是否为空

select 字段名 from 表名 where  字段名=''; //判断是否为空字符串

select 字段名 from 表名 where  字段名 like '字符%'; //查询指定字符开头的数据

select 字段名 from 表名 where  字段名 like '%字符%'; //查询是否含有指定字符

select 字段名 from 表名 where  字段名 like '字符_'; //查询是否以指定字符开头并且只有两个字符

PS 取反可用 not like

聚合查询:

select sum(字段名) as 自定义字段名 from 表名; //求总和并自定义显示名

select avg(字段名) as 自定义字段名 from 表名; //求平均数

select min(字段名) as 自定义字段名 from 表名; //求最小数

select max(字段名) as 自定义字段名 from 表名; //求最大数

select count(字段名) as 自定义字段名 from 表名; //计数 指定列的数据数量的最大值

select count(*) as 自定义字段名 from 表名; //表内所有列数据数量的最大值

select sum(字段名) as 自定义字段名 from 表名 where 字段名=(select sum(字段名) as 自定义字段名 from 表名) ; // 子查询

PS year(字段名)可以查询那一年,例如知道生日求年龄,则可以使用 year(now())-year(定义的生日字段)

分页查询:

第一行起始值为0

select  * from 表名 limit (当前页-1)*每页显示多少条,每页显示多少条;

例:

SELECT * FROM stu LIMIT 0,2;
SELECT * FROM stu LIMIT 2,2;
SELECT * FROM stu LIMIT 4,2;
SELECT * FROM stu LIMIT 6,2;
SELECT * FROM stu LIMIT 8,2;
SELECT * FROM stu LIMIT 10,2;

查询排序:

select * from 表名 order by 字段名 asc; //正序排序

select * from 表名 order by 字段名 desc; //反序排序

select * from 表名 order by 字段名 asc,字段名 desc; //多顺序排序 第一条件排序有重复时按照第二条件排序 默认的第二顺序是数据插入顺序

分组查询:

先分组再统计

group by 字段名 //分组

count(字段名) //统计

select 字段名,count(字段名) from 表名 group by 字段名;

分组查询后筛选

分组后用having 替代where来添加筛选条件

select 字段名,count(字段名) from 表名 where 判断条件 group by 字段名 having 判断条件;

select 字段名,count(字段名) from 表名 group by 字段名 having 判断条件;

原文地址:https://www.cnblogs.com/wangnatian/p/8582496.html