花點時間整理下sql基礎,溫故而知新,也方便複習查看。文章的demo來自oracle自帶的dept,emp,salgrade三張表。解鎖scott用戶,使用scott用戶登錄就可以看到自帶的表。 #使用oracle用戶登錄linux [oracle@localhost ~]$ sqlplus / a... ...
花點時間整理下sql基礎,溫故而知新,也方便複習查看。文章的demo來自oracle自帶的dept,emp,salgrade三張表。解鎖scott用戶,使用scott用戶登錄就可以看到自帶的表。
#使用oracle用戶登錄linux
[oracle@localhost ~]$ sqlplus / as sysdba;
......
SQL> alter user scott account unlock;
四大語句
DQL語句——select
DML語句——insert,upate,delete等(關鍵字後帶表名)
DDL語句——create,alter,drop等(關鍵字後帶table關鍵字再跟表名)
事務控制語句——commit,rollback
基礎select語句
簡單select語句
select * from emp;
包含算術表達式的語句
--查詢出來的sal乘以5
select ename , sal*5 from emp;
--表中取出2*3的結果
select 2*3 from emp;在emp;
--當我們需要顯示一個結果的時候就用系統提供的dual虛表
select 2*3 form dual;
獲取系統當前的時間
--sysdate在Oracle中表示當前系統時間
select sysdate from dual;
含有別名的語句
--顯示出來的是salary欄位名而不是sal
select ename, sal*12 salary from emp;
含有空值
空值表達式
--含有任何null值的數學表達式最後的結果都為null
select ename, sal*5+comm from emp;
空字元串(字元串、字元串連接符)
--含有任何null值的字元串表達式中,null被當作空字元串處理
select empno, ename || 'abc' || mgr from emp;
--字元串連接符:||。select語句中用單引號表示字元串
distinct消除重覆
--用distinct消除結果集中deptno相同的記錄
select distinct deptno from emp;
--消除結果集中job和deptno都相同的記錄
select distinct job, deptno from emp;
where 條件過濾
等值判斷
select * from emp where empno = 7369;
非等值判斷
(1)>,<,>=, <= ,<>
--取出所有部門號不是10的雇員的名字和薪水
select ename, sal from emp where deptno <> 10;
(2)between..and..
--包含最大值和最小值
select ename, sal from emp where sal between 800 and 1500;
(3)字元串比較
比較字元串ASCII碼值的比較,先比較第一字母,依次比較每個字母
select ename, sal from emp where ename > ‘DBA’;
空值處理
--為空
select ename from emp where comm is null;
--不為空
select ename from emp where comm is not null;
in語句
--在選定範圍