好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > oracle基本查詢用法入門示例

oracle基本查詢用法入門示例

熱門標簽:安陽企業電銷機器人供應商 地圖標注坐標圖標 手機地圖標注門店 汽車4s店百度地圖標注店 杭州網絡外呼系統運營商 電銷套路機器人 地圖標注效果的制作 鶴壁電話機器人價格 網貸外呼系統合法嗎

本文實例講述了oracle基本查詢用法。分享給大家供大家參考,具體如下:

一、基本select語句

SELECT *|{[DISTINCT] column|expression [alias], ...}
FROM table;

例如:

--查詢所有數據
select * from emp;

--查詢指定列數據
select empno,ename,sal from emp;

--算數運算符(+ - * /)
select ename,sal,sal+30 from emp;

--使用括號
select ename,sal,12*(sal+30) from emp;

--定義空值
--(空值是無效的,未指定,未知的或不可預知的值,空值不是空格或是0)
select ename,job,sal,comm from emp;

--空值的數學運算
--包含空值的數學表達式的值都為空值
select ename,12*sal+comm from emp;

--列的別名
--別名使用雙引號,AS可以省略
select deptno as "no",ename as "name" from emp;

--連接符,把列與列,列與字符連接在一起
select deptno || '--' || ename from emp;

--字符串
--日期和字符只能在單引號中出現
select 'hello ' || ename from emp;

--刪除重復行
select distinct deptno from emp;

--顯示表結構
desc[ribe] tablename;

二、過濾和排序

SELECT *|{[DISTINCT] column|expression [alias], ...}
FROM table
[WHERE condition(s)];

例如:

--查詢指定條件數據
select deptno,ename from emp where deptno=10;

--字符串和日期包含在單引號中
--字符串大小寫敏感,日期格式敏感
select ename,job,deptno from emp where ename='King';

--比較運算符(= >  = >= > !=)
select ename,sal from emp where sal1500;

--其他比較運算符
--BETWEEN ... AND ... 在兩個值之間包含邊界
--IN(set) 等于值列表中的一個
--LIKE 模糊查詢

--IS NULL 空值
select ename,sal,deptno from emp where deptno in(10,30);
select ename,sal,comm from emp where comm is null;

--邏輯運算(AND OR NOT)
select ename,sal from emp where deptno=10 and sal>1500;

排序

ORDER BY 字段 [DESC|ASC]

例如:

select ename,sal from emp order by sal desc;
--多列排序
--先按第一列排序,如果相同,則按第二列排序,以此類推
select * from emp order by sal desc,hiredate desc;

三、單行函數

1、字符函數

--LOWER 轉換小寫
--UPPER 轉換大寫
--INITCAP 首字母大寫
select lower(ename) from emp;
--CONCAT 接接字符串
--SUBSTR 截取字符串
--LENGTH 字符串長度
--INSTR 查找字符串
--LPAD 左邊填充字符
--RPAD 右邊填充字符
--TRIM([leading|trailing|both] 字符串1 from 字符串2) 
--TRIM可以刪除兩邊空格,也可刪除其他字符
--REPLACE 替換字符串
select concat('aa','bb') from emp;
select substr('abcdefg', 2, 3) from emp;
select length('test...') from emp;
select instr('hello world', 'w') from emp;
select lpad(sal, '10', '0') from emp;
select rpad(sal, '10', '*') from emp;
select trim(' test ') from emp;
--從尾部刪除字符串*號
select trim(trailing '*' from '**1212121**') from emp;
--把字符串中的22替換成88
select replace('11223344', '22', '88') from emp;

2、數字函數

--ROUND 四舍五入
--TRUNC 截斷
--MOD 求余
select round(25.533,2) from dual;
select trunc(25.323,2) from dual;
select mod(8, 3) from dual;

3、日期

oracle中日期型數據實際含有兩個值:日期和時間。

默認格式為:DD-MON-RR

--返回系統時間
select sysdate from dual;
--兩個日期相減,返回日期之間相差的天數
select ename,(sysdate-hiredate) / 7 "weeks" from emp;
--MONTHS_BETWEEN 兩日期相差月數
--ADD_MONTHS 指定日期加上若干月數
--NEXT_DAY 指定日期的下一個日期
--LAST_DAY 本月的最后一天
--ROUND 日期四舍五入
--TRUNC 日期截斷
select months_between(sysdate,hiredate) from emp;

