Sql語言初學知識點整理
1。
資料庫 DB(database)=多張表+各表間關係
2。
表的結構
:
帶列名的列(欄位)
記錄資料的行
唯一標識/主鍵 ID
3。
唯一標識/主鍵 ID
:一個帶ID的欄位來表示資料的唯一性。
4. 聯結 join
:各表之間的聯絡,資料能對應匹配。
5。
建立資料庫: create database <資料庫名>
6。
表的建立: create table <表名>
<列名1><資料型別><該列所需約束>
<列名2><資料型別><該列所需約束>
……
<該表所需約束>
7。 資料型別:
integer
:儲存整數
char
(最大長度):儲存字串,達不到最大長度空格補足
varchar
(最大長度):儲存可變長字串
date
:儲存日期
8。 約束:
default
設定預設值
not null
必須輸入數值
primary key
:主鍵
9。 表的刪除:
drop table
<表名> ,注意無法恢復
10。 表定義的更新:
新增列 :alter table <表名> add column <列名>
刪除列 :alter table <表名> drop column <列名>
11。
查詢書寫及執行順序
Select 5查詢出來
From 1從某表中檢索
Where 2條件過濾
Group by 3 分組
Having 4 對分組結果按條件過濾
Order by 6 排序
12。 書寫基本規則:
以分號結尾(;)
不區分大小寫
字串和日期常數使用單引號(‘’)
13。查詢中:
星號(*) :代表全部列
刪除重複行:Select
distinct
<列名> From<表名>
註釋:(——)後一行 ,(/*)和(*/)間 可以多行
Order by:排序, 預設升序,desc降序
14。 運算子
算術運算子 :+ ,-, * ,/
比較運算子: = ,<>不相等,<=,>=,<,>
邏輯運算子: not 否定,and 並且 ,or 或者 ,is (not) null 是否空值,
true 真,false 假 ,unknown 不確定
15。 資料更新:
資料插入 insert into <表名> (列1,列2,……)values(值1,值2)
資料刪除 delete from <表名>
資料更新 update <表名>set <列名>=<表示式>
16。 事務 :
對錶中資料更新單位。
start transaction ;
DML語句1;DML語句2;……
commit (提交處理)/rollback (取消處理)
17.子查詢
:
檢視:儲存select 語句,本身不儲存資料。
一次性檢視
用來定義檢視的select語句直接作用於from子句
子查詢作為內層首先執行
注意查詢結果數量:多個需用 in ,all
18。 關聯子查詢:
在同一種類中比較,可以用於分組
Where A表。x列 =B表。y列 (寫在子查詢中)
19。算術函式
abs (數值):絕對值
mod(被除數,除數):求餘
round
(物件,保留小數的位數):四捨五入
20。 字串函式
concat
:拼接
length:長度
lower:小寫轉換
upper :大寫轉換
replace(物件字串,替換前字串,替換後字串):替換
substring(物件字串 from 擷取起始位置 for 擷取字元數)
21。日期函式
current-date :當前日期
current-time :當前時間
current-timestamp :當前時間和日期
extract (日期元素 from 日期):擷取日期元素
22。轉換函式
cast (轉換前的值 as 轉換後的資料型別)
coalesce
(值1,值2……):輸出第一個非null 值,若最終無匹配值輸出null
23。 聚合函式
count 計數
sum求和
avg平均值
max 最大值
min 最小值
24。 謂詞
like
:字串部分一致查詢 ,Where <列名> like ‘ xx
%
’,%代替0以上字串
In
:檢查專案是否在列表中,Where <列名> in(xx,yy,zz……),or的簡便用法
between……and……:範圍查詢(包含臨界值)
is (not)null:查詢是否有空缺值
搜尋替換:
Case
when
<求值表示式>
then
<真值表達式>
when <求值表示式> then <真值表達式>
……
Else
<輸出表達式>
End
25。 集合
對記錄(行)進行運算
union :並集,不保留重複行
union all :保留重複行
intersect :交集
except:差集
26。 聯結join
以列為單位進行聯結
內
聯結
inner join
:
select a。<列1>, a。<列2>, a。<列3>……b。<列1>, b。<列2>, b。<列3>……
From a表
(inner) join
b表
On
a。<列名>=b。<列名>
外聯結
left/right join 以左/右表為基準,若無對應值,則顯示null
outer join完整返回左右表值