oracle基礎教程(第二天)
SQL>delete from student where xh='A001'; 刪除一條記錄
SQL>truncate table student; 刪除表中的所有記錄,表結構還在,不寫日誌,無法找回刪除的記錄,速度快 簡單的查詢語句 查看錶結構 SQL>desc dept; 查詢所有列 SQL>select * from dept; 查詢指定列 SQL>select ename,sal,job,deptno from emp; 如何取消重複行 SQL>select distinct deptno,job from emp; 使用算術表示式顯示每個僱員的年工資 SQL>select sal*12+nvl(comm,0)*12 "年工資",ename,comm from emp; 使用列的別名 SQL>select ename "姓名",sal*12 "年收入" from emp; 如何處理null值 使用nvl函式來處理 如何連線字串(||) SQL>select ename || ' is a ' || job from emp; 使用where子句 如何顯示工資高於3000的員工? SQL>select * from emp where sal >=3000; 如何查詢1982.1.1後入職的員工? SQL>select * from emp where hiredate > '1-1月-1982'; 如何顯示工資在2000到2500的員工情況? SQL>select ename,sal from emp where sal between 2000 and 2500; 如何使用like操作符 %:表示任意0到多個字元 _:表示任意單個字元 如何顯示首字元為S的員工姓名和工資? SQL>select ename,sal from emp where ename like 'S%'; 如何顯示第三個字元為大寫O的所有員工的姓名和工資? SQL>select ename,sal from emp where ename like '__O%'; 在where條件中使用in 如何顯示empno為123,345,800...的僱員情況? SQL>select ename,empno from emp where empno in (123,345,7844);
使用is null的操作符 如何顯示沒有上級的僱員的情況? SQL> select * from emp where mgr is null; 使用邏輯操作符號 查詢工資高於500或是崗位為MANAGER的僱員,同時還要滿足他們的姓名首字母為大寫的J SQL> select * from emp where (sal > 500 or job = 'MANAGER') and ename like 'J%'; 使用order by子句 如何按照工資的從低到高的順序顯示僱員的資訊? SQL> select * from emp order by sal; 按照部門號升序而僱員的工資降序排列 SQL> select * from emp order by deptno,sal desc; 使用列的別名排序 SQL>select ename,sal*12 "年薪" from emp order by "年薪"; oracle表複雜查詢 - 單表查詢 說明:在實際應用中經常需要執行復雜的資料統計,經常需要顯示多張表的資料,現在我們給大家介紹較為複雜的select語句 資料分組函式-max,min,avg,sum,count 如何顯示所有員工中最高工資和最低工資? SQL>select max(sal),min(sal) from emp; 顯示所有員工的平均工資和工資總和? SQL> select sum(sal),avg(sal) from emp; 計算共有多少員工? SQL> select count(*) from emp; 擴充套件要求: 請顯示工資最高的員工的名字,工作崗位 SQL> select ename,sal from emp where sal = (select max(sal) from emp); 請顯示工資高於平均工資的員工資訊 SQL> select * from emp where sal > (select avg(sal) from emp); group by和having子句 group by用於對查詢的結果進行分組顯示 having子句用於限制分組顯示結果 如何顯示每個部門的平均工資和最高工資 SQL>select avg(sal),max(sal),deptno from emp group by deptno; 顯示每個部門的每種崗位的平均工資和最低工資 SQL>select avg(sal),min(sal),deptno,job from emp group by deptno,job; 顯示平均工資低於2000的部門號和他的平均工資 SQL> select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)<2000; 對資料分組的總結 1.分組函式只能出現在選擇列表、having、order by子句中 2.如果在select語句中同時包含有group by,having,order by,那麼他們的順序是group by,having,order by 3.在選擇列中如果有列、表示式和分組函式,那麼這些列和表示式必須有一個出現在group by子句中,否則會出錯。 如select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)<2000; 這裡deptno就一定要出現在group by中。 oracle表複雜查詢 - 多表查詢 說明 多表查詢是指基於兩個和兩個以上的表或是檢視的查詢,在實際應用中,查詢單個表可能不滿足你的需求,(如顯示sales部門位置和其員工的姓名),這種情況下需要使用到(dept表和emp表) 顯示僱員名,僱員工資及其所在部門的名字【笛卡爾積】 規定:多表查詢的條件是 至少不能少於表的個數-1 SQL>select t1.ename,t1.sal,t2.dname,t2.deptno from emp t1,dept t2 where t1.deptno=t2.deptno; 如何顯示部門號為10的部門名、員工名和工資 SQL>select t1.ename,t1.sal,t2.dname,t2.deptno from emp t1,dept t2 where t1.deptno=t2.deptno and t1.deptno=10; SQL>select t1.dname,t2.ename,t2.sal from dept t1,(select ename,sal,deptno from emp where deptno=10) t2 where t1.deptno=t2.deptno; 顯示各個員工的姓名,工資,及其工資的級別 SQL>select t2.grade,t1.ename,t1.sal from emp t1,salgrade t2 where t1.sal between t2.losal and t2.hisal; 擴充套件要求: 顯示僱員名,僱員工資及其所在部門的名字,並按部門排序。 SQL>select t2.ename,t2.sal,t1.dname,t1.deptno from dept t1,emp t2 where t1.deptno=t2.deptno order by t1.deptno; 自連線 自連線是指在同一張表的連線查詢 顯示某個員工的上級領導的姓名 SQL>select a1.ename,a1.mgr,a2.ename from emp a1,emp a2 where a1.mgr=a2.empno; 什麼是子查詢 子查詢是指嵌入到其他sql語句中的select語句,也叫巢狀查詢 單行子查詢是指只返回一行資料的子查詢語句 請思考,如何顯示與smith同一部門的所有員工。 SQL>select * from emp where deptno=(select deptno from emp where ename='SMITH'); 多行子查詢是指返回多行資料的子查詢語句 請思考,如何查詢和部門10的工作相同的僱員的名字,崗位,工資和部門號 SQL>select ename,job,sal,deptno from emp where job in (select job from emp where deptno=10); 在多行子查詢中使用all操作符 請思考,如何顯示 工資比部門30的所有員工的工資高的員工的姓名,工資和部門號 SQL>select * from emp where sal > all (select sal from emp where deptno=30); 擴充套件要求: 大家想想還有沒有別的查詢方法。 SQL>select * from emp where sal > (select max(sal) from emp where deptno=30); 在多行子查詢中使用any操作符 請思考,如何顯示工資比部門30的任意一名員工的工資高的員工的姓名,工資和部門號 SQL>select * from emp where sal > any (select sal from emp where deptno=30); 擴充套件要求: 大家想想還有沒有別的查詢方法。 SQL>select * from emp where sal > (select min(sal) from emp where deptno=30);
多列子查詢 多列子查詢是指查詢返回多個列資料的子查詢語句 請思考如何查詢與smith的部門和崗位完全相同的所有僱員 SQL> select * from emp where (deptno,job)=(select deptno,job from emp where ename='SMITH'); 在from子句中使用子查詢 請思考,如何顯示高於自己部門平均工資的員工的資訊 SQL>select * from emp t1,(select deptno,avg(sal) avg_sal from emp group by deptno) t2 where t1.sal>t2.avg_sal and t1.deptno=t2.deptno; 這裡需要說明的是當在from子句中使用子查詢的時候,該子查詢會被作為一個檢視來對待,因此叫做內嵌檢視。黨在from子句中使用子查詢時,必須給子查詢指定別名。 分頁查詢 oracle分頁一共有三種方式: 1、rownum分頁 (select * from emp) 2、顯示rownum[oracle分配的] SQL>select a1.*,rownum rn from (select * from emp) a1; 3、按rownum分頁查詢 SQL>select * from (select a1.*,rownum rn from (select * from emp) a1) where rn<=10; SQL>select * from (select * from (select a1.*,rownum rn from (select * from emp) a1) where rn<=10) where rn>=6; 4、幾個查詢變化 a.指定查詢列,只需要修改最裡層的子查詢 b.如何排序,只需要修改最裡層的子查詢 用查詢結果建立新表 這個命令是一種快捷的建表方法 SQL>create table mytable(id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from emp; 合併查詢 有時候在實際應用中,為了合併多個select語句的查詢結果,可以使用集合操作符號,union(合併去重),union all(合併不去重),intersect(取交集),minus(取差集)。比and,or的效率高很多。 在oracle中操作資料-使用特定格式插入日期值 如何插入列帶有日期的表,並按照年-月-日的格式插入。 SQL>insert into emp values('9996','ROSE','CLERK','7902',to_date('1993/7/22','yyyy/mm/dd'),'1000.00','200.00','10'); SQL>select * from emp where to_char('RKSJ','yyyy-mm-dd') >='2016-05-12'; 在oracle中操作資料-使用子查詢插入資料 當使用values子句時,一次只能插入一行資料,當使用子查詢插入資料時,一條insert語句可以插入大量的資料。當處理行遷移或者裝載外部表的資料到資料庫時,可以使用子查詢來插入資料。 SQL>insert into kkk (myid,myname,mydept) select empno,ename,deptno from emp where deptno = 10; 在oracle中操作資料-使用子查詢更新數據 使用update語句更新資料時,既可以使用表示式或者數值直接修改資料,也可以使用子查詢修改資料 希望員工scott的崗位、工資和補助與smith員工一樣。 SQL>update emp set (job,sal,comm) = (select job,sal,comm from emp where ename = 'SMITH') where ename = 'SCOTT';
相關推薦
oracle基礎教程(第二天)
一、oracle表的管理 表名和列的命名規範 1.必須以字母開頭 2.長度不能超過30字元 3.不能使用oracle的保留字(關鍵字) 4.只能使用如下字元 A-Z,a-z,0-9,$,#等 oracle支援的資料型別 1.字元型 char 定長 最大2
oracle基礎教程(第一天)
一、做專案該用什麼資料庫要考慮哪些方面? 1.專案的規模 2.負載量多大,使用者多大 3.成本 4.安全性 小型資料庫(access、foxbase) 1.負載量小,使用者量在1000人以內,比如留言板,小型資訊系統 2.成本在千元左右 3.對安全性要求不高 中型資料庫
python基礎教程(第二版)---1.4數字和表達式
pan com -1 一行 img 分享 cnblogs 第二版 輸出結果 一、除法 二、取余運算 對於整數: 對於浮點數: 2.75/0.5是為了說明除法結果是5.5 取余的時候(2.75-5*0.5)==0.25就得到了第一行的輸出結果0.25啦 這
嵌入式linux基礎教程(第二版)第一章
linux已經成為很多裝置的作業系統,手機、DVD播放器、電子遊戲機、數碼相機、網路交換機和無線網路裝置、機頂盒、高清電視、藍光DVD播放器、汽車的資訊娛樂中心和很多日常使用的電器等都在使用linux作業系統。linux已經成為很多裝置的嵌入式作業系統 一.為
python基礎教程(第二版)
第十章 自帶電池 匯入模組: import sys sys.path.append('c:/python27')//告訴程式到這裡找模組 1.1. 若模組是一個程式,則在匯入時只執行一次,後面匯入不在執行,修改後可以用reload函式重新匯入,這
oracle基礎教程(第五天)管理索引、許可權和角色
期望目標 1.掌握維護oracle資料完整性的技巧 2.理解索引概念,會建立索引 3.管理oracle的許可權和角色 維護資料的完整性 資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則。在oracle中,資料完整性可以使用約束、觸發器、應用程式(過程、函式)三種方法
【自學筆記】0基礎自學機器學習 (第二天)
定義:機器學習是人工智慧的一個分支領域,主要關於構造和研究可以從資料中學習的系統。 小不忍則亂大謀,不可急功近利,工欲善其事,必先利其器,得能吃苦。 &
Python入門基礎(第二天):基本資料型別
一、運算子 1、算數運算子 2、比較運算子 3、邏輯運算子 4、賦值運算子 5、成員運算子 二、基本資料型別 1、數字 通常的int, long,float,long等等都被支援。而且會看你的具體數字來定義變數的型別。 2、字串 單引
python基礎(第二天)
今天是2019年1月1日,也是我開始python學習之旅的第二天,希望堅持學習下去,學有所成吧!先總結下今天的知識點: 1、編碼初識: 最早使用ASCII碼,一個位元組8位,可以表示256個字元,對於大小寫字母、數字、特殊字元已經足夠使用,隨著計算機的普及,中文就有9萬多個,所以明顯不夠用,後來推出了
vue的一些坑(第二天)
作用 小童 過濾 文本 click rip col 官方 小數點 首先啊感謝一位小童鞋的指出其實我寫的這些內容算不上坑,只是平時使用的時候的一點小問題,不過只是個名字啦!再次致謝 1:兩個簡寫的命令 v-bind:class可以簡寫為 :class v-on:click可
python基礎教程(十一)
list repeat stop row lis flatten ror 教程 [1] 叠代器 本節進行叠代器的討論。只討論一個特殊方法---- __iter__ ,這個方法是叠代器規則的基礎。 叠代器規則 叠代的意思是重復做一些事很多次---就像在循環中做的
Spring框架(第二天)
boolean 反射 rman pro actor . jdk 文件 開源框架 優勢 一、 註入 a) set i. JDK 1.八種基本類型(+包裝類)+String <bean id="User" class="com.dsl.tes
Linux學習入門(第二天)--------基本的系統命令
安裝的映象版本是ubuntu 14.04! 1.sudo apt-get 命令 例如:sudo apt-get install sl //安裝一個名為sl的小程式 終
Angular 基礎教程(7.0)
課程亮點 按照初學者的學習路線規劃內容 所有程式碼均採用 Angular 7.0 版本 覆蓋日常開發中使用頻率最高的特性 To B、To C 型介面,移動端 PWA 全面覆蓋 附贈 3 個附錄,對比 5.0、6.0、7.0 版本 讀者反饋 《Angular 初學者快速
Odoo 自定義Widgets 基礎教程(章節1)
大家好, 此次,我們主要講解 Odoo 中的Widgets。 網上、論壇裡很多提及Widget的文章,但很少說Odoo自定義Widget 是如何實現的,這一直是大家所苦惱的地方。本章,將對Odoo中的Widget 進行基礎講解。 首先, Widget【掛件】產生的目的,是為了方便後端開發人員在不熟悉Ja
LeetCode刷題之路(第二天)
5.最長迴文子串 給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為1000。 示例 1: 輸入: “babad” 輸出: “bab” 注意: "aba"也是一個有效答案。 示例 2: 輸入: “cbbd” 輸出: “bb” 這個演算
小米VR一體機遊戲開發日記(第二天)
unity裝了一個晚上終於裝完了,不知道為啥要裝個VS 2017,搞得我完全不知道入口在哪?在“程式”裡面找半天沒找到在哪裡開啟,後來在安裝資料夾裡找到了unity.exe,執行居然報錯,什麼“應用程式****報錯 ”之類的。百度了一下,缺了一些dll,在這個地方找到了,ht
長文 | LSTM和迴圈神經網路基礎教程(PDF下載)
來自公眾號 機器學習演算法與Python學習目錄:前言前饋網路回顧迴圈網路時間反向傳播BPTT梯
不抱怨21天實踐手冊(第二天)
【每日箴言】 你什麼時候放下,什麼時候就沒有煩惱。 一、路過心上的故事: 有這樣一個古寺,寺裡的老方丈養了一隻狗,取名叫“放下”,於是每天早晚,老方丈都會拿著一隻碗,喊:‘放下’!‘放下’!叫這隻狗來吃飯。弟子很奇怪,就問他為什麼給狗取了這麼一個名字,方
Android菜鳥App開發,第一個App(第二天)
package com.noodles.timelocus.view; import android.content.Context; import android.content.Intent; import android.graphics.Canvas; import android.graphics