第二章 簡單的查詢

2021-10-24 09:59:57 字數 4732 閱讀 8680

-- 算術運算子 + - * /

1、查詢員工漲了50元工資之後的工資、姓名、入職日期

select sal+50,ename,hiredate,comm from emp

-- 算術運算子優先順序 * / 大於 + - 括號的優先順序最大

2、查詢員工漲了50元工資之後的工資、和年薪、姓名、入職日期

select sal+50,(sal+50)*12,ename,hiredate from emp

3、員工轉正後,月薪上調20%,請查詢出所有員工轉正後的月薪

select sal*1.2 from emp

4、員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的年薪所得(不考慮獎金部分,年薪的試用期6個月的月薪+轉正後6個月的月薪)

select sal*6+sal*1.2*6,ename from emp

5、員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的年薪所得(考慮獎金部分,年薪的試用期6個月的月薪+轉正後6個月的月薪)

select sal*6+sal*1.2*6+ifnull(comm,0),ename from emp

//消除重複行distinct

6、查詢有員工的部門

select distinct deptno from emp

-- 檢視表結構

desc emp

7、查詢20號部門的所有員工資訊

select * from emp where deptno=20

8、查詢工資大於900的員工資訊

select *from emp where 90010、查詢工作是clerk的員工資訊

select * from emp where job='clerk'

11、查詢部門編號不在10部門的員工姓名、部門編號。

select ename,deptno from emp where deptno<>10

select ename,deptno from emp where deptno!=10

//between 下限 and 上限 的使用

12、查詢工資在800~3000之間的員工資訊

select * from emp where sal between 800 and 3000

13、查詢入職日期在1982-12-10~1987-12-11之間的員工資訊

select * from emp where hiredate between '1982-12-10' and '1987-12-11'

// in( 集合列表)判斷要比較的值是否和集合列表中的任何乙個值相等

14、查詢工作在20、30號部門的員工資訊

select *from emp where deptno in(20,30)

//  like 模糊查詢  判斷要比較的值是否滿足部分匹配

//  %表示零個或者多個字元

//  _表示乙個字元

15、查詢名字中有s的員工資訊

select ename ,empno,hiredate from emp where ename like '%s%'

16、查詢名字第二字母為m的員工資訊

select ename,empno from emp where ename like '_m%';

16、查詢名字中包含%m的員工資訊

select ename,empno from emp where ename like '%%m%';-- not  ok

// 轉義escape

select ename,empno from emp where ename like '%/%m%' escape '/'

select ename,empno from emp where ename like '%@%m%' escape '@'

// is null 運算子判斷是否為null

17、查詢獎金為null的員工資訊

select * from emp where comm is null

查詢員工姓名倒數第2個字元為t的員工姓名。

select ename from emp where ename like '%t_'

//  邏輯運算子 and  or  not

// a and b   a和b為true整個表示式才為true 否則為false

18、查詢工作在20、10號部門並且工資大於2000的員工資訊

select *

from emp

where deptno in(10,20) and 2000// or  a or b   a和b都為false整個表示式才為false 否則為false;只要乙個為true就為true

查詢工作在20或者10號部門並且工資大於2000的員工資訊

select *

from emp

where (deptno =10 or deptno =20) and 2000// not 非  一般與is null 、like 、in結合使用

19、查詢不工作在10、20號部門的員工資訊

select  * from emp where deptno not in(10,20)

20、查詢姓名中不包含s的員工資訊

select *from emp where ename not like '%s%'

21、查詢獎金不為null的員工資訊

select * from emp where comm  is not null

// 括號』()』優先於其他操作符

查詢工資超過2000並且職位是 manager或salesman的員工姓名、職位、工資。

select ename,job,sal from emp where 2000查詢部門在10或者20,並且工資在3000到5000之間的員工姓名、部門、工資。

select ename,deptno,sal from emp where (deptno =10 or deptno=20) and (sal between 3000 and 5000)

查詢入職日期在81年,並且職位不是sales開頭的員工姓名、入職日期、職位。

select ename,hiredate,job

from emp 

where (hiredate between '1981-1-1' and '1981-12-31') and job not like 'sales%'

查詢職位為salesman或manager,部門編號為10或者20,姓名包含a的員工姓名、職位、部門編號。

select ename,job,deptno from emp 

where job in('salesman','manager') and deptno in(10,20) and ename like '%a%'

// order by 子句:對結果集中的資料進行排序

-- ①order by 子句必須寫在select語句的最後

-- ②預設公升序排序

-- ③desc 降序 asc 公升序

-- ④order by 可以根據列名、列序號、表示式、列別名進行排序 

-- ⑤按照日期排序:公升序-日期越大越往後

-- ⑥按照字元排序:a~z從小到大

-- ⑦from--where--select-- order by

-- ⑧空值在公升序排列中排在最前面,在降序排列中排在最後。 

-- ⑨order by子句中可以寫沒在select列表**現的列

22、查詢員工姓名,職位,入職日期,工資 按照工資公升序排序

select ename,job,hiredate,sal from emp order by sal  asc

22、查詢員工姓名,職位,入職日期,工資 按照工資降序排序

select ename,job,hiredate,sal from emp order by sal desc

select ename,job,hiredate,sal s from emp order by s desc

22、查詢員工姓名,職位,入職日期,工資 按照姓名降序排序

select ename,job,hiredate,sal s from emp order by ename desc

23、查詢員工姓名,職位,入職日期,工資 先按照工資降序排序,在按照名字進行公升序排序

select ename,job,hiredate,sal from emp order by sal desc,ename

-- 限制行記錄 limit --使用select語句時,經常要返回前幾條或者中間某幾行記錄,可以使用關鍵字limit。語法格式如下

-- limit 寫在order by 之後

-- select 字段列表

-- from 資料來源

-- limit [start,]length;

-- start:開始索引 行索引從0開始 0就是第一行資料,包含開始索引

-- length 行數

24、查詢前五個員工資訊

select * from emp limit 0,5;

select * from emp limit 10;-- 預設start為0

25、查詢前5-10行的員工資訊

select *from emp limit 4,6;

26、查詢工資最高的前三名員工資訊

select  * from emp order by sal desc limit 0,3;

27、查詢工資是第二,第三名的員工資訊

select * from emp order by sal desc limit 1,2;

第二章 select 查詢

檢視當前使用者的表及部分字段資訊 select table name,column name,data type,data length,nullable from user tab columns where table name bonus 檢視當前使用者的表 檢視?select from ta...

第二章 簡單SQL語句

選擇全部列 select from departments 選擇特定的列 select department id,location id from departments 使用數 算符 select last name,salary,salary 300 from employees 操作符優先順...

第二章 C 簡單程式設計

include using namespace std intmain 大小寫英文本母 數字 特殊字元 int a 0inta 0 int a int aconst float pi 3.1415926常量再過程中雖然有名字,但是不能在過程中賦值,要求輸入輸出資料 include using nam...