日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python針對Oracle常見查詢操作實例分析

瀏覽:38日期:2022-07-26 17:54:51

本文實例講述了python針對Oracle常見查詢操作。分享給大家供大家參考,具體如下:

1.子查詢(難):

當進行查詢的時候,發現需要的數據信息不明確,需要先通過另一個查詢得到,

此查詢稱為子查詢;

執行順序:先執行子查詢得到結果以后返回給主查詢

組成部分:

1).主查詢部分

2).子查詢部分

【注意事項】:

子查詢一定需要被定義/包裹在小括號內部,可以認為是顯示的提升了代碼執行的優先級

需求1:

查詢薪資比Abel的高的有誰?

分析:

①.先查詢出Abel的薪資是多少?

②.將過濾條件定義為>①,然后進行查詢得到最終需要的結果

代碼實現:

select last_name,salaryfrom employeeswhere salary > (select salary from employeeswhere last_name = ’Abel’);

需求2:

查詢job_id與141號員工相同,salary比143號員工多的員工的姓名,job_id和salary?

代碼實現:

select last_name,job_id,salaryfrom employeeswhere job_id = (select job_idfrom employeeswhere employee_id = 141)and salary > (select salaryfrom employeeswhere employee_id = 143);

課堂練習:

1).返回公司工資最少的員工的employee_id,job_id和salary

select employee_id,job_id,salaryfrom employeeswhere salary = (select min(salary)from employees);

2).查詢平均工資高于公司平均工資的部門有哪些

select department_id,avg(salary)from employeesgroup by department_idhaving avg(salary) > (select avg(salary)from employees)order by department_id desc;

3).查詢最低工資大于20號部門最低工資的部門id和最低工資

select department_id,min(salary)from employeeswhere department_id is not nullgroup by department_idhaving min(salary) > (select min(salary)from employeeshaving department_id = 20);

4).返回其它職位中比job_id為’IT_PROG’中最低工資低的員工的員工號,姓名,job_id以及salary

select employee_id,last_name,job_id,salaryfrom employeeswhere salary < (select min(salary)from employeeswhere job_id = ’IT_PROG’);

2.多表查詢/多表聯查

概念:

使用場景,如果一條select語句中需要查詢的列遍布多張數據表,

那么我們就必須使用多表查詢了!!

分類:

等值連接和非等值連接

對于等值連接分方向:

1).內連接:返回多張表中共同滿足的數據,取交集

2).外連接(左、右、滿):返回內連接數據的同時還會繼續返回某張表中不匹配的一些記錄數

3).自連接:從始至終都是一張表,模擬一張表派生為兩張(它們的結構式一模一樣的),自己連自己

等值連接中的內連接:

需求:

查詢所有員工的員工號、員工姓名以及部門的名字?

select employee_id,last_name,department_namefrom employees,departments;

【注意】

以上查詢得到了2889條記錄,很多都是沒有用的數據(臟數據),

出現的原因是:沒有添加有效的連接條件導致的,

而這種現象我們稱為笛卡爾集現象;

我們日后的學習和開發環境中是絕對要避免的!!

如何保證我們之后的多表查詢絕對不會出現笛卡爾集現象?

1).不能不寫連接條件

2).連接條件必須是有效的

思考:如何修改上述的代碼?

代碼實現如下:

select employee_id,last_name,department_namefrom employees,departmentswhere employees.department_id = departments.department_id;

需求:使用內連接來實現

查詢員工的員工號、姓名、部門號、部門名字?

select employee_id,last_name,department_id,department_namefrom employees,departmentswhere employees.department_id = departments.department_id;

以上代碼出錯了,出錯原因:

因為對于department_id這個列在employees和departments兩張表中都存在,

所以需要顯示的告訴編譯器,我從哪張表中獲取數據內容的!

修改代碼如下:

select employee_id,last_name,departments.department_id,department_namefrom employees,departmentswhere employees.department_id = departments.department_id;select employee_id,last_name,employees.department_id,department_namefrom employees,departmentswhere employees.department_id = departments.department_id;

思考:沒有重復的列可以使用名字.的形式來定義嗎?---> 可以的

select employee.employee_id,employee.last_name,employees.department_id,departments.department_namefrom employees,departmentswhere employees.department_id = departments.department_id;

上述代碼運行以及結果方面不存在問題,但是在代碼量上比較冗余!!我們可以使用如下的方式解決...

給名字起別名的方式:

修改代碼如下:

select e.employee_id,e.last_name,e.department_id,d.department_namefrom employees e,departments dwhere e.department_id = d.department_id;

總結:對于多表查詢,如果涉及n張表,至少需要有n-1個連接條件;

非等值連接:

需求:

查詢員工的姓名、薪資以及薪資的等級

select last_name,salary,grade_levelfrom employees,job_gradeswhere salary between lowest_sal and highest_sal;

以上代碼有問題,可以看到各個人的薪資等級,但是由于沒有追加連接連接,還是出現了笛卡爾集現象;

我們需要慎用!一般之后非等值連接用的比較少,而且必須配合等值連接一起用;

附:Python連接與查詢oracle數據庫示例:

