Oracle SQL语句大全(二)
生活随笔
收集整理的這篇文章主要介紹了
Oracle SQL语句大全(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
avg(sal)?desc;?查找部門中平均薪水打印2000的員工并按部門號進行排序,查詢分組后的平均薪水必須大于1500,查詢結果按平均薪水從低到高排列?
49.select?ename?from?emp?where?sal>(select?avg(sal)?from?emp);????查找出員工中薪水位于部門平均薪水之上的所有員工?
50.select?ename,sal?from?emp?join(select?max(sal)?max_sal?from?emp?group?by?deptno)?t?on(emp.sal=t,max_sal?and?emp.deptno=t.deptno);????查找每個部門中薪水最高的?
51.select?e1.ename,e2.ename?from?emp?e1,emp?e2?where?e1.mgr=e2.empno;???????????表的自連接?
52.select?dname,ename?from?emp?cross?join?dept?????????交叉連接,笛卡爾?SQL99中的新語法?
53.select?ename,dname?from?emp?join?dept?on(emp.deptno=dept.deptno);?
54.select?ename,dname?from?emp?join?dept?using(deptno);????????????查找emp和dept表中deptno相同的部分。?
55.select?ename,dname,grade?from?emp?e?join?dept?d?on(e.deptno=d.depno)?join?salgrade?s(e.sal?between?s.losal?and?s.hisal)???(三表查找)?where?ename?not?like?'_%A%';?
56.select?e1.ename,e2.ename?from?emp?e1?join?emp?e2?on(e1.mgr=e2.deptno);?表的自連接?57.select?e1.ename,e2.ename?from?emp?e1?left?join?emp?e2?on(e1.mgr=e2.deptno)?左外表連接????select?ename,dname?from?emp?e?right?join?dept?d?on(e.deptno=d.deptno)右外連接????select?ename,dname?from?emp?e?full?join?dept?d?on(e.deptno=d.deptno)全連接?58.求部門中薪水最高的?select?ename,sal?from?emp?join?(select?max(sal)?max_sal,?deptno?from?emp?group?by?deptno)?t????on?(emp.sal=t.max_sal?and?emp.deptno=t.deptno);?59.求部門中薪水等級的平均值?select?deptno,avg(grade)?from(select?deptno,ename,grade,from?emp?join?salgrade?s?on(emp.sal?between?s.losal?and?s.hisal))t?group?by?deptno;?60.查找雇員中哪些是經理人?select?ename?from?emp?where?empno?in(select?mgr?from?emp);?
61.select?distinct?e1.sal?from?emp?e1?join?emp?e2?on(e1.sal<e2.sal);?自連接(不用組函數求出最高薪水)?select?distinct?sal?from?emp?where?not?in?(select?ename?from?e1.sal?from?emp?e1?join?emp?e2?on(e1.sal<e2.sal));?
62.select?deptno?from?(select?avg(sal)?max_sal?deptno?from?emp?group?by?deptno)?where?max_sal=(select?max(avg_sal)?from?(select?
avg(sal)?avg_sal?deptno?from?emp?group?by?deptno));???????????查找部門中部門薪水最大的部門號?
63.求平均薪水最大的部門的部門編號?select?deptno,avg_sal?from(select?avg(sal)?avg_sal,deptno?from?emp?group?by????deptno)where?avg_sal=(select?max(avg(sal))?from?emp?group?by?deptno);?DML語句:更、刪、改、查?
創建權限,?conn?sys/admin?as?sysdba ???????????grant?create?table,create?view?to?scott;?首先在C:下面建個文件夾備份文件?
1.createNewUser方法? 1.--backup?scott??????exp? 2.create?user(創建用戶)用超級管理員模式進入?create?user?yun?identified?by?kang1234?default?tablespace?users?quota?10M?on?users;????grant?create?session,create?table,create?view?to?kafei(給kafei這個用戶授予權限)?3.import?the?data(導入備份數據)????imp? 2.insert? insert?into?dept?values?(50,'game','bj')?插入一條記錄? insert?into?dept2?(deptno,dname)?values?(78,'games');?插入指定的幾條記錄?insert?into?dept2?select?*from?dept??????插入指定的表(表結構要一樣)?rollback;?????????回退? create?table?emp2?as?select?*?from?emp;????創建數據庫表2來備份emp這張表?
3.update?emp2?set?sal=sal*12?where?deptno=10;????update的用法?
4.delete?from?dept2?where?deptno<25????????????刪除語句的用法?DDL語言?
1.創建表:create?table?t(a?varchar2(10));?
2.drop?table?t????刪除表? 3.commit???所有的提交,所有修改都結束了。對于rollback無效,一個事務開始于第1條DML語句? 碰到執行DDL?DCL語句事務自動提交?對于rollback無效?建表語句?建學生信息表:?create?table?stu? (id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,?sex?number(1),?age?number(3),?sdate?date,? grade?number(2)?default?1,?class?number(4),? email?varchar2(50)?unique????(唯一約束)?);? 非空?唯一?主鍵?外鍵?chick?create?table?stu? (id?number(6)?primary?key,(主鍵約束)? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),?age?number(3), sdate?date,? grade?number(2)?default?1,?class?number(4),?email?varchar2(50),? constraint?stu_name_uui?unique(email,name)?組合性約束?);? 主鍵約束方法二? create?table?stu?(id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),?age?number(3),? sdate?date,? grade?number(2)?default?1,? class?number(4)?references?class(id),(參考class?這張表,參考字段)?email?varchar2(50),? constraint?stu_id_pk?primary?key(id),? constraint?stu_name_uui?unique(email,name)?組合性約束?);? 外鍵約束? create?table?class? (id?number(4)?primary?key,(id為被參考字段,被參考的字段必須是主鍵)?name?varchar2(20)?not?null?)? create?table?stu?(? id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),? age?number(3),?sdate?date,? grade?number(2)?default?1,?class?number(4)? email?varchar2(50),? constraint?stu_class_fk?foreign?key(class)?references?class(id),?constraint?stu_id_pk?primary?key(id),? constraint?stu_name_uui?unique(email,name)?組合性約束?);?
像外鍵中插入關鍵字,? 1.insert?into?class?values(1000,'c1');? 2.insert?into?stu(id,name,class,email)?values(1,'a',1000,'a');?
3.alter?table?stu?add(addr?varchar(20));添加表的結構? 4.alter?table?stu?drop(addr);?刪除表結構? 5.alter?table?stu?modify(addr?varchar2(150));修改精度? 6.alter?table?stu?drop?constraint?stu_class_fk;?刪除約束條件? 7.alter?table?stu?add?constraint?stu_class_fk?forengn?key(class)?references?class(id),添加約束條件?查找當前用戶下有哪些表和哪些視圖及哪些約束?8.select?table_name?from?user_names?9.select?view_name?from?view_names? 10.select?constraint_name,table_name?from?user_constraints;?desc?dictionary數據字典表? desc?user_tables當前用戶下面有多少張表? select?table_name?from?user_tables;?查找當前用戶有多少張表?索引:? 創建索引? create?index?idx_stu_email?on?stu(email);?drop?index?idx_stu_email;?查找索引? select?index_name?from?user_indexes;?索引讀的速度快了,插入速度變慢?view?視圖? 視圖贈加了維護的量?序列:? create?table?arcticle?(id?number,? title?varchar2(1024),?cont?long? );? 序列的創建sequence產生獨一無二的序列,而且是oracle獨有的?create?sequence?seq;? select?seq.nextval?from?dual;?查找序列號? insert?into?arcticle?values(seq.nextval,'a','b');往表中插入序列?數據庫設計的3范式? 第一范式:?設計任何表都要有主鍵,列不可分?第二范式:?如果有2個主鍵的話,不能存在部分依賴?第三范式,?不能存在傳遞依賴?PL-sql?例子1:? SQL>?set?serveroutput?on;? SQL>?begin(必要的--程序開始執行)?2?dbms_output.put_line('hello?world');?3?end;(結束)?4?/
1.createNewUser方法? 1.--backup?scott??????exp? 2.create?user(創建用戶)用超級管理員模式進入?create?user?yun?identified?by?kang1234?default?tablespace?users?quota?10M?on?users;????grant?create?session,create?table,create?view?to?kafei(給kafei這個用戶授予權限)?3.import?the?data(導入備份數據)????imp? 2.insert? insert?into?dept?values?(50,'game','bj')?插入一條記錄? insert?into?dept2?(deptno,dname)?values?(78,'games');?插入指定的幾條記錄?insert?into?dept2?select?*from?dept??????插入指定的表(表結構要一樣)?rollback;?????????回退? create?table?emp2?as?select?*?from?emp;????創建數據庫表2來備份emp這張表?
3.update?emp2?set?sal=sal*12?where?deptno=10;????update的用法?
4.delete?from?dept2?where?deptno<25????????????刪除語句的用法?DDL語言?
1.創建表:create?table?t(a?varchar2(10));?
2.drop?table?t????刪除表? 3.commit???所有的提交,所有修改都結束了。對于rollback無效,一個事務開始于第1條DML語句? 碰到執行DDL?DCL語句事務自動提交?對于rollback無效?建表語句?建學生信息表:?create?table?stu? (id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,?sex?number(1),?age?number(3),?sdate?date,? grade?number(2)?default?1,?class?number(4),? email?varchar2(50)?unique????(唯一約束)?);? 非空?唯一?主鍵?外鍵?chick?create?table?stu? (id?number(6)?primary?key,(主鍵約束)? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),?age?number(3), sdate?date,? grade?number(2)?default?1,?class?number(4),?email?varchar2(50),? constraint?stu_name_uui?unique(email,name)?組合性約束?);? 主鍵約束方法二? create?table?stu?(id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),?age?number(3),? sdate?date,? grade?number(2)?default?1,? class?number(4)?references?class(id),(參考class?這張表,參考字段)?email?varchar2(50),? constraint?stu_id_pk?primary?key(id),? constraint?stu_name_uui?unique(email,name)?組合性約束?);? 外鍵約束? create?table?class? (id?number(4)?primary?key,(id為被參考字段,被參考的字段必須是主鍵)?name?varchar2(20)?not?null?)? create?table?stu?(? id?number(6),? name?varchar2(20)?constraint?stu_name_nn?not?null,(非空約束)?sex?number(1),? age?number(3),?sdate?date,? grade?number(2)?default?1,?class?number(4)? email?varchar2(50),? constraint?stu_class_fk?foreign?key(class)?references?class(id),?constraint?stu_id_pk?primary?key(id),? constraint?stu_name_uui?unique(email,name)?組合性約束?);?
像外鍵中插入關鍵字,? 1.insert?into?class?values(1000,'c1');? 2.insert?into?stu(id,name,class,email)?values(1,'a',1000,'a');?
3.alter?table?stu?add(addr?varchar(20));添加表的結構? 4.alter?table?stu?drop(addr);?刪除表結構? 5.alter?table?stu?modify(addr?varchar2(150));修改精度? 6.alter?table?stu?drop?constraint?stu_class_fk;?刪除約束條件? 7.alter?table?stu?add?constraint?stu_class_fk?forengn?key(class)?references?class(id),添加約束條件?查找當前用戶下有哪些表和哪些視圖及哪些約束?8.select?table_name?from?user_names?9.select?view_name?from?view_names? 10.select?constraint_name,table_name?from?user_constraints;?desc?dictionary數據字典表? desc?user_tables當前用戶下面有多少張表? select?table_name?from?user_tables;?查找當前用戶有多少張表?索引:? 創建索引? create?index?idx_stu_email?on?stu(email);?drop?index?idx_stu_email;?查找索引? select?index_name?from?user_indexes;?索引讀的速度快了,插入速度變慢?view?視圖? 視圖贈加了維護的量?序列:? create?table?arcticle?(id?number,? title?varchar2(1024),?cont?long? );? 序列的創建sequence產生獨一無二的序列,而且是oracle獨有的?create?sequence?seq;? select?seq.nextval?from?dual;?查找序列號? insert?into?arcticle?values(seq.nextval,'a','b');往表中插入序列?數據庫設計的3范式? 第一范式:?設計任何表都要有主鍵,列不可分?第二范式:?如果有2個主鍵的話,不能存在部分依賴?第三范式,?不能存在傳遞依賴?PL-sql?例子1:? SQL>?set?serveroutput?on;? SQL>?begin(必要的--程序開始執行)?2?dbms_output.put_line('hello?world');?3?end;(結束)?4?/
?
轉載于:https://www.cnblogs.com/ruishuang208/p/4095356.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Oracle SQL语句大全(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二次个人阅读作业
- 下一篇: informatica中的workflo