1. 程式人生 > >資料庫中常見關鍵字,函式理解

資料庫中常見關鍵字,函式理解

JOIN  用途  SELECT  

                  A.ID_NO,

                  A.NAME,

                  B.SCORE

          FROM  TMP_INFO_P A

          LEFT JOIN TMP_S_SCORE B ON A.ID_NO=B.ID_NO

上面的SELECT中得到的結果集是 3個欄位,我們從A中取了2個欄位 我們通過A和B的共同欄位ID_NO來關聯。從這個例子我們可以得出,JOIN B表的目的是為了讓最後的結果集中擴充套件了一列SCORE。

其中 LEFT JOIN 表示,以A表為主表,通過ID_NO關聯B表。即A表中所有的ID_NO都會展示在最後的結果集中,如果A中的ID_NO B中沒有匹配上則後面的 B.SCORE 為空。

       RIGHT JOIN  則與LEFT JOIN 相反,RIGHT JOIN 會以後面的表為主表,通過關聯欄位進行匹配。

以上是通過JOIN方式實現最後結果集列的拓展,SQL要想實現行數的增加是通過union實現的,

SELECT  ID_NO ,NAME,SCORE TMP_INFO_P1

UNION ALL

SELECT  ID_NO AS ID_NO1 ,NAME,SCORE TMP_INFO_P2

我們通過as改了 下面ID_NO的別名,但是最後結果集中會展示三列,三列的列名是ID_NO ,NAME,SCORE 即 最後結果是以第一個子結果集中的欄位為準的。

GROUP BY 是 分組函式,在很多時候要彙總

SELECT

 DIS_NAME,

CHANNEL_NAME,

SUM(PHONE_NO) CYS

FROM DTL_FZ_MX

GROUP BY 

    DIS_NAME,

    CHANNEL_NAME

在使用聚合函式(sum,max,min,count等)後group by後面要包含所有為聚合欄位。其實這裡多結合一些實際業務場景能理解得更深刻。

ROW_NUM()

在SQL資料處理時,經常要用到剔重,我們這裡常見的有distinct 該關鍵字是針對最後結果集的全部欄位來考慮的,即最後結果集的全部欄位都重複了才算一條重複資料,而在複雜的資料環境中我們要通過某(幾)個欄位來剔重的時候則使用ROW_NUM(partition BY ID_NO ORDER BY OP_TIM DESC NULLS LAST) RN進行剔重(這裡只是添加了行號) 後面限制RN=1。這裡partition即指定了這結果集中的唯一一條記錄是根據ID_NO來確定的。當然裡面可能存在多條的情況,所以還可以結合排序來讓自己希望得到的記錄序號排在前面,最後限制行號RN=1。

相關推薦

資料庫常見關鍵字函式理解

JOIN  用途  SELECT                    A.ID_NO,                  A.NAME,                  B.SCORE          FROM  TMP_INFO_P A          LEFT J

資料庫關鍵字函式及語句使用

一.資料庫關鍵字 union,unon all(重複也顯示) select into Constraint 幾種約束 (check index)   二.幾種函式關鍵字(因資料庫的不同,會不一樣) AVG() //UCASE()轉換為大寫 //lcase() m

MySQL 資料庫日期與時間函式FROM_UNIXTIME() UNIX_TIMESTAMP()

1、FROM_UNIXTIME( unix_timestamp ) 引數:通常是壹個十位的數字,如:1344887103 返回值:有兩種,可能是類似 'YYYY-MM-DD HH:MM:SS' 這樣的字串,也有可能是類似於 YYYYMMDDHHMMSS.uuuuuu

PHP 面向對象常見關鍵字使用(final、static、const和instanceof)

對象的引用 符號 存在 stat true 函數 php 面向對象 his 對象引用 PHP 面向對象中常見關鍵字的使用:   1、final :final關鍵字可以加在類或者類中方法之前,但是不能使用final標識成員屬性。     作用: 使用final標識的類,不能被

Java獲取資料庫的資料獲取下拉列表的資料 獲取省、市、區的資料根據上一層去控制下一層

