MySQL--基礎查詢


-- 1 基礎查詢

-- 1.1 查詢所有列

SELECT * FROM stu;

-- 1.2 在stu表中查詢指定列 sid, sname, age

SELECT sid, sname, age FROM stu;


-- 2 條件查詢

-- 2.2 查詢性別為女,并且年齡50的記錄

 SELECT * FROM stu WHERE gender='female' AND ge<50;

-- 2.3 查詢學號為1,或者姓名為王的記錄

SELECT * FROM stu WHERE sid ='1' OR sname='王';

-- 2.4 查詢學號為1,2,3的記錄

SELECT * FROM stu WHERE sid IN ('1','2','3');

-- 2.5 查詢學號不是1,2,3的記錄

SELECT * FROM tab_student WHERE s_number NOT IN ('1','2','3');

-- 2.6 查詢年齡為22的記錄

SELECT * FROM stu WHERE age IS 22;

-- 2.7 查詢年齡在20到24之間的學生記錄

SELECT * FROM stu WHERE age>=20 AND age<=24;

-- 或者

SELECT * FROM stu WHERE age BETWEEN 20 AND 24;

-- 或者

SELECT * FROM stu WHERE age(20,21,22,23,24);

-- 2.8 查詢性別非男的學生記錄

SELECT * FROM stuWHERE gender!='男';

-- 或者

SELECT * FROM stuWHERE gender<>'男';

-- 或者

SELECT * FROM stuWHERE NOT gender='男';

-- 或者

SELECT * FROM stuWHERE gender='女';

-- 2.9 查詢姓名不為null的學生記錄

SELECT * FROM stu WHERE NOT sname IS NULL;

-- 或者

SELECT * FROM stu WHERE sname IS NOT NULL;



-- 3 模糊查詢

-- 3.1 查詢姓名由5個字母構成的學生記錄

SELECT * FROM stu WHERE sname LIKE '_____';

-- 3.2 查詢姓名由5個字母構成,并且第5個字母為“i”的學生記錄

SELECT * FROM stu WHERE sname LIKE '____i';

-- 3.3 查詢姓名以“張”開頭的學生記錄

SELECT * FROM stu WHERE sname LIKE '張%';

-- 3.4 查詢姓名中第2個字母為“小”的學生記錄

SELECT * FROM stu WHERE sname LIKE '_小%';

-- 3.5 查詢姓名中包含“麗”字母的學生記錄

SELECT * FROM stu WHERE sname LIKE '%麗%';


-- 4 字段控制查詢

-- 4.1 去除重復記錄

SELECT DISTINCT sal FROM emp;

-- 4.2 查看雇員的月薪與傭金之和  

SELECT *,sal+comm FROM emp;

-- comm列有很多記錄的值為NULL,因為任何東西與NULL相加結果還是NULL,所以結算結果可能會出現NULL。下面使用了把NULL轉換成數值0的函數IFNULL:

SELECT *,sal+IFNULL(comm,0) FROM emp;

--- 4.3 給列名添加別名

-- 在上面查詢中出現列名為sal+IFNULL(comm,0),這很不美觀,現在我們給這一列給出一個別名,為total:

SELECT *, sal+IFNULL(comm,0) AS total FROM emp;

-- 給列起別名時,是可以省略AS關鍵字的:

SELECT *,sal+IFNULL(comm,0) total FROM emp;



-- 5 排序 ORDER BY

-- 5.1 查詢所有學生記錄,按年齡升序排序

SELECT * FROM stu ORDER BY sage ASC;

-- 或者

SELECT * FROM stu ORDER BY sage;

-- 5.2 查詢所有學生記錄,按年齡降序排序

SELECT * FROM stu ORDER BY age DESC;

-- 5.3 查詢所有雇員,按月薪降序排序,如果月薪相同時,按編號升序排序

SELECT * FROM empORDER BY sal DESC,empno ASC;


-- 6.1 COUNT