import cx_Oracleconn = cx_Oracle.connect(’scott/tiger@localhost:1521/orcl’)cursor = conn.cursor()cursor.execute('SELECT ENAME FROM EMP')row = cursor.fetchone()print row[0],cursor.close()conn.close()

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python常見數據庫操作技巧匯總》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美激情| 精品国产一区二区三区av片| 亚洲另类黄色| 视频一区中文字幕精品| 欧美激情另类| 婷婷亚洲成人| 99国产精品自拍| 日韩天堂在线| 精品视频网站| 亚洲精品第一| 亚洲我射av| 在线一区免费观看| 亚洲国产欧美日本视频| 国产精品99久久免费观看| 丝袜美腿亚洲一区| 亚洲午夜在线| 999国产精品| 成人免费网站www网站高清| 精品理论电影在线| 国产精品成人国产| 欧美一区自拍| 国产乱子精品一区二区在线观看| 石原莉奈在线亚洲二区| 欧美精品羞羞答答| 韩国三级一区| 成人羞羞在线观看网站| 国产在线视频欧美一区| 狠狠躁少妇一区二区三区| 国产aa精品| 在线一区视频观看| 黑丝一区二区三区| 91久久午夜| 99久久亚洲精品蜜臀| 日本麻豆一区二区三区视频| 亚洲一二av| 国产精品a久久久久| 麻豆成人av在线| 免费亚洲婷婷| 视频福利一区| 91超碰国产精品| 亚洲精选成人| 97精品国产福利一区二区三区| 成人国产精品久久| 欧洲一区二区三区精品| 免费久久99精品国产自在现线| 亚洲久久视频| 91亚洲国产高清| 国产精品日本| 国产精品白丝av嫩草影院| 国产福利电影在线播放| 亚洲精品一二三区区别| 日韩精品国产精品| 国产成人77亚洲精品www| 一区在线免费| 日本久久二区| 国产成人在线中文字幕| 亚洲专区视频| 天堂а√在线最新版中文在线| 美美哒免费高清在线观看视频一区二区 | 亚洲综合日韩| 免费日韩成人| 蜜桃视频免费观看一区| 国产精品www.| 亚洲三级精品| 不卡一区综合视频| 国产精品激情| 国产美女精品| 久久蜜桃精品| 久久男人天堂| 国产视频一区二区在线播放| 99国产精品久久久久久久| 精品国产精品国产偷麻豆 | 国产精品99一区二区三| 国产精品女主播一区二区三区| 你懂的国产精品| 婷婷精品在线观看| 在线一区欧美| 成人日韩在线| 国产伦精品一区二区三区视频| 亚洲综合不卡| 一区福利视频| 激情综合网五月| 日韩av免费| 成人综合一区| 国产精品精品| 桃色av一区二区| 国产高潮在线| 福利在线免费视频| 国产一区2区在线观看| 粉嫩av一区二区三区四区五区 | 深夜视频一区二区| 不卡福利视频| 欧美日韩精品免费观看视欧美高清免费大片| 欧美国产亚洲精品| 久久精品欧洲| 女生影院久久| 天堂va欧美ⅴa亚洲va一国产| 亚洲视频国产精品| 国产二区精品| 免费一级片91| 国产乱子精品一区二区在线观看| 国产欧美一级| 精品久久久亚洲| 91一区二区三区四区| 精品国产免费人成网站| 久久美女精品| 国产欧美69| 亚洲欧美激情诱惑| 日韩成人高清| 精品久久97| 国产精品片aa在线观看| 亚洲在线免费| 一区二区三区视频免费观看 | 国产亚洲精品久久久久婷婷瑜伽| 精品中文字幕一区二区三区四区| 亚洲另类黄色| 一区二区精品| 午夜在线精品| 91精品久久久久久久久久不卡| 欧美成人精品午夜一区二区| 亚洲精品在线a| 好吊日精品视频| 在线亚洲观看| 国产成人1区| 精品一区av| 国产成人黄色| av资源新版天堂在线| 精品亚洲a∨| 日韩成人精品一区| 久久免费精品| 福利视频一区| 日本а中文在线天堂| 精品丝袜在线| 久草免费在线视频| 日韩黄色大片| 最新日韩av| 伊人久久大香伊蕉在人线观看热v| 久久精品电影| 亚洲免费影视| 欧美中文高清| 成人黄色av| 亚洲精品网址| 日韩黄色在线观看| 精品中国亚洲| 亚洲国产一区二区在线观看 | 免费在线日韩av| 大香伊人久久精品一区二区| 日韩不卡免费高清视频| 国产视频亚洲| 国产精品久久久久9999高清| 麻豆久久久久久| 久久久久久久久丰满| 男女男精品网站| 麻豆精品一区二区综合av| 99精品一区| 石原莉奈一区二区三区在线观看| 日本成人在线网站| 国产一区二区精品福利地址| 不卡中文一二三区| 亚洲深夜福利在线观看| 老司机精品视频网| 国产成人77亚洲精品www| 亚洲激情中文在线| 麻豆国产欧美一区二区三区 | 麻豆mv在线观看| 国产极品嫩模在线观看91精品| 欧美日本不卡高清| 精品一二三区| 日韩专区视频网站| 欧美日韩网址| 在线看片不卡| 麻豆国产在线| 国产精品成人自拍| 免费在线视频一区| 日韩精品看片| 久久精品网址| 日韩黄色免费网站| 久久国产99| 亚洲午夜久久久久久尤物| 久久精品国产网站| 国产视频一区二| 色综合视频一区二区三区日韩| 亚洲天堂资源| 精品三级国产| 六月婷婷一区| 午夜久久久久| 久久精品91| 亚洲国产综合在线看不卡| 欧美xxxx中国| 国产成人调教视频在线观看| 欧美激情一区| 老司机精品在线| 久久影院一区二区三区| 91精品福利观看| 91在线成人| 国产乱人伦精品一区| 免费在线观看一区| 福利一区二区| 久久久久久久久99精品大| 超碰成人av|