1. 程式人生 > >oracle 單表查詢新增各種查詢條件

oracle 單表查詢新增各種查詢條件

操作資料庫中最常就是查詢語句

但是在查詢的通常需要新增條件

---emp  員工表
----dept  部門表
----salgrade  工資等級表
--查詢語句:
/*
語法:
select   列名列表
from 表名
[where 查詢條件]
[order by  列名 ASC|DESC]
*/
--查詢所有行所有列的資料
select * from emp;
--
select empno,ename,job,mgr,hiredate,sal,comm,deptno
from emp;
--查詢部分列:
select empno,ename,job,sal,deptno
from emp;
--查詢員工的年薪(編號,姓名,職位,年薪)
select empno,ename,job,(sal*12)
from emp;
--給列起別名  [as] 別名
select empno,ename,job,(sal*12) as "year Sal"
from emp;
-------------------部分行的資料
--查詢員工工資高於2000的資訊(編號,姓名,職位,工資)
select empno,ename,job,sal
from emp
where sal>2000;

--查詢員工資訊(編號:姓名)  7369:SMITH  CONCAT(str,str2)
select empno,ename,concat(concat(empno,':'),ename) empinfo
from emp;
--||:連線符
select empno||':'||ename empinfo
from emp;

-----------any,all
--查詢員工編號為7369,7788,7844中任意一個的資訊
select empno,ename
from emp
--where empno in(7369,7788,7844);
where empno=any(7369,7788,7844);
---------------------------------------order by 
--查詢員工資訊
select empno,ename,job,sal,deptno
from emp;
--查詢員工資訊,並按工資升序顯示
select empno,ename,job,sal,deptno
from emp
order by sal desc;
--查詢員工資訊,每個部門中工資升序顯示(先按部門排序升序,然後每個部門中的工資升序顯示)
select empno,ename,job,sal,deptno
from emp
order by deptno,sal desc;

--查詢員工的職位  --去除相同的資料:distinct  去除查詢結果中的重複行
select distinct job from emp;

聚合函式和分組

--查詢
/*
select 列名列表
from 表名
[where 查詢條件]  --分組前的條件篩選
[group by 分組列
[having 分組後的條件篩選]
]
[order by 列名 asc|desc]

------------
where -->group by -->having
1、where 是分組前的資料篩選,having分組後的資料的篩選
2、having可以使用聚合函式
3、having不能獨立使用,一定與group by 一起使用
------------------分組的注意事項
1、分組查詢與聚合函式一起使用,
2、不能和可以返回多行的列一起查詢
*/
--聚合函式: 對多行資料操作返回一個結果
/*
sum:求和
avg:平均值
sum,avg:只能應用於數值型別的列
count:統計個數
max:最大值
min:最小值
注意:
1、忽略null值
2、查詢時,使用聚合函式,則不能和可能返回多行的列一起查詢 
3、聚合函式不能使用在where子句中
*/
--計算員工的總工資:
select sum(sal)sumSal from emp;
--計算平均工資
select avg(sal) avgSal from emp;
--統計公司員工的人數(不要寫包含null的列)  主鍵和rowid
select count(rowid) from emp;
select rowid,empno from emp;
--最高工資:
select max(sal) maxSal,min(sal) minSal from emp;
--分組查詢

--統計每個部門中人數
select count(rowid),deptno
from emp
group by deptno;
--查詢每個職位的員工人數
select count(rowid),job
from emp
group by job;
--查詢每個領導的下屬人數 mgr
select count(rowid),mgr
from emp
group by mgr;
--查詢每個部門中最高工資 
select deptno,max(sal)
from emp
group by deptno;
--統計每個部門中工資高於2000的員工人數
select deptno,count(rowid)
from emp
where sal>2000
group by deptno;

--查詢總人數超過6人的部門
select deptno,count(rowid)
from emp
group by deptno
having count(rowid)>6;
--查詢每個部門中工資高於 2000的員工人數,顯示人數超3人的部門
select deptno,count(rowid)
from emp
where sal>2000
group by deptno
having count(rowid)>3;

相關推薦

oracle 查詢新增各種查詢條件

操作資料庫中最常就是查詢語句但是在查詢的通常需要新增條件---emp  員工表----dept  部門表----salgrade  工資等級表--查詢語句:/*語法:select   列名列表from 表名[where 查詢條件][order by  列名 ASC|DESC]*/--查詢所有行所有列的資料se

[轉抄]oracle查詢去重(效率比較高的一種方式)

