sql語句的幾個常用函式總結
結構化查詢語言(Structured Query Language,簡稱SQL語句)從單個函式的使用上來看,較為簡單,但是當表與表巢狀、幾個函式組合使用,即可實現強大的資料查詢功能,能從資料庫中快速便捷地獲取需要的資訊。
本文總結了sql語句中常用的5個函式,主要包含join連線函式、limit函式(MySQL)、group by分組函式、取餘取整函式和like模糊匹配函式。
1.join連線
表連線分為內連線(INNER JOIN)、外連線(LEFT JOIN、RIGHT JOIN),在sql中如果直接使用join連線表,預設為inner join.
連線方式 | 解釋 |
---|---|
INNER JOIN | 兩邊表同時有對應的資料,即任何一邊缺失資料就不顯示。 |
LEFT JOIN | 讀取左邊資料表的全部資料,即便右邊表無對應資料。 |
RIGHT JOIN | 讀取右邊資料表的全部資料,即便左邊表無對應資料。 |
示例:有員工部門表dept_emp(emp_no,dept_no),員工資訊表employees,兩張表都具有to_date屬性表示當前日期。另外還有一張部門資訊表departments(dept_no,dept_name)
(1)查詢所有員工的姓名和部門編號,暫未劃分到部門的不顯示部門。對employees表進行left join操作。還可再次利用left join查詢到部門名稱。
select e.last_name,e.first_name,d.dept_no,dp.dept_name from employees e left join dept_emp d on e.emp_no = d.emp_noleft join departments dp on dp.dept_no = d.dept_no;
(2)加入限制條件–當前日期to_date=’2018-3-25’,所有員工的姓名和部門編號。注意連線表時,**需要對連線的表dept_emp,employees表分別進行當前日期的限制**dept_emp.to_date=2018-3-25’ and employees.to_date=2018-3-25’.
select e.last_name,e.first_name,d.dept_no from employees e left join dept_emp d on e.emp_no = d.emp_no and d.to_date=2018-3-25' and e.to_date=2018-3-25'.;
2.limit函式
limit函式是MySQL資料庫提供的用來限制讀取記錄的條數的函式,常用語句為select .. from ..where …limit n,m
limit n,m 查詢的是從n+1條開始的m條資料
limit 0,1 讀取第一條資料
SELECT * FROM employees ORDER BY hire_date DESC LIMIT 2,2;讀取按hire_date倒序排序後的第3,4條資料
若使用Oracle資料庫,想獲取特定條數的資料記錄需要在原有sql語句上進行改進,通過行號row_number來實現特定條數的記錄的查詢。
SELECT * FROM
(SELECT A.*,rownum rn
FROM (SELECT * FROM employees ORDER BY hire_date DESC) A
WHERE rownum > 2)
WHERE rn < 5
附加一點日期排序的知識,對日期型資料,倒序排序結果為2018-4-8,2018-3-8,…
max(hire_date) 可表示最晚的一天2018-4-8
3.group by 分組函式
group by 是按表物件中的某一屬性或者屬性構成的表示式進行分組。通常的查詢語句為
select…from…where…group by A having…
具體的應用示例如下:
titles表(emp_no,title,from_date,to_date)
(1)查詢表titles中數量不小於2的title、title出現個數
select title,count(title) as t from titles group by title having count(title)>=2
(2)升級版,加入限制,要求查詢表titles中數量不小於2的title、title出現個數時忽略重複的emp_no.
利用distinct關鍵字對重複的emp_no欄位進行篩選後求取按title欄位分組後title對應的數目。
值得注意的是,having的操作物件是group by+屬性之後的查詢得到的title,count(distinct(emp_no))構成的表。
select title,count(distinct(emp_no)) as t from titles group by title having t>=2
(3)group by A,B表示相同欄位A,B的分為一組
group by from_date,to_date 表示具有相同from_date,to_date取值的記錄分為一組。
4.取餘、取整函式
(1) %取餘、mod函式取餘
牛客網中sql3.7.9的取餘表達為%,A%B取餘,表示求A除以B後的餘數。SQK SERVER資料庫中採用的是%.
Oracle中有mod取餘函式,mod(A,B)求取A除以B的餘數
(2)取整函式
floor(x):取小於等於x的最大整數,地板取整函式
ceiling(x):取大於等於x的最小整數,天花板取整函式
5.like函式
like函式後接萬用字元,進行模糊匹配,常用語句為:select .. from .. where A like 萬用字元
值得注意的是,sql語句通常不區分大小寫,但萬用字元中的字元區分大小寫。
以下萬用字元經常單獨或組合使用:
萬用字元 | 含義 | 用法示例 |
---|---|---|
% | 百分號表示替代一個或多個字元 | ‘Ne%’查詢屬性A的取值以Ne開頭的記錄,’%Ne%’查詢屬性A的取值包含’Ne’的記錄 |
_ | 下劃線表示僅替代一個字元 | ‘_ne’查詢A的屬性值第一個字元後是ne的記錄,’z_z_h’查詢A屬性取值第一、三、五個字元為z,z,h,第二、四個字元任意取值的記錄 |
[charlist] | 字元列中的任何單一字元 | [charlist]常與%組合使用,’[zh]%’表示匹配屬性A取值以z、h開頭的記錄 |
[!charlist] | 不在字元列中的任何單一字元 | ‘[!zh]%’表示匹配屬性A取值不以z、h開頭的記錄 |
相關推薦
sql語句的幾個常用函式總結
結構化查詢語言(Structured Query Language,簡稱SQL語句)從單個函式的使用上來看,較為簡單,但是當表與表巢狀、幾個函式組合使用,即可實現強大的資料查詢功能,能從資料庫中快速便捷地獲取需要的資訊。 本文總結了sql語句中常用的5個函式,
SQL Server 幾個常用函式的使用
這幾個函式其實網上資料很多,但是為了方便自己的記憶,我還是決定還是寫一下,都說好記性不如爛筆頭,所以還是多寫一下。cast()函式作用主要是:把一種型別轉化成另外一種型別如把字串型別轉換成時間型別:SELECT CAST( '2011-10-2' AS datetime),再或者把數值型轉換成字串型別:SEL
sql幾個常用函式
Oracle:(百度百科查詢整理) 1,ROUND()函式為四捨五入函式 Round(number,[decimals] number 待做四捨五入處理的數值 decimals 指明需保留小數點後面的位數
Java中幾個常用類總結
一. System: 1. 首先是System類,因為從一開始從接觸java起,我們就無時無刻都在接觸它,經常用它來向螢幕,向控制檯列印輸出一些資訊,System.out.println(“hello world”);這個只是在控制檯輸出一條資訊“hello wor
XPATH的幾個常用函式
1.contains (): //div[contains(@id,'in')] ,表示選擇id中包含有’in’的div節點 2.text():由於一個節點的文字值不屬於屬性,比如“<a clas
TensorFlow中用於評估模型在訓練集和測試集上的準確度的幾個常用函式說明
1. tf.argmax() | tf.argmin() tf.argmax(input=tensor,dimention=axis) 找到給定的張量tensor中在指定軸axis上的最大值/最小值的位置。 a=tf.get_variable(nam
總結的幾個常用的sql例子
1, 利用case when then end 進行資料分類統計。 用法1:select case when type=1 then '數學' when type=2 the
python通過一個語句分析幾個常用函數和概念
完全 1.4 優點 難解 實現 word 開篇 iter 執行 前言 過年也沒完全閑著,每天用一點點時間學點東西,本文為大家介紹幾個python操作的細節,包含all、any、for in等操作,以及介紹我解決問題的思路。 一、開篇 先從我看到的一個簡單的語句開始。 tex
PHP常用函式總結(180多個)
PHP常用函式總結 數學函式 1.abs(): 求絕對值 $abs = abs(-4.2); //4.2 數字絕對值數字 2.ceil(): 進一法取整 echo ceil(9.999); // 10 浮點數進一取整 3.floor(): 捨去法取整 e
CENTOS: Docker幾個常用的語句
這裡記載幾個我用得最多的命令。 一)docker ps 看看有多少個正著執行的容器。沒成功的不再裡面。如果要看不成功的,就要在ps後加上-a docker ps -a 二)刪除一個容器。 docker rm 容器別稱 -f後面那個-f是強制的意思。測試的時候,我是不是
sql server儲存過程 以及幾個常用案例
Transact-SQL中的儲存過程,非常類似於Java語言中的方法,它可以重複呼叫。當儲存過程執行一次後,可以將語句快取中,這樣下次執行的時候直接使用快取中的語句。這樣就可以提高儲存過程的效能。 Ø 儲存過程的概念 儲存過程Procedure是一組為了完成特定功能的SQL語句集合,經編譯後儲存在資
AS400 DB2 SQL常用函式總結
說明,本文所述,全部是針對使用SQL語句操作DB2,而不是在AS400的綠屏下使用AS400的命令操作Library、object、menber 一、AS400 DB2 SQL語法基礎特別說明 1、AS400 DB2 SQL庫、表、欄位名都不區分大小寫
maven學習總結:幾個常用的maven外掛
我們使用maven做一些日常的工作開發的時候,無非是想利用這個工具帶來的一些便利。比如它帶來的依賴管理,方便我們打包和部署執行。這裡幾個常見的外掛就是和這些工程中常用的步驟相關。 maven-compile-plugin 這個外掛就如同名字所顯示的這樣,用來編譯原始碼的。最開始碰到這個外掛是在於有
SQL中幾個簡單的函式:LEFT JOIN;COUNT遇上GROUP BY
概要:函式LEFT JOIN與COUNT/GROUP BY的使用,以及為AND篩選限制條件的合適位置 SQL: SELECT DISTINCT att.attributes_templates_id,att.attributes_templates_name,COUN
防止sql注入的幾個簡單函式應用
幾個簡單的函式有: trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] ) 去除字串首尾處的空白字元(或者其他字元) 此函式返回字
Oracle 常用的幾個通用函式
1、NVL() 格式:NVL(value,string1) 如果value為null,則把該值替換為string1,如果不為空,還是該值本身; 用法:select nvl(123,9) from dual;--結果為:123 select nvl(nu
幾個常用的C查詢分割字串函式
搜尋字串函式 strstr原型: extern char *strstr (char *__haystack, const char *__needle) 所在標頭檔案:#include <s
PHP執行系統命令的有幾個常用的函數
exe 自動 文件操作 nal 外部命令 中間 ring 打開 lcm PHP執行系統命令的有幾個常用的函數,如有:system函數、exec函數、popen函數,passthru,shell_exec函數他們都可以執行系統命令,不過前提時必須系統給了權限了哦。 syste
miniui幾個常用知識點匯總
簡單 去除 spa 自帶 超過 表格 繪制 val wro 1.在表格中去除系統自帶的序列號,請看代碼: function allAndBrief(id) { if(id==1){ grid.set({
hadoop的幾個常用命令
hadoop官方文檔:http://hadoop.apache.org/docs/r1.2.1/file_system_shell.html1、登錄主節點,切換到hdfs用戶[[email protected]/* */~]#su - hdfs2、列出當前目錄有哪些子目錄,有哪些文件[[email