$(function() { //validateRule(); getDept(); $("select[name='deptNamee']").change(function() { var deptCode = $("select[name='deptN

資料庫對儲存過程的理解

1.儲存過程的概念 儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集。經編譯後儲存在資料庫中。 儲存過程是資料庫中的一個重要物件,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。 儲存過程是由 流控制 和 SQL語句

正則表示式的模式函式及使用規則

一、正則表示式轉義 正則中的特殊符號: . * ? $ [] {} () | \ 正則表示式匹配特殊字元如果需要加 \ 表達轉義,比如: pattern

Oracel資料庫檢視與同義詞的理解及應用場景

轉載至: https://blog.csdn.net/u012411219/article/details/51321162 1. 資料庫物件之【檢視】簡單介紹    1.1 What:什麼叫檢視?          

Oracle--Oracle資料庫插入日期日期帶有時分秒(java.util.Date型別)

       通過JDBC向oracle資料庫中插入時間型別時間時,可以直接向資料庫中插入java.sql.Date型別的時間,但是時間只包含年月日,沒有時分秒。如果需要通過JDBC向oracle中插入java.util.Date型別的時間,先將Date轉換成格式化字串,再進

一文搞懂交叉熵在機器學習的使用透徹理解交叉熵背後的直覺

關於交叉熵在loss函式中使用的理解 交叉熵(cross entropy)是深度學習中常用的一個概念,一般用來求目標與預測值之間的差距。以前做一些分類問題

通過資料庫的表使用 MyEclipse2017的反向生成工具-->hibernate反轉引擎引擎(MyEclipse2017自帶的外掛) 來反轉生成實體類和對應的對映檔案

Java檢視 1、在MyEclipse中,Java檢視下,新建一個普通的java project,新建該專案的目的是:用來接收反轉引擎生成的實體類和對應的對映檔案。 2、在專案上右鍵 --> Configure Facets... --> Install Hibernate Facet   

孤荷凌寒自學python第四十七天通用跨資料庫同一資料庫複製資料表函式

孤荷凌寒自學python第四十七天通用跨資料庫同一資料庫中複製資料表函式   (完整學習過程螢幕記錄視訊地址在文末) 今天繼續建構自感覺用起來順手些的自定義模組和類的程式碼。 今天打算完成的是通用的(至少目前操作四種資料庫)在同一資料庫內複製資料表的方法函式。   此設想最初我

孤荷凌寒自學python第四十八天通用同一資料庫複製資料表函式最終完成

孤荷凌寒自學python第四十八天通用同一資料庫中複製資料表函式最終完成   (完整學習過程螢幕記錄視訊地址在文末) 今天繼續建構自感覺用起來順手些的自定義模組和類的程式碼。 今天經過反覆折騰,最終基本上算是比較好地完成了這個在同一資料庫中複製資料表的函式,且同一函式支援目前研究的四種資料庫

資料庫日期排序如何將null排在後面

oracle 排序是,如果為null, 降序則排在最前面,怎麼讓這些null值排在最後面  。              Nulls last http://blog.csdn.net/heartdiamond/article/details/6057562 解決

性別欄位在資料庫儲存數字查詢時如何查詢出數字對應的男和女?(case when的應用)

今天敲程式碼的時候,剛好遇到這個問題,寫部落格記一下。 情況如下:性別欄位在資料庫中儲存的是數字,男對應1,女對應0。然後,查詢的時候,我想查詢出男和女兩個字,而不是1和0。 一開始,我寫的sql語句,是直接從查詢出性別對應的數字,sql語句如下: SELECT Em

盤點機器學習常見的損失函式和優化演算法

在機器學習中,對於目標函式、損失函式、代價函式等不同書上有不同的定義。通常來講,目標函式可以衡量一個模型的好壞,對於模型的優化通常求解模型的最大化或者最小化,當求取最小化時也稱loss function即損失函式,也稱為成本函式、代價函式。 大多數情況下兩者並不

資料庫常見問題2-查詢表時顯示中文字元亂碼

解決辦法如下 步驟一:更改資料庫安裝時的字元編碼。開啟mysql安裝目錄,找到my.ini檔案。 步驟二:修改資料庫例項中的編碼,開啟data資料夾,找到對應的資料庫例項,修改裡面的db.opt檔案。 步驟三:重啟資料庫。通過cmd命令對資料庫進行重啟生效。 開啟cmd

資料庫常見問題1-mysql中文亂碼無法插入

ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xD4\xC0\xF6\xD3\xB1’ for column ‘name’ at row 1 解決辦法 步驟一:show variables like ‘%char

CTF常見的php函式繞過(保持更新)

is_numeric()用於判斷是否是數字,通常配合數值判斷 is_numeric(@$a["param1"])?exit:NULL; if(@$a["param1"]){ ($a["param1"]>2017)?$v1=1:NULL; } //param

資料庫的DMLDCLDDL分別是那些操作?

DDL Data Definition Language (DDL) statements are used to define the database structure or schema. Some examples: CREATE - to create