別名
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問題,行業(yè)涉及發(fā)電機(jī)回收等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
oracle別名如果別名包含空格 特殊字符(如# $) 或需區(qū)分大小寫(Name)需要用雙引號把別名引起來
select ename Name
sal* Annual Salary
from emp;
列的別名可用于select和order by子句中 但是不能用在where子句中
連接操作符 ||
select ename||job as Employees
from emp;
原義字符串 包含在select列表中的一個(gè)字符 數(shù)字或日期 而不是列名或別名 使用原義字符串可增強(qiáng)輸出的可讀性
select ename|| is a ||job
as Employees from emp;
去除重復(fù)行distinct
select distinct deptno
from emp;
sql*plus登錄
sqlplus [username[/password[@database]]]
在sql*plus中編輯sql緩沖區(qū)中的sql語句
SQLselect depno
dname
from dept;
sqlL
*dname
sqlA loc
*dname loc
sqlL
select depno
dname loc
*from dept
sql/(執(zhí)行)
限定查詢和排序
select empno ename job deptno
from emp
where deptno= ;
oracle提供 種常用的比較運(yùn)算符 = = = 或!=(不等于)
除了 種常用的外還提供 種比較運(yùn)算符 beeen and (包含) IN(和多個(gè)值中的任何一個(gè)匹配) like (字形匹配)
is null(是空值)
在where子句中的字符串和日期數(shù)值必須用單引號引起來 oracle 以內(nèi)部數(shù)值形式存儲日期 能表現(xiàn)出世紀(jì) 年 月 日 小時(shí) 分 秒 默認(rèn)的日期形式是DD MON YY
sqlselect ename job deptno
from emp
where ename= JAMES ;
sqlselect name job deptno
from emp
where ename= james ;
所有字符檢索都是大小寫敏感的
顯示工資在 和 美元之間的雇員信息
select ename sal
from emp
where sal beeen and ;
顯示 年加入公司的雇員相關(guān)信息
select ename sal hiredate
from emp
where hiredate beeen JAN and DEC ;
顯示mgr等于 的雇員信息
select empno ename sql mgr
from emp
where mgr in ( );
顯示姓名為FORD ALLEN雇員的相關(guān)信息
select empno ename mgr deptno
from emp
where ename in( FORD ALLEN );
like字形匹配操作可以使用通配符 % (表示任意字符)和 _ (表示一個(gè)字符)
select ename
from emp
where ename like S% ;
當(dāng)我們需要對% _進(jìn)行查找時(shí) 可以使用escape選項(xiàng) 這個(gè)選項(xiàng)指定哪個(gè)是轉(zhuǎn)義字符
escape標(biāo)識 \ 字符作為轉(zhuǎn)義符
select ename
from emp
where ename like %A\_B% escape \ ;
在條件中NOT 形成否定條件
select ename job
from emp
where job not in ( CLERK MANAGER ANALYST );
where sal not beeen and
where ename not like %A%
wher m is not null
運(yùn)算符優(yōu)先規(guī)則
not and or
select ename job sal
from emp
where job= SALESMAN
or job= PRESIDENT
and sal ;
第一個(gè)條件是工作為president并且月工資大于 美元
第二個(gè)條件是工作為sale *** an
因此可以這樣理解 如果一個(gè)雇員是president并且月工資大于 或者這個(gè)雇員是sale *** an 那么他們將被檢索出
select ename job sal
from emp
where (job= SALESMAN
or job= PRESIDENT )
and sal ;
第一個(gè)條件是工作為president或saleman
第二個(gè)條件是月工資大于
order by子句后可選用關(guān)鍵字asc(升序默認(rèn)為升序) desc(降序排列)
select ename job deptno hiredate
from emp
lishixinzhi/Article/program/Oracle/201311/17302
1、首先在oracle建立數(shù)據(jù)表的時(shí)候,對表的命名有以下規(guī)范:以字母開頭表名長度不能超過30個(gè)字符,不能使用oracle保留關(guān)鍵字,可以使用A-Z,a-z,0-9,#,$等。
2、如果表名中包含特殊字符是直接報(bào)錯(cuò)的。如下圖使用了? *。
3、在建立表的時(shí)候,數(shù)字也是不能使用表名的開始的。
4、但如果使用雙引號對表名進(jìn)行規(guī)范的話,是可以建立以數(shù)字或者包含特殊字符的表名的。
5、過這樣建立的表名,在查詢數(shù)據(jù)的時(shí)候是非常麻煩的,查詢時(shí)也要加雙引號。而且這樣建立的表名,在項(xiàng)目運(yùn)行的過程中也非常容易造成各種麻煩,所以盡量不要使用。
以下是對Oracle中的基本查詢過濾排序示例進(jìn)行了詳細(xì)的分析介紹 需要的朋友可以參考下 ?
基本查詢
復(fù)制代碼 代碼如下: 查詢所有員工的信息 select * from emp; 設(shè)置行寬 set linesize ; 設(shè)置列寬為四個(gè)數(shù)字的寬度 col empno for ; 設(shè)置列寬 a表示字符串共八位長度 col ename for a 設(shè)置pageSize每頁顯示 條記錄 set pagesize ; sql中支持算數(shù)表達(dá)式 注意 如果一個(gè)表達(dá)式中含有空值 則整個(gè)表達(dá)式為空 select empno ename sal sal* m sal* +m from emp; 使用濾空函數(shù)如果m為空將以 代替 select empno ename sal sal* m sal* +nvl(m ) from emp; 使用別名的三種方式 別名中有無雙引號的區(qū)別 帶雙引號的可以包含空格和特殊字符 不帶雙引號的則不能 select empno as "員工編號" ename "姓名" sal 月薪 m sal* +nvl(m )年收入 from emp; 關(guān)于disctinct 相同記錄只取一次 select distinct deptno from emp; 當(dāng)disctinct跟多個(gè)值時(shí) 當(dāng)deptno和job均一樣時(shí) 才認(rèn)為是相同記錄 select distinct deptno job from emp; 連接符的使用 select ename || 的薪水是 ||sal from emp;
注意 SQL 語言大小寫不敏感 SQL 可以寫在一行或者多行 關(guān)鍵字不能被縮寫也不能分行 各子句一般要分行寫 使用縮進(jìn)提高語句的可讀性 過濾和排序
復(fù)制代碼 代碼如下: 查詢系統(tǒng)參數(shù) select * from v$nls_parameters; 修改日期格式 alter session set NLS_DATE_FORMAT= yyyy mm dd ; 隱士方式轉(zhuǎn)換日期 會影響性能 select * from emp where hiredate= ; 顯示方式轉(zhuǎn)換日期 select * from emp where hiredate=to_date( yyyy mm dd ); 比較運(yùn)算符 查詢工資大于 小于 的員工 beeen and含邊界 select * from emp where sal= and sal= ; select * from emp where sal beeen and ; in: 在集合中 查詢 號部門和 號部門的員工 select * from emp where deptno= or deptno= ; select * from emp where deptno in ( ); 模糊查詢:查詢名字以S打頭的員工 select * from emp where ename like S% ; 查詢名字有四個(gè)字的員工 要求四個(gè)下劃線 select * from emp where ename like ____ ; 查詢姓名中含義下劃線的員工 _下劃線為特殊字符需要轉(zhuǎn)義 escape 聲明轉(zhuǎn)義 select * from emp where ename like %\_% escape \ ; 查詢獎金不為空的員工 select * from emp where m is not null; 查詢員工信息 按照月薪排序 select * from emp order by sal; a命令 追加命令 將上邊改為降序排序 a? desc 查詢員工信息 按照年薪排序 select empno ename sal sal* from emp order by sal* ; order by后面可以跟別名 select empno ename sal sal* 年薪 from emp order by 年薪; order by后面可以跟序號 select empno ename sal sal* from emp order by ; order by作用于多列 先按照第一列排序 然后按照第二列排 select * from emp order by deptno sal; order by作用于多列 降序需要每列均有desc select * from emp order by deptno desc sal desc 將空值排到最后 select * from emp order by m desc nulls last; 屏蔽/開啟反饋信息 set feedback off/set feedback on lishixinzhi/Article/program/Oracle/201311/19117
Oracle9i之前,中文是按照二進(jìn)制編碼進(jìn)行排序的。在oracle9i中新增了按照拼音、部首、筆畫排序功能。
1、設(shè)置NLS_SORT參數(shù)值
SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序 SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序 SCHINESE_PINYIN_M 按照拼音排序
2、Session級別的設(shè)置,修改ORACLE字段的默認(rèn)排序方式:
按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;
按筆畫:alter session set nls_sort = SCHINESE_STROKE_M;
按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;
3、語句級別設(shè)置排序方式:
按照筆劃排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
按照部首排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
按照拼音排序 此為系統(tǒng)的默認(rèn)排序方式
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
4、修改系統(tǒng)參數(shù)(數(shù)據(jù)庫所在操作系統(tǒng)):
set NLS_SORT=SCHINESE_RADICAL_M export NLS_SORT (sh) setenv NLS_SORT SCHINESE_RADICAL_M (csh) HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注冊表)