sql語句之from子句


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

select  字段名  from  表名;

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

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

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

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

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

select  ID , FIRST_NAME , SALARY from  s_emp ;

如何查詢表中所有字段對應的值

標准寫法:一個一個列出來

簡單寫法:*號可以代替所有的字段名(但是這樣不知道里面有哪些字段)

select *  from  表名;

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

+ -  *  / 

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

select salary , salary - 100  from  s_emp ;

這樣輸出后,底層記錄的salary是沒有變化的

 

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

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

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

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

給字段起別名

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

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

“別名”會原樣顯示所取的別名

演示:一年按照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 ;聯合排重


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM