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;

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章