心智圖資源庫 SQL學習總結
詳細SQL基礎知識點,介紹詳細,描述全面,希望對有興趣的夥伴有幫助!
編輯於2023-12-08 18:22:06Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
SQL概念基礎
關聯式資料庫
資料庫(DB):電腦加工而成的資料集合。由行(記錄)和列(欄位)組成的二維表管理資料。一個儲存格只能輸入一個資料。資料庫中有多個表組成,以行為單位進行資料讀寫操作。 資料庫管理系統:(DBMS):管理資料庫的電腦系統。
關係型資料庫:以二維表的形式表示資料關係的資料庫。
關係資料庫的規範化
第一範式:消除重複字段,各字段為最小邏輯單元
第二範式:要求實體屬性完全依賴主關鍵字
第三範式:要求不存在非關鍵字列對任意候選關鍵子列傳遞函數依賴
SQL
用於操作資料庫的語言
DDL:用於定義資料庫物件(資料庫、表格、欄位等)。 常見指令:create、drop、alter、
DML:用來查詢或變更表記錄。 常見指令:select、insert、update、delete
DCL:確認資料變更、也就是事務控制。 常見指令:grant、revoke
DQL:根據需要對資料進行對應的查詢。 常見指令:select
DTL:確認或取消資料的變更,也就是交易提交和回滾 常見指令:commit、rollback
常見資料類型
char:定長字串
vchar:變長字串
int:整數型
date型:指定資料為日期型
約束
對資料進行限製或追加條件
非空約束:not null
主鍵約束:primary key
唯一約束:unique
預設值約束:default
檢查約束:check
外鍵約束:foreign key
運算符
算數運算子: 、-、*、/
比較運算符
=:等於
>=
<=
>
<
<>:不等於
邏輯運算子: not、and、or
和null進行算數運算的值都為null, 不能用null進行比較運算, 邏輯運算子和null會產生三值邏輯
函數
算數函數
加( )減(-)乘(*)除(/)四則運算
abs(數值): 計算絕對值的函數
mod(被除數,除數): 求餘函數,SQL Server不支援
round函數(物件數值,保留小數的位數) 四捨五入函數
字串函數
字串1||字串2: 當字串拼接函數進行字串拼接時,如果其中包含 NULL,那麼得到的結果也是 NULL。這是因為「||」也是變了形的函數。 ||在SQL Server和MySQL中無法使用
length(字串): 計算字串字元數量,計算字串長度 SQL Server無法使用length,SQL Server使用len()
lower(字串): 只能針對英文式字串,將字串全部轉為小寫
upper(字串): 只能針對英文式字串,將字串全部轉為大寫
replace(物件字串,替換前字串,替換後字串): 將一個字串的一部分替換為其他字串。
substring(物件字串 from 截取起始位置 for 截取字元數): 字串的截取。 只有PostgreSQL、MySQL支持,其他資料庫見註釋
日期函數
current_date: 傳回SQL執行的日期,如: slect current_date PostgreSQL、MySQL支持
current_time: 傳回SQL執行的時間。 PostgreSQL、MySQL支持
current_timestamp: 取得目前的日期和時間 SQL Server、PostgreSQL、MySQL支持,其他請見註解:
extract(日期元素 from 日期): 截取日期元素,如:」年「、」小時「等。 傳回的是數值類型 PostgreSQL、MySQL支持
轉換函數
資料型別轉換
cast(轉換前的值 as 想要轉換的資料型別):
值的轉換
coalesce(數據1,數據2,...)
聚合函數
謂詞
like
betwwen
is null
is not null
in: 無法選取 NULL 資料。
not in: 無法選取 NULL 資料。
exist
子主題
SQL查詢
基礎select
基礎查詢: select 列1,列2,...from 表
為列設定別名: select 欄1 as 別名 from 表
從結果中刪除重複行/記錄(distinct): select distinct 欄位 from 表
聚合查詢
select 聚合函數(列)from 表
聚合函數
count:計算行數(記錄數) count(*)會記錄所有行,包括null所在行 count(列)會排除null
sum:計算資料合計值
avg:計算數據平均值
max:計算最大值
min:計算最小值
使用聚合函數刪除重複值
select 聚合函數(distinct 欄位)from 表
分組查詢
select 列1,列2,...from 表 group by 需要分組的欄位(可一列可多列);
常見錯誤:
把聚合鍵之外的列名書寫在 SELECT 子 句之中
在GROUP BY子句中寫了列的別名
GROUP BY子句的結果不能排序
在WHERE子句中使用聚合函數
having子句:為聚合結果指定條件
select 列1,列2,...from 表 group by 需要分組的欄位(可一列可多列) having 條件
order by子句:為查詢結果排序
asc關鍵字:升序
desc關鍵字:降序
當指定多個排序鍵時,規則是優先使用左側的鍵(預設升序) order by通常寫在select語句末尾
數據更新
資料插入
insert into 表(列1,列2,...)values(值1,值2,...);
資料刪除
drop table語句:可以將表格完全刪除
delete:會留下表(容器),而刪除表的全部數據 語法:delete from 表 where 條件;
delete的物件是行(記錄)而不是列,因此指定列名是錯誤的 delete * from 表;也是錯的
數據更新
update 表 set 列1 = 表達式, set 列2 = 表達式 where 條件;
使用null進行更新(null清空),只要將賦值表達式右邊的值寫成null即可
事務: 需要在同一個處理單元中執行的一系列更 新處理的集合。
commit:提交處理
rollback:取消處理
ACID特性: 原子性、持久性、一致性(完整性)、隔離性
區分各事務: 1 每個SQL語句就是一個交易(自動提交模式) 2 直到使用者執行commit或rollback算一個事務
複雜查詢
視圖
優點: 1、由於視圖無需保存數據,因此可以節省儲存設備的容量。視圖本身會保存在儲存媒體(硬碟)中。 2.可以將頻繁使用的 SELECT 語句保存成視圖,這樣就不用每次都重新書寫了。
文法: create view 視圖名稱(試圖列1,視圖列2,...) as select語句
刪除視圖: drop view 視圖名
視圖就是保存好的select語句,定義視圖時,可以使用任何select語句 多重視圖(透過視圖建立視圖)會降低SQL效能 定義視圖不能排序(使用order by子句),因為視圖和表格一樣,資料行沒有順序 無法直接對視圖進行更新
子查詢
另一種用來定義視圖的select語句,直接寫在from子句中
在前面註解中的子查詢程式碼中,其中結尾的 productSum 是子查詢的名字 但由於該名稱是一次性的,因此不會像視圖那樣保存在儲存媒體(硬碟)之中, 而是在 SELECT 語句執行之後就消失了。
標量子查詢
必須傳回一個值(單一值)的子查詢。
使用場景: 在where子句需要使用聚合函數可以採用
能夠使用常數或列名的地方,無論是 SELECT 子句、GROUP BY 子句、HAVING 子句,或是ORDER BY 子句,幾乎所有的地方都可以使用。 不能傳回多行結果
關聯子查詢
適用於標量子查詢不能傳回多個結果的應用場景
在標量子查詢子句中加入 where 別名1.列=別名2.列
關聯子查詢也可以對集合切分
關聯名稱(別名)
作用域
子查詢內部設定的關聯名稱,只能在該子查詢內部使用 where 別名1.列=別名2.列一定要寫在子查詢中
其它知識點
集合運算
SQL高階處理