mysql基础—查询

来源:互联网 发布:nginx添加ssl模块 编辑:程序博客网 时间:2024/06/05 06:59

Mysql基本操作—查询
1、基本查询
a、普通查询
select * from 表名称; 查询该表中的所有数据
b、列控制查询,即:查询指定列
select 列名称,列名称。。。 from 表名称;
c、去重复查询,关键字 distinct
select distinct 列名称 from 表名称;
d、使用运算符进行查询
注意:任何数据和null进行操作的时候,都会称为null,应该使用if null (列名称,期望值)
假设情况:当进行工资计算的时候,当需要计算工资和奖金的总和的时候,有的人不存在奖金表单中职位null
这个时候进行计算工资总和的时候,就要使用到if null (列名称,期望值)
select ename,sal + if null(comm,0) from emp;
select ename,sal + if null(comm,0) [as] salary from emp;
e、给结果集起别名
上面的sal + if null(comm,0)得到的结果是一个结果集,可以对这个结果集进行命名使用关键字as
select ename,sal + if null(comm,0) as salary from emp; 其中as可省略
f、字符拼接
select concat(‘我是一名员工,我叫:’,ename)[as aaa] from emp; 在这句话中concat实现了字符连接的操作
g、基本条件查询
select * from emp where xxx=aaa;
select * from emp where xxx betwwen a and b and xxx=bbb;
h、模糊查询
select * from emp where name like ‘张_’;
select * from emp where name like ‘张__’;
select * from emp where name like ‘__亮’;
select * from emp where name like ‘__‘;
select * from emp where name like ‘张%’;
select * from emp where name like ‘%张%’;
select * from emp where name like ‘%’;
2、排序查询
注释:关键字:order by
a、单列排序
select * from 表名称 order by 列名称 [asc\desc]; 方括号中表示可选择内容,不写的时候默认为asc
asc表示升序排列、desc表示降序排列
b、多列排序
select * from 表名称 order by 第一列 [asc\desc],第二列 [asc\desc];
当经过第一列的排序之后,存在某几个具有相同的值得时候,采用第二列的条件再排序
3、聚合函数查询
注释:聚合函数的运算时纵向的运算
a、count() count():表示所有列,计算有效行的数目,假如一行中所有列都为null,那么这行为无效记录
当括号中放入数字的时候,效果与*相同,表示所有列
count(xx):xx表示列名称,计算指定列的有效行数目,若在这一列中,某一行存在null,那这一行为无效行

  b、sum(列名称)  求某一列的和  c、max(列名称)  求某一列中的最大值  d、min(列名称)  求某一列中的最小值  e、avg(列名称)  求某一列的平均值

4、分组查询
注释:使用哪个条件进行分组,这个条件必须是组信息,当使用非组信息查询的时候,虽然语法上是正确的,但是不符合要求
分组一般和聚合函数一起使用

        select      要查询并显示的内容,  可以放 *, 列名称,聚合函数        from        想要查询的表          具体的表        where       分组前条件            不可放聚合函数        group by    分组信息              列名称        having      分组后条件            可以放聚合函数        order by    对最终结果的操作      可以放聚合函数

5、MySql的特有:limit
注释:对于limit只在MySql中才有,其他数据库中不存在,而且Oracle数据库中也不存在
a、limit语法结构:select * from 表名称 limit m,n;
查询5行记录,从0行开始
select * from 表名称 limit 0,3;
查询10行记录,从3行开始
select * from 表名称 limit 3,10;
注解:对于上面的语法limit后面跟着两个数字,第一个数字m:表示起始行,第二个数字n:表示要查询并显示的行数
b、拓展
问:查询工资最高的员工的信息,在emp表中
SELECT * FROM emp ORDER BY sal DESC LIMIT 0,1;
还可以使用子查询来操作
SELECT * FROM (SELECT * FROM emp ORDER BY sal DESC) e LIMIT 0,1;
c、分页显示
1、关于页数的计算
总页数=总记录条数%每页记录条数==0?总记录条数/每页记录条数:总记录条数/每页记录数+1;
2、假如查询某一页数据并显示
select * from 表名称 limit (要查询的页码-1)*每页记录数,每页记录条数;

原创粉丝点击