(六)MySql基础之表查询

来源:互联网 发布:unity3d minecraft 编辑:程序博客网 时间:2024/06/09 18:35

表记录(行)查询

去重(复)查询

select distinct 字段名 from 表名 [where 条件]

四则运算数据查询

+、-、*、/
对满足条件的字段值进行加减乘除,同时也可为其四则运算后的字段名进行重命名 通过”AS”关键字或者省略AS关键字有空格隔开也行。

select 字段名1+12 新字段名,字段名2*12 As 新字段名... from  表名 [wehere 条件]

设置字段显示格式查询

CONCAT关键字:用于连接字符串和字段值

select contcat(dname,'年薪为:',sal*12) yearsalary from 表名 [where 条件]

条件查询

  1. 带关系运算符(>、<、=、<=、>=、!=)和逻辑运算符(&&(与)、||(或)、异或、!(非))的查询
    如:
    select 字段名 from 表名 where 字段名>10&&字段!=15;

2.带between and(用于判断字段数字是否在指定范围)关键字的条件查询

select 字段 from 表名 where 字段 between 值 and 值

3.带IS NULL关键字的空值查询
判断查询条件的字段是否为空值(null)

select 字段 from 表名 where 字段 is null

4.带IS NOT NULL关键字

5.不在集合中查询(NOT IN)

select 字段 from 表名 where 字段 not in(值1,值2,...)

注意:集合中有NULL值,将没有任何查询结果
6.在集合中查询
select 字段 from 表名 where 字段 not in(值1,值2,…)
注意:集合中如果有NULL值,对查询结果没有影响

模糊查询(Like)

select 字段 from 表名 where 字段 like 值(_A%(第二个字符为A的字符串)、A%(以A开头的任意字符串)等等)

value:表示所匹配的字符串值(可以是一个完整的字符串,也可以是包含通配符)

“_”:匹配单个字符
“%”:匹配任意长度字符串,即0个字符,1个字符…

排序查询(order by)

select 字段 from 表名 where 条件 order by 字段 Asc/desc,字段 ASC/DESC

注意:如果字段值为NULL,该值为最小值,降序排在最后

限制(查询)记录数量

select 字段 from 表名 where 条件 limit 起始偏移量,显示的行数

注意:

  1. 如果不指定初始偏移量,默认为0,即从1条记录开始
  2. 指定初始偏移量,通常用于分页

Limit经常与order by一起使用

统计函数查询

注意:所有函数诸如function(字段)形式都会忽略值为Null的行数,不会忽略值为0.0的行数。

  • Count()函数:统计表中记录条数

形式 :

  1. Count(*):对表中记录条数进行统计,不管字段是否为nuLL还是不为NUll
  2. Count(字段):对指定字段的行数进行统计,会忽略统计字段值为NUll的行数,但是不会忽略值为0.0的情况

    select count(字段)[AS 统计字段别名]from 表名 [where 条件]

    • Sum()函数:统计字段值的和
    • avg():
    • max():
    • min():

分组查询

对查询结果,按指定字段分组,随机显示每组的一条记录。单独使用分组查询,没什么实际意义。

  • 单字段分组

    select 字段 from 表命 where 条件 group by 字段

如果想显示每分组中的字段值,可以使用Group_councat关键字

select group_concat(字段) AS 别名 where 条件 group by 字段
  • 多字段分组

“`

select 字段 from 表名 where 条件 group by 字段1,字段2...` 

Having子句限定分组

需要明确的一点是where子句是对记录数量进行条件限制的,having子句对分组进行条件限制

如:对按部分分组,统计平均工资大于2000的部门
select deptno,avg(salary) avgSalary from t_dept group by deptno having avg(salary)>2000;

原创粉丝点击