簡單查詢、插入、更新、刪除SQL語句
以SCOTT使用者為例
1、查詢SCOTT使用者擁有哪些表
select table_name from user_tables;
2、查詢dept表的所有內容
select * from dept;
3、查詢dept的表結構
desc dept;
4、在dept中增加y一條資料
insert into dept(deptno,dname,loc) values(50,'Development','Beijing');
commit;
注:commit是把插入的資料提交到資料庫中,如果沒有commit,則插入的SQL語句是在計算機的記憶體中,如果遇上斷電故障,出入的資料有可能不會儲存在資料庫中。
5、更新dept的資料
update dept set loc='Shanghai' where deptno=50;
commit;
6、在dept中刪除一條資料
delete from dept where deptno=50;
commit;
7、設定查詢資料的時間格式
中國時間格式:
alter session set nls_date_format='YYYY-MM-DD';
8、查詢當前資料庫的時間
select sysdate from dual;
注:在查詢日期時,sysdate是資料庫當前的日期,dual是oracle資料庫的一個虛表,即不是一個真實存在的表,在查詢用到計算、常量表示式等時可以使用的dual虛表
9、查詢每個員工在公司的工作時間
select ename,round((sysdate-hiredate)/365,0) from emp;
注:round(X,Y):是Oracle資料庫的一個四捨五入的函式,X表示需要進行四捨五入的數,Y表示在哪位上進行四捨五入,如果Y=0表示在個位上進行四捨五入,Y=2表示在小數點後兩位進行四捨五入。
10、查詢每個員工在公司的工作時間,按年數排序
select ename,round((sysdate-hiredate)/365,0) from emp order by round((sysdate-hiredate)/365,0);
或select ename,round((sysdate-hiredate)/365,0) from emp order by 2;
注:order by是排序關鍵字,2表示按照第二列排序,在這裡ename是第一列,round((sysdate-hiredate)/365,0)是第二列,預設按照升序排序。
降序排序:
select ename,round((sysdate-hiredate)/365,0) from emp order by round((sysdate-hiredate)/365,0) desc;
或select ename,round((sysdate-hiredate)/365,0) from emp order by 2 desc;
11、變成中文列名,本土化查詢
select ename as "姓名",round((sysdate-hiredate),0) as "工作年限" from emp order by "工作年限" desc;
注:as是列別名的關鍵字,可以用英文雙引號""裡面的內容來表示該列的別名
12、對查詢出來的員工薪水進行文字說明
select ename || '員工本月工資為:¥' || (sal+1500) as "公司員工本月工資表" from emp order by sal;
注:||是Oracle的連線符,可以把查詢出來的資料和其他字串連線起來,''單引號裡面是字串,可以把裡面的字串輸入
13、過濾重複的資料
select distinct deptno from emp;
14、按照薪水排序查詢工資少於2000
select ename,sal from emp where sal<=2000 order by sal;
15、查詢薪水在某個區間的員工
select ename,sal from emp where sal between 1500 and 2500 order by sal;
或者select ename,sal from emp where sal>=1500 and sal<=2000 order by sal;
16、查詢沒有獎金或工資少於1500的員工
select empno,ename,job,sal,comm from emp where comm is null or sal<=1500;
注:null在Oracle資料庫中是一個特殊的值,它既不表示0,也不表示空,是一個不能確定的未知數
select empno,ename,job,sal,comm,sal+nvl(comm,0) from emp where comm is null or sal<=1500 order by sal+nvl(comm,0);
注:nvl(X,Y)是資料庫的一個內部函式,表示如果X有值,則返回X的值,如果X為null,則返回Y的值
17、檢視姓名中“M”開頭的員工
select ename,job,sal from emp where ename like 'M%';
注:like是where中的模糊查詢,後面字串需要用單雙引號括起來,M%表示以M開頭的所有字元
18、where中的in關鍵字
select ename,job, from emp where job in('SALESMAN','ANALYST','MANAGER');
注:in表示在某個列中的多個值均符合,或者使用or代替,如:
select ename,job from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER';
19、統計公司每個崗位有多少個員工
select job,count(*) from emp group by job;
注:group by:是Oracle資料庫中的分組函式,可以這樣理解,按照工作職位進行分組,然後統計每個職位的人數
count(*):是統計數量的一個函式,這裡是統計公司每個崗位的人數
select job as "崗位",count(*) as "總人數" from emp group by job order by count(*);
20、統計總共要支付員工的薪水
select sum(sal)+sum(nvl(comm,0)) from emp;
注:sum是Oracle資料庫內部的一個函式,即所有數值之和
21、求員工的平均工資
select round(avg(sal),2) from emp;
注:avg資料庫的求平均值函式
22、統計公司所有員工中最高、最低工資及相差多少
select max(sal),min(sal),max(sal)-min(sal) from emp;
注:max統計最大的數值,min統計最小的數值
23、查詢哪些崗位的平均工資高於2500
select job,avg(sal) from emp having avg(sal)>2500 group by job;
注:在使用group by分組時,如有條件限制需要使用having,而不能使用where
having是篩選組,where篩選記錄
1、查詢SCOTT使用者擁有哪些表
select table_name from user_tables;
2、查詢dept表的所有內容
select * from dept;
3、查詢dept的表結構
desc dept;
4、在dept中增加y一條資料
insert into dept(deptno,dname,loc) values(50,'Development','Beijing');
commit;
注:commit是把插入的資料提交到資料庫中,如果沒有commit,則插入的SQL語句是在計算機的記憶體中,如果遇上斷電故障,出入的資料有可能不會儲存在資料庫中。
5、更新dept的資料
update dept set loc='Shanghai' where deptno=50;
commit;
6、在dept中刪除一條資料
delete from dept where deptno=50;
commit;
7、設定查詢資料的時間格式
中國時間格式:
alter session set nls_date_format='YYYY-MM-DD';
8、查詢當前資料庫的時間
select sysdate from dual;
注:在查詢日期時,sysdate是資料庫當前的日期,dual是oracle資料庫的一個虛表,即不是一個真實存在的表,在查詢用到計算、常量表示式等時可以使用的dual虛表
9、查詢每個員工在公司的工作時間
select ename,round((sysdate-hiredate)/365,0) from emp;
注:round(X,Y):是Oracle資料庫的一個四捨五入的函式,X表示需要進行四捨五入的數,Y表示在哪位上進行四捨五入,如果Y=0表示在個位上進行四捨五入,Y=2表示在小數點後兩位進行四捨五入。
10、查詢每個員工在公司的工作時間,按年數排序
select ename,round((sysdate-hiredate)/365,0) from emp order by round((sysdate-hiredate)/365,0);
或select ename,round((sysdate-hiredate)/365,0) from emp order by 2;
注:order by是排序關鍵字,2表示按照第二列排序,在這裡ename是第一列,round((sysdate-hiredate)/365,0)是第二列,預設按照升序排序。
降序排序:
select ename,round((sysdate-hiredate)/365,0) from emp order by round((sysdate-hiredate)/365,0) desc;
或select ename,round((sysdate-hiredate)/365,0) from emp order by 2 desc;
11、變成中文列名,本土化查詢
select ename as "姓名",round((sysdate-hiredate),0) as "工作年限" from emp order by "工作年限" desc;
注:as是列別名的關鍵字,可以用英文雙引號""裡面的內容來表示該列的別名
12、對查詢出來的員工薪水進行文字說明
select ename || '員工本月工資為:¥' || (sal+1500) as "公司員工本月工資表" from emp order by sal;
注:||是Oracle的連線符,可以把查詢出來的資料和其他字串連線起來,''單引號裡面是字串,可以把裡面的字串輸入
13、過濾重複的資料
select distinct deptno from emp;
14、按照薪水排序查詢工資少於2000
select ename,sal from emp where sal<=2000 order by sal;
15、查詢薪水在某個區間的員工
select ename,sal from emp where sal between 1500 and 2500 order by sal;
或者select ename,sal from emp where sal>=1500 and sal<=2000 order by sal;
16、查詢沒有獎金或工資少於1500的員工
select empno,ename,job,sal,comm from emp where comm is null or sal<=1500;
注:null在Oracle資料庫中是一個特殊的值,它既不表示0,也不表示空,是一個不能確定的未知數
select empno,ename,job,sal,comm,sal+nvl(comm,0) from emp where comm is null or sal<=1500 order by sal+nvl(comm,0);
注:nvl(X,Y)是資料庫的一個內部函式,表示如果X有值,則返回X的值,如果X為null,則返回Y的值
17、檢視姓名中“M”開頭的員工
select ename,job,sal from emp where ename like 'M%';
注:like是where中的模糊查詢,後面字串需要用單雙引號括起來,M%表示以M開頭的所有字元
18、where中的in關鍵字
select ename,job, from emp where job in('SALESMAN','ANALYST','MANAGER');
注:in表示在某個列中的多個值均符合,或者使用or代替,如:
select ename,job from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER';
19、統計公司每個崗位有多少個員工
select job,count(*) from emp group by job;
注:group by:是Oracle資料庫中的分組函式,可以這樣理解,按照工作職位進行分組,然後統計每個職位的人數
count(*):是統計數量的一個函式,這裡是統計公司每個崗位的人數
select job as "崗位",count(*) as "總人數" from emp group by job order by count(*);
20、統計總共要支付員工的薪水
select sum(sal)+sum(nvl(comm,0)) from emp;
注:sum是Oracle資料庫內部的一個函式,即所有數值之和
21、求員工的平均工資
select round(avg(sal),2) from emp;
注:avg資料庫的求平均值函式
22、統計公司所有員工中最高、最低工資及相差多少
select max(sal),min(sal),max(sal)-min(sal) from emp;
注:max統計最大的數值,min統計最小的數值
23、查詢哪些崗位的平均工資高於2500
select job,avg(sal) from emp having avg(sal)>2500 group by job;
注:在使用group by分組時,如有條件限制需要使用having,而不能使用where
having是篩選組,where篩選記錄
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29489498/viewspace-1102278/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server-簡單查詢語句SQLServer
- GIS資料的查詢,插入,刪除,更新(ArcEngine)
- AVL樹(查詢、插入、刪除)——C語言C語言
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- SQL Cookbook—插入、更新與刪除SQL
- Oracle 查詢並刪除重複記錄的SQL語句OracleSQL
- 一句簡單的SQL查詢語句的背後...SQL
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- SQL Server-簡單查詢語句,疑惑篇(三)SQLServer
- 最簡單的sql語句(增刪改查統計)SQL
- MySQL的簡單查詢語句MySql
- SQL單表查詢語句總結SQL
- 二叉查詢樹的插入刪除查詢
- SQL查詢語句精華使用簡要(轉)SQL
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- SQL查詢語句 (Oracle)SQLOracle
- SQL server 查詢語句SQLServer
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- 連結串列基本操作(建立,插入,查詢,刪除)-C語言C語言
- 單向迴圈連結串列——查詢、刪除、插入結點
- 二叉排序樹查詢,插入,刪除排序
- SQL Server阻塞查詢語句SQLServer
- SQL查詢語句使用 (轉)SQL
- sql 查詢經典語句SQL
- SQL語句將查詢結果插入到另一張表中SQL
- mysql 跨表查詢、更新、刪除示例MySql
- postgresql dba常用sql查詢語句SQL
- SQL語句查詢表結構SQL
- mysql 查詢建表語句sqlMySql
- SQL查詢語句精華文章(轉)SQL
- oracle、my sql、sql隨機查詢語句OracleSQL隨機
- hibernateHQl批量插入、刪除、更新
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- 使用遊標迴圈進行SQL更新插入的SQL語句SQL
- 雙向連結串列————查詢、刪除、插入結點
- 用SQL語句增加刪除修改欄位SQL
- mysql查詢效率慢的SQL語句MySql