sql語句之from子句

 如何從表中查詢一個字端的數據

select  字段名  from  表名;算法

演示:從s_emp表中把月薪查詢出來

select  salary  from s_emp ; (分號表明結束)

如何從表中查詢多個字段的內容

select  字段名1 ,字段名2  from  表名;sql

演示:把s_emp表中的id  first_name salary的數據查詢出來

select  ID , FIRST_NAME , SALARY from  s_emp ;

如何查詢表中全部字段對應的值

標準寫法:一個一個列出來oracle

簡單寫法:*號能夠代替全部的字段名(可是這樣不知道里面有哪些字段)函數

select *  from  表名;3d

字段的數學運算(sql的數學運算)

+ -  *  / blog

演示:把s_emp 表中工資和工資減去100以後的工資顯示出來

select salary , salary - 100  from  s_emp ;

這樣輸出後,底層記錄的salary是沒有變化的字符串

 

以salary+100算出一年的年薪:數學

select salary , 12*(salary + 100) from  s_emp ;

一個月按照22天算,計算天天的薪水:it

select salary , salary / 22  from  s_emp ;(除數不會取整,和C不同)

給字段起別名

select  字段名1 ,字段名2  別名  from  表名;io

一個字段或者表達式只能有一個別名(也能夠沒有),別名會自動處理成大寫

「別名」會原樣顯示所取的別名

演示:一年按照13個月計算  來計算每一個人的年薪,列出每一個月的月薪

select salary , salary*13  yearsal  from s_emp ;

兩個別名會報錯:

sql中如何表達字符串

sql中的字符串使用單引號表達(C裏使用雙引號表達字符串字面值)

‘ ‘   ‘  ‘   ‘a’  ‘hello world’ 都是字符串

select  first_name  from s_emp ;也是字符串 

如何拼接字符串

字符串拼接符:| |(只針對oracle,其餘的能夠查一下)

演示:

select first_name , last_name  from  s_emp ;

把名字拼接到一塊兒:

select first_name || last_name  name  from s_emp ;

在姓名之間拼接一個單引號

(在C語言中表達‘%’是%%,一個%就是佔位符,%d;這裏是同樣的,用兩個 ’ 表示單引號)

select first_name || ‘ ’’ ’ || last_name name  from  s_emp ;

在姓名之間拼接兩個單引號

select first_name || ‘ ‘’ ’ || ‘ ‘’ ’|| last_name  name from  s_emp ;

或者:

select first_name || ‘ ‘’ ‘’ ’ || last_name name  from  s_emp ;

空值(NULL值)的處理

空值(NULL值)和任何值作運算結果都是NULL

演示:一年按照12個月進行計算,考慮提成,總共的年薪是月薪乘以12,再加上提成(表中已有的的提成是COMMISSION_PCT)    

salary*12+salary*12*(COMMISSION_PCT / 100)

或者:

salary*12*(1+COMMISSION_PCT / 100)

空值處理函數:nvl ( par1 , par2 ) 

能夠處理任何類型的數據,但要求par1和par2的類型保持一致

這個函數,當par1爲空時,返回par2的值;par1不爲NULL時,返回par1的值

NULL要儘早處理

演示:

select  salary , commission_pct , nvl ( salary*12*(1+commission_pct/100) , 0 )  from  s_emp ;

是不行的,要儘早處理,不能等着運算完再處理

 

正確寫法:

select  salary , commission_pct , salary*12*(1+nvl ( commission_pct , 0 ) /100)  from  s_emp ;

 

演示:把每一個員工的id  first_name manager_id顯示出來,若是manager_id是NULL,就把manager_id顯示成-1

select id, first_name, manager_id, nvl(manager_id, -1)

數據的排重  distinct(封裝的算法咱們不用瞭解)

dstinct會把全部重複的數據剔除

聯合排重(多字段排重,要兩個字段都相同的纔會剔除)

演示:

 select  salary from  s_emp ; 查出全部薪水

select  distinct  salary from  s_emp ; 把重複的剔除

 select  distinct  title , salary  from s_emp ;聯合排重

相關文章
相關標籤/搜索