MySQL學習筆記3SELECT 語句

#SELECT語句
CREATE TABLE tb_DEPT
(
 DEPTNO INT PRIMARY KEY , #部門編號
 DNAME VARCHAR(14), #部門名稱
 LOC VARCHAR(13) #地址
);


#查找 字段,字段 從表
SELECT deptno,dname,loc FROM tb_dept;
SELECT * FROM tb_dept #*表示所有的列
SELECT dname FROM tb_dept #查詢單個列


#算術表達式
SELECT Ename, sal,sal*12
FROM tb_dept;
乘法和除法的優先級高於加法和減法
並且能通過括號改變其優先級
SELECT Ename, sal,sal*(12+10)
FROM tb_dept;


#NULL和0還有空字符串不是一個概念
SELECT *FROM tb_dept;
SELECT *FROM tb_dept where comm = 0;
SELECT *FROM tb_dept where comm is NULL;


改變列的標題頭
用於表示計算結果的含義
作爲列的別名
如果別名中使用特殊字符或者是強制大小寫敏感,或有空格時,都可以通過爲別名添加雙引號實現
SELECT ename '姓名',sal'薪水'
FROM tb_emp;
SELECT ename ,sal*12 (AS) '年薪'
FROM tb_emp;
AS可以不加


缺省情況下查詢顯示所有的行,包括重複行
SELECT deptno
FROM tb_emp;
使用DISTINCT關鍵字可從查詢結果中清除重複行
SELECT DISTINCT deptno
FROM tb_emp;
DISTINCT的作用範圍是後面所有字段的組合
SELECT DISTINCT deptno,job
FROM tb_emp
WHERE deptno=20;


使用WHERE子句限定返回的記錄
SELECT * 
FROM tb_emp
WHERE deptno=10;


字符串和日期要用單引號括起來
SELECT *
FROM tb_emp
WHERE ename = 'king';
比較運算符:>,<,<=,>=,=,<>(不等於)
SELECT ename,sal,comm
FROM tb_emp
WHERE sal <=1500;


SELECT ename,sal,comm
FROM tb_emp
WHERE sal >=1500 AND sal <=3000;
使用BETWEEN 運算符顯示某一值域範圍的記錄
包含最大值和最小值
SELECT ename,sal,comm
FROM tb_emp
WHERE sal BETWEEN 1500 AND 3000;


使用IN 運算符獲得匹配列表值的記錄
SELECT empno,ename,sal,mgr
FROM tb_emp
WHERE mgr IN(7902,7566,7788);


SELECT empno,ename,sal,mgr
FROM tb_emp
WHERE mgr NOT IN(7902,7566,7788);


使用LIKE運算符執行模糊查詢
查詢條件可包含文字字符或數字
(%)可表示零或多個字符
(_)可表示一個字符
SELECT ename
FROM tb_emp
WHERE ename LIKE '_密%';


SELECT ename
FROM tb_emp
WHERE ename LIKE '__克%';


SELECT ename
FROM tb_emp
WHERE ename LIKE '克%';


使用IS NULL運算符
SELECT ename,mgr
FROM tb_emp
WHERE mgr IS NULL;
SELECT ename,mgr
FROM tb_emp
WHERE mgr IS NOT NULL;


使用邏輯運算符
AND,OR,NOT
SELECT empno,ename,job,sal
FROM tb_emp
WHERE sal<=1100
AND job='文員';


SELECT empno,ename,job,sal
FROM tb_emp
WHERE sal<=1100
OR job='文員';


NOT取反的意思
SELECT ename,job
FROM tb_emp
WHERE job NOT IN('文員','經理','分析師');


優先級:job等於市場銷售的全部查出來,或者滿足後兩個條件的數據
SELECT ename,job,sal
FROM tb_emp
WHERE job='市場銷售'
OR job='董事長'
AND sal>1500;


通過括號限制優先級別
SELECT ename,job,sal
FROM tb_emp
WHERE (job='市場銷售'
OR job='董事長')
AND sal>1500;


對結果集排序
order by 排序 按照薪水從高到低排序descend
SELECT * 
FROM tb_emp
ORDER BY sal DESC;


order by 排序 默認 按照薪水從低到高排序ascend
SELECT * 
FROM tb_emp
ORDER BY sal;


SELECT * 
FROM tb_emp
ORDER BY sal ASC;
發佈了28 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章