SELECT * FROM 表名;2).查詢指定列
SELECT 列名1[,列名2,列名2,...] FROM 表名;3).重復的記錄只出現一次
SELECT DISTINCT * | 列名1[,列名2,列名2,...] FROM 表名;4).列運算
Ⅰ.數據相同的列可以做加、減、乘、除運算
SELECT sale*1.5 FROM emp;SELECT sale+comm FROM emp;Ⅱ.字符串類型可以做連續運算
SELECT CONCAT('$',sal) FROM emp;Ⅲ.轉換NULL值
有時需要把NULL值轉換成其他值,例如comm+1000時,如果comm列存在NULL值,那么NULL+1000還是NULL,而我們希望把NULL當成0來運算.SELECT IFNULL(comm,0)+1000 FROM emp;Ⅳ.給列起別名(as在使用時可以省略)
SELECT IFNULL(comm,0)+1000 AS 獎金 FROM emp;2、條件控制
1).條件查詢
與UPDATE與DELETE語句一樣,SELECT語句也可以使用WHERE子句來控制記錄。SELECT empno,ename,sal,comm FROM emp WHERE sal>1000 AND comm IS NOT NULL;SELECT empno,ename,sal,comm FROM emp WHERE sal BETWEEN 20000 AND 30000;SELECT empno,ename,sal,comm FROM emp WHERE job IN ('經理','董事長');2).模糊查詢
當你想查詢姓張,并且姓名一共兩個字的員工時,這時就可以使用模糊查詢,模糊查詢使用運算符LIKE。Ⅰ._匹配一個任意的字符,注意只匹配一個字符而不是多個。
SELECT * FROM emp WHERE ename LIKE '張_';Ⅱ.%匹配0~N個任意字符,當查詢姓張,并且不管名字長度時可以使用。
SELECT * FROM emp WHERE ename LIKE '張%';Ⅲ.當查詢名字包含張字的員工時,可以使用以下語句
SELECT * FROM emp WHERE ename LIKE '%張%';Ⅳ.當模糊語句只有一個%時,此條件等同于不存在,但是姓名為NULL的查詢不出來。
SELECT * FROM emp WHERE ename LIKE '%';3、排序
使用ORDER BY進行排序。1).升序:使用關鍵詞ASC,并且可以省略,它是默認的
SELECT * FROM emp ORDER BY sal ASC;2).降序:使用關鍵詞DESC,不能省略
SELECT * FROM emp ORDER BY comm DESC;3).使用多列作為排序條件,按照書寫順序,在前的先排序,前面相同時,再按照后一條件進行排序,以此類推。
SELECT * FROM emp ORDER BY sal ASC,comm DESC;4、聚合函數
聚合函數用來做某列的縱向運算。1).COUNT:計算指定列不為NULL的記錄的行數。
SELECT COUNT(*) FROM emp;2).MAX:找出指定列最大的值
SELECT MAX(sale) FROM emp;3).MIN:找出指定列最小的值
SELECT MIN(sale) FROM emp;4).SUM:計算指定列的值的總和
SELECT SUM(sale) FROM emp;5).AVG:計算指定列的值的平均值
SELECT AVG(sale) FROM emp;5、分組查詢
分組查詢是把記錄使用某一列進行分組,然后查詢組信息。例如:查詢所有部門的記錄數。SELECT job,COUNT(*) FROM emp GROUP BY job; 查詢每種工作的最高工資。SELECT job,MAX(sale) FROM emp GROUP BY job;*組條件HAVING的加入:WHERE無法使用聚合函數,而如果沒有HAVING就無法進行相關的測試了。
例如:查詢所有部門人數大于100的部門SELECT job,COUNT(*) FROM emp GROUP BY job HAVING COUNT(*) > 100;6、LIMIT子句
LIMIT用于限制查詢結果的起始行,以及總行數。例如:查詢起始行為第五行,一共查詢三行記錄。SELECT * FROM emp LIMIT 4,3;
新聞熱點
疑難解答