初学MySQL基础知识笔记--02

  博客地址:http://www.cnblogs.com/yudanqu/

  查询部分

 

  1> 查询数据中所有数据:select * from 表名
  2> 查询数据中某项的数据:eg:select id,name from students;
  3> 消除重复行:eg:select distinct gender from students;
    (指删除gender中重复的所在行)
  *注:eg:select distinct id,gender from students;

    则需要两行都重复才不显示,例如id均不同,则全部显示。

  Select * from 表名 where 条件

  • 比较运算符:等于=,大于>,大于等于>=,小于<,小于等于<=,不等于!=或<>
  • 逻辑运算符:and,or,not
  • 模糊查询:like,%表示任意多个任意字符,_表示任意一个字符
  • 范围查询:in表示在一个不连续的范围内查询,范围放在in()括号里面

  eg:Between min and max表示在最小和最大之间的范围

(当一句中有多个and,那么离between最近的and是和他一起的,剩下的才是逻辑与)

  • 空判断:null与‘’:null为空,不占内存,判空为is null。‘’是指空字符串,要指向空间。
  • 优先级:由高到低:小括号,not,比较运算符,逻辑运算符。

  and比or先运算如果同时出现并希望先算or,要加上小括号。

  聚合(5个聚合函数)

  • count(*):计算总行数,括号中写*和列名结果是相同的

  eg:select count(*) from students;//查询学生人数

  • max(列):表示求此列的最大值

  eg:select max(id) from students;//查询编号最大值

  • min(列):表示求此列的最小值

  • sum(列):求和,此时要求数据类型

  • avg(列):求此列的平均值

  借助聚合得到查询具体内容(子查询):
  eg:select * from students where id=(select min(id) from students where isDelete=0);

  分组

  语法:select 列名 from 表名 group by 列名
  eg:select gender,count(*) from students group by gender;
  //根据性别分组表示出分别有多少人

  分组后的数据筛选

  Where and having:where是对原始集进行筛选,而having是对结果集分组后进行筛选。
  语法:select 列1,列2,聚合… from 表名 group by 列1,列2,列3… having 列1,…聚合…
  eg:select gender,count(*) from students group by gender having gender=0;
     select gender,count(*)as rs from students group by gender having rs>2;(rs是对count(*)起的别名)

  排序

  Order by 列1 asc|desc 列2 asc|desc
  (列后面不写则默认从小到大排列)
  1. asc升序,小到大
  2. desc降序,由大到小
  (有多个列,若前面的列同样大,则继续比较后面的列)

  分页

  语法:select * from 表名
     limit start,count
    (从start开始,获取count条数据)

  做分页:limit n*m,m

 

  博客地址:http://www.cnblogs.com/yudanqu/

   转载请注明来源

 

posted @ 2018-03-31 18:28  小田学Python  阅读(1758)  评论(0编辑  收藏  举报