多表连接查询与高级查询上(第三天)
select * from emp;
select * from dept;
–A{a,b,c} B{d,e,f,g}
–A*B = {ad,ae,af,ag,bd,be,bf,bg,cd,ce,cf,cg}
select ename,job,sal,dname from emp,deptno
–等值連接(只能查詢出符合條件的數據,例如員工表與部門表中能對應的列deptno)
select e.ename,e.job,e.sal,d.dname,e.deptno
from emp e,dept d
where e.deptno = d.deptno and e.sal > 3000
/*
內連接(Inner Join)
語法:
select column_name(s)
from table_name1
inner join table_name2
on table_name1.column_name=table_name2.columu_name
注意:on后面只寫表的關聯條件
*/
select e.ename,e.job,e.sal,d.dname,e.deptno
from emp e
inner join dept d
on e.deptno = d.deptno
where e.sal > 3000
練習:
/*
外連接(outer join)
1.左外連接 left outer join : 將左表中符合條件的數據與不符合條件的數據全查詢出來
2.右外連接 right outer join : 將右表中符合條件的數據與不符合條件的數據全查詢出來
3.全外連接 full outer join(mysql中是不支持的,Oracle中支持) 不常用 查詢出兩表符合條件的數據
注意:outer可以省略
*/
/*
自連接: 將一張表當成兩張表來看,這兩張表是一模一樣的(多表連接)
注意:要想使用自連接,表中的數據一定要有一定的規律
/
/
**函數:**也可以稱為方法,它是一個功能,可以重用
函數:1.自定義函數 2.系統函數(重要) ifnull(comm,0)
IFNULL() 函數用于判斷第一個表達式是否為 NULL,如果為 NULL 則返回第二個參數的值,如果不為 NULL 則返回第一個參數的值。
1.字符串函數
char_length(s) 返回字符串s的字符數
*/
select char_length(“hhhhhh”) from dual –執行結果:6
員工表信息查詢:—ename為列 (第一個為要查詢的,第二個為查詢之后的) emp表名
–concat(s1,s2…sn) 字符串 s1,s2 等多個字符串合并為一個字符串
select concat("sql ","runoob ","gooole ",“facebook”) as concatenatedstring;
–執行結果: sql runoob gooole facebook
–upper(s) 將字符串轉換為大寫
–lowers(s) 將字符串s的所有字母變成小寫字母
–trim(s) 去掉字符串s開始和結尾處的空格
–upper(s) 將字符串轉換為大寫
–lowers(s) 將字符串s的所有字母變成小寫字母
–trim(s) 去掉字符串s開始和結尾處的空格
–substr(s,start,length) 從字符串s的start位置截取長度為length的子字符串
–2.日期函數
–返回系統當前的日期
select curdate() from dual; --執行結果:2021-01-15
–curtime() 返回當前時間
select curtime(); --執行結果:17:12:02
–now() 返回當前日期和時間
select now() --執行結果:2021-01-15 17:13:48
–last_day(d) 返回給給定日期的那一月份的最后一天
select last_day(“2017-06-20”); --執行結果:2017-06-30
3.分組函數
a) 分組函數是對表中一組記錄進行操作,每組只返回一個結果,即首先要對表記錄進行分組,然后再進行操作匯總,每組返回一個結果,分組時可能是整個表分為一組,也可能根據條件分成多組。
b) 分組函數常用到以下五個函數:
i. MIN
ii. MAX
iii. SUM
iv. AVG
v. COUNT
進行B分組
如果多值的列與分組函數混用,select后邊有幾個多值的列,group by后邊要將多值的列都需要寫上,例如下:
分組函數
分組函數中空值處理:
創建數據組
排除組結果
select語句執行過程
總結
以上是生活随笔為你收集整理的多表连接查询与高级查询上(第三天)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫学习——初步了解爬虫
- 下一篇: Qt 蓝牙通讯