007—单表查询(重点)

#======================================

#平台:windows7        

#MYsql版本:mysql-5.5.62-winx64(安装版)

#MYsql工具:SQLyog - 64 bit、Navicat Premium 12

工具包地址:https://pan.baidu.com/s/17SOAmwcgOw9hYtTzDb9-Tw

#======================================

单表查询可以分为如下几种查询方式:

1. 简单数据查询

2. 条件数据查询

3. 排序数据查询

4. 限制数据查询数量

5. 统计函数和分组数据查询

 

一、简单数据查询

   语法:select 字段名 from 表名 [where 条件过滤]

示例:   select ename,age,sal from emp where ename == “tom”;

 

避免重复查询关键字:DISTINCT

语法:SELETCT DISTINCT 字段1,字段2 FROM table_name;

 

数学四则运算数据查询:(+加,-减,*乘法,/除,%取余)

语法:SELECT ename,sal*12 AS yearsal  FROM emp;

 

设置数据显示的格式:

MYSQL中通过CONCAT( )连接字符串。

语法:SELETCT CONCAT(eaname, ‘雇员的年薪为:’,sal*12) yearsalary FROM emp;

 

二、条件数据查询

 

单条件查询:SELETCT * FROM emp where JOB=clerk;

多条件查询:SELETCT * FROM emp where JOB=clerk&&sal>800;   //&&符号还可以用AND替代都表示与,||XOR都表示逻辑或。

 

范围内查询BETWEENANDSELECT  *  FROM emp WHERE sal BETWEEN 1000 AND 2000;

范围外查询(NOT BETWEENAND):SELECT  *  FROM emp WHERE sal NOT BETWEEN 1000 AND 2000;

 

空值查询:SELETCT * FROM emp WHERE sal IS NULL;

非空值查询:SELETCT * FROM emp WHERE sal IS NOT NULL;

 

集合内数据查询(IN):SELECT  * FROM emp WHERE empno IN (7521778275667788);

不在集合内数据查询(NOT IN):SELECT  * FROM emp WHERE empno NOT IN (7521778275667788);

 

模糊查询LIKESELECT * FROM emp WHERE ename LIKE A%;

查找不匹配NOT LIKESELECT * FROM emp WHERE ename NOT LIKE A%;

_”通配符,匹配单个字符;

%”通配符,匹配任意长度字符串;

 

 

三、排序数据查询

 

单字段排序查询ORDER BY ,默认排序是升序)

SELETC * FROM emp WHERE sal >1000 ORDER BY sal ASC   

SELETC * FROM emp WHERE sal >1000 ORDER BY sal DESC 

ASC升序,DESC降序)

【注意:MYSQL软件中,如果字段的值为NULL,则该值为最小值,因此在降序排列中将最后显示;升序排列中最先显示。】

 

多字段排序查询:

SELETC * FROM emp WHERE sal >1000 ORDER BY sal ASC, hiredate DESC;

 

 

四、限制数据查询数量

关键字:LIMIT

示例1SELECT * FROM emp WHERE sal > 1000 LIMIT 2;  //指定显示2条记录

 

示例2SELECT * FROM emp WHERE sal > 1000 LIMIT 0,5;  //指定从第一条记录开始, 显示5条记录。

 

 

五、统计函数和分组数据查询

 

统计函数:

Count(): 对结果进行计数。

 

Max(): 查询结果中的最大值

 

Min(): 查询结果中的最小值

 

Avg(): 查询结果的平均值

 

Sum(): 查询结果的和

 

区别:

COUNT():忽略NULL

COUNT(*):统计所有记录,包括NULL

 

Sum(): 查询结果的和:

SELECT SUMsalsumvalue FROM emp;    //查询emp表中所有员工的工资总和

 

 

分组查询:

 

关键字:GROUP BY 

基础查询:

示例1select emp_id, dep_id from employee group by dep_id;

 

多字段分组查询:

示例2select emp_id, dep_id from employee group by dep_id,hiredate;

 

GROUP BYHAVING一起使用:

-- having表示对分组进行条件筛选

select dep_id,group_concat(emp_name) from employee group by dep_id having count(emp_name)) > 2;

 

 

 


猜你喜欢

转载自blog.51cto.com/6854290/2328285
今日推荐