MySQL自增列及簡單查詢(練習)


AUTO_INCREMENT: 自動增長假如一個列聲明了自增列無需手動賦值,直接賦值為NULL,會獲取最大值,然后加1插入

  注意: 只適用於整數型的主鍵列上,允許手動賦值

簡單查詢

 (1)查詢特定的列

  示例: 查詢所有員工的姓名、工資

  SELECT ename,salary FROM emp;

  練習: 查詢所有員工的編號,姓名,性別,生日

  SELECT eid,ename,sex,birthday FROM emp;

 

 (2)查詢所有的列

  SELECT * FROM emp;

  SELECT eid,ename,sex,birthday,salary,deptId FROM emp;

 

 (3)給列起別名

  示例: 查詢所有的員工姓名和工資,使用漢字別名

  SELECT ename AS 姓名,salary AS 工資 FROM emp;

  練習: 查詢所有員工的編號,姓名,工資,生日,使用漢字別名

  SELECT eid AS 編號,ename AS 姓名,salary 工資,birthday 生日 FROM emp;

  練習: 查詢所有員工的編號和姓名,使用1個字母作為別名

  SELECT eid a,ename b FROM emp;

 

 (4)顯示不同的記錄/合並相同的記錄

  示例: 查詢出員工都分布在哪些部門

  SELECT DISTINCT deptId FROM emp;

  練習: 查詢出都有哪些性別的員工

  SELECT DISTINCT sex FROM emp;

 

 (5)查詢時執行計算

  示例: 計算2+5*3+7/2-9

  SELECT 2+5*3+7/2-9;

  練習: 查詢出所有員工的姓名及其年薪

  SELECT ename,salary*12 FROM emp;

  練習: 假設每個員工的工資增加500,年終獎為5000,查詢出所有員工的姓名及其年薪,給列使用漢字別名

  SELECT ename 姓名, (salary+500)*12+5000 年薪 FROM emp;

 

 (6)查詢結果集排序

  示例: 查詢所有的部門,結果集按照編號從小到大排序

  SELECT * FROM dept ORDER BY did ASC; #ascendant

  示例: 查詢所有的部門,結果集按照編號從大到小排序

  SELECT * FROM dept ORDER BY did DESC;

#descendant

  練習: 查詢所有的員工,結果集按照工資從高到低排列

  SELECT * FROM emp ORDER BY salary DESC;

  練習: 查詢所有的員工,結果集按照年齡從小到大排列

  SELECT * FROM emp ORDER BY birthday DESC;

  練習: 查詢所有的員工,結果集按照姓名的升序排列

  SELECT * FROM emp ORDER BY ename;

  練習: 查詢所有的員工,結果集按照工資降序排列,如果工資相同,按照姓名排列

  SELECT * FROM emp ORDER BY salary DESC,ename;

  練習: 查詢所有的員工,結果集按照性別排序,如果性別相同按照生日降序排列

  SELECT * FROM emp ORDER BY sex,birthday DESC;

ORDER BY 可以按照數值、字符串、日期時間來排序

默認是ASC升序排列

 

(7)條件查詢

  示例: 查詢出編號為5的員工

  SELECT * FROM emp WHERE eid=5;

  練習: 查詢出姓名為king的員工的編號,姓名,工資

  SELECT eid,ename,salary FROM emp WHERE ename='king';

  練習: 查詢出20號部門下的員工有哪些

  SELECT * FROM emp WHERE deptId=20;

  練習: 查詢出所有的女員工

  SELECT * FROM emp WHERE sex=0;

  練習: 查詢出工資在5000以上的員工有哪些

  SELECT * FROM emp WHERE salary>5000;

比較運算符: >  <  >=  <=  =  !=(不等於)

  練習: 查詢出1991-1-1前出生的員工有哪些

  SELECT * FROM emp WHERE birthday<'1991-1-1';

  練習查詢出不在20部門的員工有哪些

  SELECT * FROM emp WHERE deptId!=20;

  練習: 查詢出沒有明確部門的員工有哪些

  SELECT * FROM emp WHERE deptId IS NULL;

  練習: 查詢出有明確部門的員工有哪些

  SELECT * FROM emp WHERE deptId IS NOT NULL;

  練習: 查詢出工資在5000~7000之間的員工有哪些

  SELECT * FROM emp WHERE salary>=5000 AND salary<=7000;

  SELECT * FROM emp WHERE salary BETWEEN 5000 AND 7000;

  練習: 查詢出工資在5000以下和7000以上的員工有哪些

  SELECT * FROM emp WHERE salary<5000 OR salary>7000;

  SELECT * FROM emp WHERE salary NOT BETWEEN 5000 AND 7000;

  練習: 查詢出1990年之前和1993年之后出生的員工有哪些

  SELECT * FROM emp WHERE birthday<'1990-1-1' OR birthday>'1993-12-31';

  SELECT * FROM emp WHERE birthday NOT BETWEEN '1990-1-1' AND '1993-12-31';

  練習: 查詢出1993年出生的員工有哪些

  SELECT * FROM emp WHERE birthday>='1993-1-1' AND birthday<='1993-12-31';

  SELECT * FROM emp WHERE birthday BETWEEN '1993-1-1' AND '1993-12-31';

  練習: 查詢出1994年后出生的男員工有哪些

  SELECT * FROM emp WHERE birthday>'1994-12-31' AND sex=1;

  練習: 查詢出20號部門和30號的員工有哪些

  SELECT * FROM emp WHERE deptId=20 OR deptId=30;

  SELECT * FROM emp WHERE deptId IN(20,30);

  練習: 查詢出不在20號部門和30號部門的員工有哪些

  SELECT * FROM emp WHERE deptId NOT IN(20,30);

 

 (8)模糊條件查詢

  示例: 查詢姓名中含有字母e的員工有哪些

  SELECT * FROM emp WHERE ename LIKE '%e%';

  練習: 查詢出姓名中以e結尾的員工有哪些

  SELECT * FROM emp WHERE ename LIKE '%e';

  練習: 查詢出姓名中倒數第2個字符為e的員工有哪些

  SELECT * FROM emp WHERE ename LIKE '%e_';

%  可以匹配任意多個字符   >=0

_   可以匹配任意1個字符   =1

以上兩個匹配符必須結合着LIKE使用

 

(9)分頁查詢

  查詢的結果集中有太多的數據,一次顯示不完,可以分頁顯示

  需要有兩個已知條件: 當前的頁碼、每頁的數據量

  SELECT * FROM emp LIMIT start,count;

  start: 從哪一條數據開始查詢

 start = (當前的頁碼-1)*每頁的數據量

  count: 每頁的數據量  

假設每頁顯示5條數據

  1頁: SELECT * FROM emp LIMIT 0,5;

  2頁: SELECT * FROM emp LIMIT 5,5;

  3頁: SELECT * FROM emp LIMIT 10,5;

假設每頁顯示7條數據

  1頁: SELECT * FROM emp LIMIT 0,7;

  2頁: SELECT * FROM emp LIMIT 7,7;

  3頁: SELECT * FROM emp LIMIT 14,7;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM