1. 程式人生 > >SQL中的SELECT 簡單查詢語句總結

SQL中的SELECT 簡單查詢語句總結

clas 識別 結果集 -i ear get int 一個 lec

--scott用戶不能使用,使用system登錄
--修改用戶scott賬戶解鎖
ALTER USER SCOTT ACCOUNT UNLOCK;
--重新設置密碼identified被識別的
alter user scott identified by tiger;

--選擇 所有字段 scott用戶部門表
SELECT * FROM scott.dept;
--員工表
SELECT * FROM scott.emp;

--SELECT{*, column [alias],...}FROM table;
SELECT empno,ename,sal FROM scott.emp;

--SELECT語句中的算術表達式
SELECT empno,ename,sal,sal * 12 FROM scott.emp;

--運算符的優先級
SELECT empno,ename,sal,sal * 12 + 100 FROM scott.emp;
SELECT empno,ename,sal,sal * (12 + 100) FROM scott.emp;

--字符串的連接操作符 \\(相當於java的++)
--把兩個字段的數據使用_連接起來
SELECT empno ||‘_‘|| ename FROM scott.emp;

/**
重點:NULL 空值
空值是指不可用,未分配的值
空值不等於零或空格
任意類型都可以支持空值
包括空值的任何算術表達式都等於空
*/
--查詢scott用戶的emp表的所有列
SELECT * FROM scott.emp;
--查詢scott用戶的emp表的所有列,條件為comm等於0
SELECT * FROM scott.emp WHERE comm = 0;
--查詢scott用戶的emp表的所有列,條件為comm等於空字符串
SELECT * FROM scott.emp WHERE comm = ‘‘;
--查詢scott用戶的emp表的所有列,條件為comm等於空
SELECT * FROM scott.emp WHERE comm = NULL;
SELECT * FROM scott.emp WHERE comm IS NULL;
SELECT * FROM scott.emp WHERE comm IS NOT NULL;
SELECT empno,ename,sal,comm,(sal + comm,sal) * 12 FROM scott.emp;

--nvl函數(Java的方法,傳參數進去返回結果)
--nvl(第一個參數,第二個參數),如果第一個參數為null,則取第二個參數
SELECT empno,ename,sal,comm,NVL(sal + comm,sal) * 12 FROM scott.emp;

--定義字段的別名,註意,別名不支持使用單引號
SELECT empno,ename,sal,sal * 12 AS yearsal FROM scott.emp;
SELECT empno,ename,sal,sal * 12 yearsal FROM scott.emp;
SELECT empno,ename,sal,sal * 12 AS "yearsal" FROM scott.emp;
SELECT empno,ename,sal,sal * 12 "yearsal" FROM scott.emp;
--查詢規定:empno叫做columnName列名,eID叫做columnLable列標簽(自己定義的別名)
SELECT empno AS eID,ename,sal,sal * 12 AS yearsal FROM scott.emp;
--JDBC中 getInt(String columnLable) 如果有別名則是別名,如果沒有別名則columnLable就是別名

--DISTINCT關鍵字明顯的有區別的
--缺省情況下查詢顯示所有行,包括重復行
SELECT deptno FROM scott.emp;
--DISTINCT關鍵字去除重復數據
SELECT DISTINCT deptno FROM scott.emp;
--DISTINCT的作用範圍是後面所有字段的組合
SELECT DISTINCT deptno,ename FROM scott.emp;
SELECT * FROM scott.emp;
SELECT DISTINCT deptno,job FROM scott.emp;
--為什麽DISTINCT的作用範圍是後面所有字段的組合
SELECT DISTINCT deptno,ename FROM scott.emp WHERE deptno = 30;
--DISTINCT deptno之後比如30只有一條記錄,而30有6個ename,所以無法顯示完整的數據

--where子句 限制篩選數據,必須跟在from之後
SELECT * FROM scott.emp WHERE deptno = 20 OR deptno = 30;
SELECT * FROM scott.emp WHERE deptno = 30 AND mgr = 7698;

--比較運算符
SELECT * FROM scott.emp WHERE sal >= 800 AND sal <= 1600;
--between and
SELECT * FROM scott.emp WHERE sal BETWEEN 800 AND 1600;
--in 包含,in執行的時候會拆分成一堆的or
SELECT * FROM scott.emp WHERE deptno = 20 OR deptno = 30;
SELECT * FROM scott.emp WHERE deptno IN(20,30);
--like模糊查詢 區分大小寫
--%匹配所有 _匹配一個字符
--查詢所有以 "s" 開頭的員工
SELECT * FROM scott.emp WHERE ename LIKE ‘S%‘;
--查詢所有以"s"結尾的員工
SELECT * FROM scott.emp WHERE ename LIKE ‘%S‘;
--查詢名字中包含"S"的員工
SELECT * FROM scott.emp WHERE ename LIKE ‘%S%‘;
--查詢名字中第二個字符是A的員工
SELECT * FROM scott.emp WHERE ename LIKE ‘_A%‘;

--優先級的規則 先and 再or
SELECT ename,job,sal
FROM scott.emp
WHERE job=‘PERSIDENT‘
OR job=‘SALESMAN‘
AND sal>1500;

SELECT ename,job,sal
FROM scott.emp
WHERE job=‘SALESMAN‘
OR (job=‘PERSIDENT‘
AND sal>1500);

--order by 以...排序
--descend 降序
--ascend 升序
--對結果集排序 order by asc(升序 默認) desc(降序)
--註意:order by只能出現在sql語句的最後一行
--按照薪水從低到高排序
SELECT * FROM scott.emp ORDER BY sal;
SELECT * FROM scott.emp ORDER BY sal asc;
SELECT * FROM scott.emp ORDER BY sal desc;

SQL中的SELECT 簡單查詢語句總結