sel select 單表查詢 效率 查詢 rownum 說明 acl 分組 1 select 2 * 3 from 4 ( 5 select 6 a.*, rownum r_n 7

Oracle查詢(一)

1.1獲取表中所有的行與列 若領導要看所有員工的資訊,大家應該都會用,直接select * 就可以了。 1.2從表中檢索出部分行   例如我們只想看job是‘salesman’的員工,則增加判斷條件 where job='SALESMAN'(此處必須是大寫,oracle的關鍵字、表名、使用

Oracle查詢(二)

1.1在where子句中引用取別名的列        有時候在做報表的時候,會加上一些條件篩選,直接在別名上加判斷會比在列名上加判斷更加直觀。例如我們要查詢工資大於1500的人的工資和提成。 寫法如下: select * from (select SAL AS 工

Oracle-查詢

最簡單查詢方式 查詢表中所有記錄的所有欄位資料: select */1 from 表名; select * from dep; 查詢制定欄位 只查詢emp表中員工的 ID,姓名,工資,獎金這四個欄位 select empid,ename,esalary,comm fro

以面向物件的思想實現資料新增查詢,JDBC程式碼超詳細

以面向物件的思想編寫JDBC程式,實現使用java程式向資料表中新增學生資訊,並且可以實現給定身份證號查詢學生資訊或給定準考證號查詢學生資訊。 歡迎工作一到八年的Java工程師朋友們加入Java高階交流:854630135 本群提供免費的學習指導 架構資料 以及免費的解答 不懂得問題都可以在本群提出來

C#雜湊實現新增學生查詢全部學生資訊

using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tas

ORACLE連線與子查詢

Oracle表連線 SQL/Oracle使用表連線從多個表中查詢資料 語法格式: select 欄位列表 from table1,table2 where table1.column1=

oracle分割槽的使用和查詢

select object_name,object_type,tablespace_name,sum(value) from v$segment_statistics where statistic_name IN ('physical reads','physical write','logical rea

PyCharm IDE 連結sqlite、建新增查詢資料

控制檯建立資料庫DB檔案 開啟pycharm IDE 前提得安裝sqlite哦! 點選-安裝驅動 直到沒有提示 找到剛才建立的資料庫feedback.d

oracle建立新增主鍵,設定主鍵自增長

oracle序列詳解和建立自增主鍵 Oracle序列主鍵 序列: 是oacle提供的用於產生一系列唯一數字的資料庫物件。 l 自動提供唯一的數值 l 共享物件 l 主要用於提供主鍵值

Thingworx學習筆記二(資料新增及相關校驗)

Thingworx表單資料新增及相關校驗1、給DataTable建立services事件,如addClassDataTable。   1> 開啟建立的DataTable,然後在左側點選Services,在上方選擇Add My Service,填寫service的Name

Oracle建立以及新增欄位備註

(一)檢測插入資訊的時候必須制定的欄位  STAT_CDE  VARCHAR2(20) CHECK (STAT_CDE in ('S','C','A','E')), 表示只在S C A E (二)設定主鍵以及非空 ID VARCHAR2(15) PRIM

Oracle查詢語句

類型 edate pos 顯示 inf 指定字段 blog 虛擬表 font 使用Oracle 數據庫的測試表單: --單表查詢數據 語法 select (查詢) * 所有 /查詢的字段,多個字段 ,隔開 from (來自) 表名稱 --查詢所有員工的信息 s

oracle數據庫之查詢

數據 方法 第一個 常用 單表 分組查詢 創建表 如果 value 作為一合格的測試人員對數據庫的單表查詢、多表查詢、分組查詢、子查詢等等這些基本查詢方法還是要會的。不然到企業中,容易被一些人鄙視,或者說如果數據庫學不好,表查不明白,那麽對自己能力來說也是一種侮辱,因為

Oracle資料庫——查詢(select)操作——查詢

最簡單查詢方式 查詢表中所有記錄的所有欄位資料: select */1 from 表名; select * from dep; 查詢制定欄位 只查詢emp表中員工的 ID,姓名,工資,獎金這四個欄位 select empid,ename,esalary,com

MySQL:記錄的增刪改查、查詢、約束條件、多查詢、連、子查詢、pymysql模組、MySQL內建功能

資料操作 插入資料(記錄): 用insert; 補充:插入查詢結果: insert into 表名(欄位1,欄位2,...欄位n) select (欄位1,欄位2,...欄位n) where ...; 更新資料update 語法: update 表名 set 欄位1=

MySQL:05---DQL查詢(指定、多條件、between..and、like萬用字元、空值、limit、去重合並查詢

一、查詢指定欄位 1. 查詢所有欄位 select  *  from  表名; 2.查詢指定欄位 select  欄位1,欄位2...   from  表名; 二、條件查詢 概念:條件查詢可通過wher

ORACLE查詢儲存到新新增id自增觸發器

先把需求明確一下,這次需要從其他兩個表(T1,T2)中查詢資料,將其中兩個欄位相同的資料插入到另一張表中(T3),T3的id為主鍵不能為空由於使用的是oracle,不能把T3的id設定成自增長就多出許多

Oracle查詢及常用函式

1.語法:   select 欄位列表   from 表名   [where 查詢條件]   [group by 分組]   [having 分組條件]   [order by 排序] select * 代表查詢所有的欄位 select