实用的mysql查询小结:

  1. 查询指定列并且结果不出现重复数据,语句句如下:select distinct 字段名,… from 表名;
  2. 能够使⽤用聚合函数
    count(*) 统计数量量
    sum(列列名) 求和
    max(列列名) 求最⼤大值
    min(列列名) 求最⼩小值
    avg(列列名) 求平均值
    3、能够使⽤用SQL语句句进⾏行行分组查询:group by 字段名 having 条件;重点:分组后面用having;having后面跟的条件必须是有select 后面跟的相关字段。having语句句是用于分组后的过滤,having语句后面可以跟聚合函数where语句是用于对行的过滤,where语句后面不能跟聚合函数
    4、比较运算符:> 大于 < 小于 <= 小于等于 >= 大于等于 = 等于 <> 、 != 不等于
    5、in关键字(尽量不要用select * :影响查询速度,尽量查询自己想要的字段显示):
    # 查询id是1或3或5的学⽣生
    select * from student where id in (1,3,5);

查询id不不是1或3或5的学生

select * from student where id not in (1,3,5);
6、BETWEEN 值1 AND 值2 表示从值1到值2范围,包头⼜又包尾 ⽐比如: age BETWEEN 80 AND 100 等价于:age>=80 && age<=100
7、排序:
ASC: 升序,默认值
DESC: 降序
order by convert(字段名 using gbk) asc 按拼⾳音升序排序。convert是⼀一个转换函数,因为指定了了数据库的字符集是utf-8编码,默认是按汉字在utf-8中编码进⾏行行排序。将这⼀一列列临时转换成GBK编码,不不会影响数据库编码。
***组合排序就是先按第一个字段进行排序,如果第⼀个字段相同,才按第⼆二个字段进⾏排序,

查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩降序排序

select * from student order by age desc,math;
8、三大范式:
1要保证每⼀一列列的原⼦子性,每⼀一列列是不不可再分割的
2第二范式(2NF)要求在第一范式的基础上数据库表中的每个实例或记录必须可以被唯一地区分,表中的每一个字段都依赖于主键
3第三范式:从表的外键必须使⽤用主表的主键

猜你喜欢

转载自blog.csdn.net/weixin_44581342/article/details/86558077