-- 查詢emp表中記錄數:

SELECT COUNT(*) AS cnt FROM emp;

-- 查詢emp表中有傭金的人數:

SELECT COUNT(comm) cnt FROM emp;

-- 查詢emp表中月薪大于2500的人數:

SELECT COUNT(*) FROM empWHERE sal > 2500;

-- 統計月薪與傭金之和大于2500元的人數:

SELECT COUNT(*) AS cnt FROM emp WHERE sal+IFNULL(comm,0) > 2500;

-- 查詢有傭金的人數,以及有領導的人數:

SELECT COUNT(comm), COUNT(mgr) FROM emp;

-- 6.2 SUM和AVG

-- 查詢所有雇員月薪和:

SELECT SUM(sal) FROM emp;

-- 查詢所有雇員月薪和,以及所有雇員傭金和:

SELECT SUM(sal), SUM(comm) FROM emp;

-- 查詢所有雇員月薪+傭金和:

SELECT SUM(sal+IFNULL(comm,0)) FROM emp;

-- 統計所有員工平均工資:

SELECT SUM(sal), COUNT(sal) FROM emp;

-- 或者

SELECT AVG(sal) FROM emp;

-- 6.3 MAX和MIN

-- 查詢最高工資和最低工資

SELECT MAX(sal), MIN(sal) FROM emp;



-- 7.1 分組查詢

-- 查詢每個部門的部門編號和每個部門的工資和:

SELECT deptno, SUM(sal) FROM emp GROUP BY deptno;

-- 查詢每個部門的部門編號以及每個部門的人數:

SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;

-- 查詢每個部門的部門編號以及每個部門工資大于1500的人數:

SELECT deptno,COUNT(*) FROM emp WHERE sal>1500 GROUP BY deptno;

-- 7.2 HAVING子句

-- 查詢工資總和大于9000的部門編號以及工資和:

SELECT deptno, SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal) > 9000;


-- 8.1 查詢5行記錄,起始行從0開始

SELECT * FROM emp LIMIT 0, 5;

-- 8.2 查詢10行記錄,起始行從3開始

SELECT * FROM emp LIMIT 3, 10;


8.3 分頁查詢 規則

(頁數-1)*行數=第二頁的第一個顯示行數。 ? 從幾行開始就寫幾。(前面是起始行數,后面是顯示行數)

8.3 分頁查詢?

查詢語句書寫順序:select – from- where- group by- having- order by-limit?

查詢語句執行順序:from - where -group by - having - select - order by-limit


完整的查詢順序

1:使用SHOW語句找出在服務器上當前存在什么數據庫:

mysql> SHOW DATABASES;

2:創建一個數據庫MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:選擇你所創建的數據庫

mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)

4:查看現在的數據庫中存在什么表

mysql> SHOW TABLES;

5:創建一個數據庫表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:顯示表的結構:

mysql> DESCRIBE MYTABLE;

7:往表中加入記錄

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:導入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:刪除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中數據

mysql>update MYTABLE set sex=”想要修改的內容” where name=’被修改的內容’;

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 筆記: 一、聚合函數:計數 最大值 最小值 平均數 求和 1.計數 COUNT() 忽略NULL值 方式1:COU...
    鳳之鳩閱讀 5,267評論 0 1
  • 數據庫概述: 數據庫(DataBase,DB):指長期保存在計算機的存儲設備上,按照一定規則組織起來,可以被各種用...
    字節碼閱讀 563評論 0 0
  • 約克起初為蓋爾人的居點,后為羅馬人、盎格魯人、丹麥人和諾曼人占領,在將近2000年的時間里,約克一直是北英格蘭的首...
    藹陽閱讀 633評論 10 6
  • 伴著和曛的春光,我走進寶貝 幼兒園。我十六號入職,至今天也有八天了,在這幾天我體驗了和孩子在一起的快樂,和做幼教的...
    劉秀娟A閱讀 175評論 0 0