午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    Oracle數(shù)據(jù)庫入門之查詢基礎
    來源:易賢網(wǎng) 閱讀:1244 次 日期:2014-09-17 10:39:49
    溫馨提示:易賢網(wǎng)小編為您整理了“Oracle數(shù)據(jù)庫入門之查詢基礎”,方便廣大網(wǎng)友查閱!

    簡單的表操作

    指令:創(chuàng)建簡單表:createtable student(name varchar2(20), age number(3) );

    插入新記錄:insert into studentvalues('stone',24);

    查看表結(jié)構(gòu):desc student;

    查詢記錄:select * from student;

    刪除表:drop table student;

    刪除表中的數(shù)據(jù):delete from studentwhere 條件;

    說明:SQLPlusWorksheet中用“--”作為單行注釋標記。varchar2(20)標明可變長度的字符串,上限為20

    number(3)標明age為不包含小數(shù)點的3位的整數(shù)。如果只定義成number,則系統(tǒng)默認為10位的整數(shù)

    單引號引起來的字符是SQL語言中字符串常量的表示方式。SQL語言中的關(guān)鍵字大小寫是不敏感的

    數(shù)據(jù)庫開發(fā)人員喜歡使用大寫關(guān)鍵字。應用程序開發(fā)人員多數(shù)使用小寫的,以實現(xiàn)良好的可讀性

    插入記錄后,其實并沒有在數(shù)據(jù)庫中立即永久生效,這時可以使用commit;提交數(shù)據(jù)的更新操作

    簡單的Select語句

    語法格式:SELECT *|{<字段名>,...} FROM <表名>;--字段間用逗號隔開。在逗號后面添加空格可以增強可讀性

    例如select * from emp;或select empno, ename, sal from emp;

    顯示效果:Sql*plus的默認顯示:Date和character型數(shù)據(jù)左對齊,Numeric型數(shù)據(jù)右對齊,列標題默認顯示為大寫

    iSql*plus的默認顯示:列標題默認顯示為大寫,列標題缺省居中對齊

    使用算術(shù)表達式

    概述:在Select語句中,對NUMBER型數(shù)據(jù)可以使用算術(shù)運算符(+、-、*、/)創(chuàng)建表達式

    舉例:select empno, ename, sal, sal*12 from emp;--查詢emp中員工的編號姓名工資和年薪

    select empno, ename, sal, sal*12+1000 from emp;

    select empno, ename, sql, sal*(12+1000) from emp;--可以使用括號更改計算順序

    連接運算符

    概述:即“||”可以把列與字符或其它表達式連接在一起,得到一個新的字符串,實現(xiàn)“合成”列的功能

    舉例:select ename || ' is a ' || job from emp;

    select empno, ename ||'''s annual salary is'|| sal*12 from emp;

    說明:用一個單引號代表字符串常量的分隔標記。用兩個單引號代表字符串常量中出現(xiàn)的一個單引號字符

    在查詢的時候,也不需要轉(zhuǎn)義符,直接用兩個單引號代表字符串常量中出現(xiàn)的一個單引號即可

    使用字段別名

    概述:重命名查詢結(jié)果中的字段,以增強可讀性。如果別名中使用特殊字符或強制輸出大小寫時需使用雙引號

    格式:SELECT <字段名>|<表達式> [[AS]<字段別名>],... FROM<表名>;

    舉例:select empno, ename "Ename", sal*12 "年 薪" from emp;

    select empno as 員工編號, ename 員工姓名, sal*12 "年薪" from emp;

    說明:as可以不加。別名可以用雙引號引起來。如果別名中不包含特殊字符,雙引號可以省略

    如果別名中包含了空格,如"年 薪",就必須加雙引號,否則將被解析成兩個成份,導致語法上出問題

    如果Ename不加雙引號,那么執(zhí)行后會顯示為ENAME。只有給它加上雙引號之后,才會遵重大小寫來顯示

    空值

    概述:空值是無效的,未指定的,未知的或不可預知的值??罩挡坏韧?或空格

    舉例:select empno, ename, sal, comm from emp;--執(zhí)行后某些記錄的comm屬性會顯示一片空白,即空值

    insert into student(age) values(24);--插入數(shù)據(jù)時,如果沒有指定name值,那么默認的name就是空值

    補充:算術(shù)表達式中如果出現(xiàn)空值,則整個表達式結(jié)果為空

    連接表達式中出現(xiàn)的空值被當作一個空的(長度為零的)字符串處理

    如select ename, sal, comm, ename || ' - ' || comm, sal+comm from emp;

    在算術(shù)表達式中如果涉及到空值的話,可以使用相應的函數(shù)對可能存在空值的字段進行缺省值的設置

    經(jīng)過判斷之后,如果它是空值,則返回0,如果不是空值,則返回它真正的值,然后再進行算術(shù)運算

    去除重復行

    概述:缺省情況下,查詢結(jié)果中顯示所有符合條件的記錄行,包括重復行。可以使用DISTINCT可以清除重復行

    DISTINCT的作用范圍是后面所有字段的組合,即后面的多個字段的組合不出現(xiàn)重復就可以了

    舉例:select deptno from emp;--本意是查詢部門編號的種類,顯示的卻是所有的編號,包括重復編號

    select distinct deptno from emp;--清除查詢結(jié)果中重復的部門編號

    select distinct deptno, job from emp;--只要deptno和job組合后的結(jié)果不重復,那么就都顯示輸出

    說明:通常把極為簡單的數(shù)據(jù)處理,包括數(shù)據(jù)的查詢、組合、過濾或轉(zhuǎn)換類型等操作,均交給數(shù)據(jù)庫進行處理

    比如分組統(tǒng)計、求和、求平均值、過濾空值、過濾重復值、數(shù)據(jù)開頭和結(jié)尾的空格過濾、字符串轉(zhuǎn)日期型等等

    而對于復雜些的業(yè)務邏輯,或者與商業(yè)邏輯相關(guān)的內(nèi)容,建議在應用程序中處理。這樣也就實現(xiàn)了松散的耦合

    查詢結(jié)果排序

    概述:查詢結(jié)果缺省按照記錄的插入順序進行排列。可以使用ORDER BY子句對查詢結(jié)果進行排序

    排序方式包括升序(ASC,缺省)和降序(DESC)兩種。也可以使用字段別名排序或按多字段排序

    舉例:select empno, ename, sal from emp order by sal;--按sal進行升序排列,ASC可以省略不寫

    select empno, ename, sal from emp order by sal desc;--按sal進行降序排列

    select empno, ename, sal*12 annsal from emp order by annsal;

    select deptno, empno, ename, sal from emp order by deptno, sal;

    說明:多字段排序時,先按照deptno排序,如果在得到的排列結(jié)果中存在重復的deptno記錄的話

    就將重復的deptno記錄再按照sal排序。至于具體的排序方式,則需要對兩個字段進行單獨指定

    如deptno,sal表示二者均按升序排列。deptno,sal desc表示deptno按升序排列,sal按降序排列

    如deptno desc,sal表示deptno按降序排列,sal按升序排列。依此類推

    這種邏輯適合由數(shù)據(jù)庫在查詢階段進行處理。在應用程序中通過代碼來實現(xiàn)的話,就會困難一些

    條件查詢

    說明:在查詢語句中或查詢條件中使用字符串或日期的時候,字符串和日期值要用單引號括起來

    字符串大小寫敏感。日期值格式敏感,缺省的日期格式是DD-MON-RR

    注意:凡涉及到字符串內(nèi)容的比較,大小寫都是敏感的

    格式:SELECT *|{[DISTINCT]<字段名>|<表達式>[<別名>],...} FROM<表名> [WHERE <查詢條件>];

    舉例:select * from emp where ename='SMITH';--這里所要查詢的SMITH嚴格區(qū)分大小寫

    select * from emp where hiredate='02-4月-81';--系統(tǒng)會自動將符合約定格式的字符串轉(zhuǎn)換成Date型

    select sysdata from dual;--以缺省的日期格式獲取當前的系統(tǒng)時間

    說明:表dual中只有一行一列,它本身并不保存系統(tǒng)時間,sysdate永遠代表當前的系統(tǒng)時間

    通常在進行簡單的查詢或運算的時候,dual表起一個媒介的作用,使得形式上看起來像是查詢

    dual的好處在于只有一行記錄,它一般用在練習時測試某些指令。一般不在真實的開發(fā)使用它

    比如select 3+2 from dual;返回5。又如select 3+2 from emp;則會返回很多行的5

    它會對emp中每一行記錄都查詢,但查的不是真正保存的內(nèi)容,而是逐行的計算一遍3+2

    再把得到的5作為一個唯一的結(jié)果,也是唯一的一個字段返回來,所以結(jié)果就是10多行的5

    對于Oracle數(shù)據(jù)庫,即使是想讓它做一個簡單的常量表達式的運算,也要采用問答的形式

    即便此時所有的數(shù)據(jù)都在用戶的手中,那也要裝作是查詢,給它一個指令,令其返回結(jié)果

    關(guān)系運算符

    符號:BETWEEN...AND...:界于兩值之間,包括邊界,并且必須把小的數(shù)值放在前面

    IN(set):出現(xiàn)在集合中。判斷是否存在某字段等于集合中的值的記錄

    LIKE:模糊查詢,也叫通配查詢

    IS NULL:判斷空值

    示例:select * from emp where sal between 1600 and 2900;--查詢工資界于1600和2900之間的員工的信息

    select * from emp where ename in('SMITH','KING','King');--返回姓名為set中的元素的值的記錄

    select * from emp where comm is null;--返回所有comm字段的值為空的記錄

    select * from emp where comm is not null;--返回非空的。注意0和空是不同的

    注意:凡涉及到字符串內(nèi)容的比較,大小寫都是敏感的。即in()中的值需要與ename值完全匹配方可查詢出記錄

    LIKE:%代表零或多個字符。_代表一個字符。可以使用ESCAPE標識特殊符號

    select * from emp where ename like 'S%';--查詢以S開頭的姓名的記錄。這里S仍然是大小寫敏感的

    select * from emp where ename like '_A%';--查詢第二個字母是A的姓名的記錄

    select * from emp where ename like '%_%' escape '';--返回姓名存在下劃線的記錄

    這里的escape標明“”起到轉(zhuǎn)義符的作用。在真實的開發(fā)中,這種轉(zhuǎn)義符用的并不多

    Oracle中的轉(zhuǎn)義符可以隨便定義,所以例句中的“”也可以換成其它的符號,如“K”

    說明:用一個單引號代表字符串常量的分隔標記。用兩個單引號代表字符串常量中出現(xiàn)的一個單引號字符

    在模糊查詢的時候,也不需要轉(zhuǎn)義符,直接用兩個單引號代表字符串常量中出現(xiàn)的一個單引號即可

    邏輯運算符

    概述:優(yōu)先級由高至低:NOT→AND→OR

    舉例:select * from emp where deptno=20 and sal>2000;--返回部門編號為20而且工資大于2000的記錄

    select * from emp where deptno=20 or sal>2000;--返回部門編號為20的人或者工資大于2000的記錄

    select * from emp where deptno not in(20,30,40);--返回部門編號沒有出現(xiàn)在該集合中的人的信息

    更多信息請查看IT技術(shù)專欄

    更多信息請查看數(shù)據(jù)庫
    易賢網(wǎng)手機網(wǎng)站地址:Oracle數(shù)據(jù)庫入門之查詢基礎
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)