4、顯式數據類型轉換

--TO_CHAR(date, 'format_model')
--把日期轉換成字符串
select to_char(sysdate, 'YYYY MM DD HH:MI:SS') from dual;
--TO_CHAR(number, 'format_model')
select ename,sal,to_char(sal, '$99,999.00') from emp;
--TO_NUMBER(char[,'format_model'])
--TO_DATE(char[,'format_model'])

通用函數,適用于任何數據類型,也適用于空值

NVL(expr1,expr2)
NVL2(expr1,expr2,expr3)
NULLIF(expr1,expr2)
COALESCE(expr1,expr2,...)

5、條件表達式

在sql語句中使用if-then-else邏輯
case表達式,sql99語法,類似basic,比較繁鎖
decode函數,oracle自已語法,類似java,比較簡潔

CASE expr WHEN comparison_expr1 THEN return_expr1
     [WHEN comparison_expr2 THEN return_expr2
      WHEN comparison_expr3 THEN return_expr3
      ELSE else_expr]
END
DECODE(col|expression, search1, result1
           [,search2, result2, ..., ]
           [,defautl]
)
select ename,sal,decode(round(sal/1000),
1, '一倍',
2, '二倍',
3, '三倍',
'不知倍數'
) from emp;

6、函數嵌套

單行函數可以嵌套,嵌套函數的執行是由內到外。

四、分組函數

分組函數作用于一組數據,并對一組數據返回一個值。
常用組函數

--AVG
--COUNT
--MAX
--MIN
--SUM
select sum(sal) as "total" from emp;
select max(sal) from emp;
select count(*) from emp where deptno=10;
select count(distinct deptno) from emp;

分組數據
通過GROUP BY可以將數據分成若干組

select deptno,avg(sal) from emp group by deptno;

(*注意:在select列表中所有未包含在組函數中的列都必須包含在group by中。)

--多列分組
select deptno,job,avg(sal) from emp group by deptno,job;

過濾分組
通過HAVING子句對分組進行過濾

select deptno,avg(sal) from emp group by deptno having deptno in(10,20);

(*注意:不能在where子句中使用組函數,having子句中可以。)
嵌套組函數

select max(avg(sal)) from emp group by deptno;

五、多表查詢

oracle的連接  sql99的連接
等值連接        cross joins
不等值連接     natural joins
外連接           using clause
自連接           full or two sided outer joins

SELECT table1.column, table2.column
FROM table1,table2
WHERE table1.column1=table2.column2;
--等值連接
select d.dname,e.ename,e.sal from emp e, dept d where e.deptno=d.deptno;

--多連接條件和and操作符
select d.dname,e.ename,e.sal from emp e, dept d where e.deptno=d.deptno and e.deptno=10;

表的別名
1、使用表別名可簡化查詢
2、使用表名前綴可以提高執行效率
3、如果使用了表的別名,則不能再使用表的真名。

--不等值連接

--查詢員工部門名稱和工資等級
select d.dname, e.ename, e.sal, s.grade
from emp e, dept d, salgrade s
where e.deptno = d.deptno
and e.sal >= s.losal
and e.sal = s.hisal;

外連接語法
外連接查詢可以查詢不滿足連接條件的數據。
外連接的符號是(+)

SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column(+) = table2.column;

SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column= table2.column(+) ;
--查詢部門人數
select d.dname, d.deptno, count(e.empno)
 from emp e, dept d
 where e.deptno(+) = d.deptno
 group by d.deptno,d.dname;

自連接

--查詢員工的上級
select e.ename as "員工", e2.ename as "上級"
 from emp e, emp e2
 where e.empno = e2.mgr;

使用sql:1999語法連接

SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2 ON(table1.column_name=table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN table2 ON(table1.column_name=table2.column_name)];

使用cross join連接的表產生叉集,叉集和笛卡爾集是相同的。

select e.ename,d.dname from emp e cross join dept d;

使作natural join自然連接,會以兩個表中具有相同名字的列為條件創建等值連接。

select e.ename,d.dname from emp e natural join dept d;

使用using創建連接,用natural join創建等值連接時,可以使用using指定等值連接中需要用到的列。

select e.ename,d.dname from emp e join dept d USING (deptno);

使用on創建連接,可以指定額外的連接條件。

select e.ename,d.dname from emp e join dept d on e.deptno=d.deptno;

使用on創建多表連接

select e.ename, d.dname, e2.ename
from emp e
join dept d
on e.deptno = d.deptno
join emp e2
on e.empno = e2.mgr;

內連接和外連接
在sql:1999中,內連接只返回滿足連接條件的數據。
兩個表在連接過程中除了返回滿足連接條件的行以外,還返回左(右)表中不滿足條件的行,這種稱為左(右)外連接。
兩個表在連接過程中除了返加滿足連接條件的行以外,還返回兩個表中不滿足條件的行,這種連接稱為滿外連接。

--左外連接
select e.ename, d.dname
from emp e
left outer join dept d
on e.deptno = d.deptno;
--右外連接,返回右表中不滿足條件的行
select e.ename, d.dname
from emp e
right outer join dept d
on e.deptno = d.deptno;
--滿外連接
select e.ename, d.dname
from emp e
full outer join dept d
on e.deptno = d.deptno;

更多關于Oracle相關內容感興趣的讀者可查看本站專題:《Oracle常用函數匯總》、《Oracle日期與時間操作技巧總結》及《php+Oracle數據庫程序設計技巧總結》

希望本文所述對大家Oracle數據庫程序設計有所幫助。

您可能感興趣的文章:
  • Oracle 11GR2的遞歸WITH子查詢方法
  • Oracle基礎學習之子查詢
  • Oracle數據庫中基本的查詢優化與子查詢優化講解
  • Oracle通過遞歸查詢父子兄弟節點方法示例
  • 一個oracle+PHP的查詢的例子
  • oracle 查詢表名以及表的列名
  • oracle查詢語句大全(oracle 基本命令大全一)
  • oracle數據庫常用的99條查詢語句
  • ORACLE查詢刪除重復記錄三種方法
  • oracle常用sql查詢語句部分集合(圖文)
  • oracle基本查詢操作子查詢用法實例分析

標簽:泰安 酒泉 河源 柳州 南陽 梧州 銀川 焦作

巨人網絡通訊聲明:本文標題《oracle基本查詢用法入門示例》,本文關鍵詞  oracle,基本,查詢,用法,入門,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle基本查詢用法入門示例》相關的同類信息!
  • 本頁收集關于oracle基本查詢用法入門示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日本老熟matute视频| 国产真实伦视频在线视频| ▇无码精品国产AV在线观看 | 好看的肉文| 岳的奶大又白又胖| 黄色片网站观看| 午夜电影院理论片8888琪琪 | 波多野结衣中文字幕久久| 成年美女视频网站免费大全| 亚洲天堂成人| 免费观看的黄色网址| 动漫巨胸喷奶水www视频网站| 旧里番3d美杜莎未删减无修| 91精品乱码一区二区三区| 欧美AV无码区亚洲77777| 一级毛片两人添下面| 国产对白精品刺激一区二区| 欧美97人人模人人爽| 盼盼解罩无删减完整版| 翁熄公交车性放纵| 高清天美传媒在线观看免费| 国产做受???麻豆| 免费精品国产日韩热久久| 99er热| 日本一级激情视频| 用力深一点再用力gif| 色多多视频app?入口下载| 国产三级精品三级在线观看动画 | 一级毛片**免费看试看20分钟| 宝贝c我想摸你奶让我揉揉说说| 久久嫩草精品久久久久精品抖音 | 国产精品一区二区尿失禁| **毛片免费看| 凹凸日日摸日日碰夜夜爽系列小说 | 女同视频| 韩漫免费漫画网站| 公交车上扒开腿做爰小说| 控制排泄戴禁尿锁憋尿膀胱| 免费的黄色影片| 国产美乳无码视频在线观看| 免费无码AAAA片逍遥阁|