SQL必知必會

2021-10-09 08:08:00 字數 4516 閱讀 6141

資料庫:儲存有組織的資料的容器。

資料庫管理系統(dbms):資料庫軟體,資料庫是通過dbms建立和操縱的容器。

表:某種特定資料型別的結構化清單。資料庫中的每個表都有自己的名字,且唯一。不同的資料庫可以使用相同的表名。

表的特性–模式:資料在表中如何儲存,儲存什麼樣的資料,資料如何分解。模式可以用來描述資料庫中特定的表,也可以用來描述整個資料庫(和其中表的關係)。

列:所有的表都是由乙個或多個列組成,資料將被分解成多列進行儲存,每個列都有相應的儲存型別。

行:表中的資料按行儲存,所儲存的每個記錄儲存在自己的行內。

主鍵:表中每一行都應該有一列可以唯一表示自己。主鍵不是必要的,但是應該總是定義主鍵。使用方便。

作為主鍵的條件:

任意兩合都不具有相同的主鍵值;

每一行都必須有乙個主鍵值(主鍵值不允許設定為null)

主鍵列常定義在表的一列上,也可以使用多個列作為主鍵(應用到的所有列值的組合必須是唯一的,單個值可以重複但是組合值必須唯一)。

sql:專門用來與資料庫溝通的語言。是一種從資料庫中讀寫資料的簡單有效的方法。

select rowname from tablename;
檢索多個列:

select row1name,row2name from tablename;
檢索所有列:

select

*from tablename;

檢索不用的值:dinsinct作用與所有列,不僅僅是跟在其後的那一行

select

distinct rowname from tablename;

限制檢索的結果:

sqlserver 和access:top限制檢索行數;

select

top5 rowname from tablename;

db2:fetch first rows only

select rowname from tablename fetch

first

5rows only;

oracle:rownum

select rowname from tablename where rownum<=

5;

mysql,mariadb,postgresql,solite:limit

select rowname from tablename limit5;

#這是一條注釋

select rowname from tablename limit

5offset5;

--從5行起的5行資料

排序:order by,必須是最後一條子句;

檢索單列:

select rowname from tablename order

by rowname;

排序檢索多列:

select row1name,row2name,row3name from tablename order

by row1name,row2name;

--排序的順序完全按規定進行,先按row1name排序,如果row1name一樣則按照row2name 排序

select row1name,row2name,row3name from tablename orderby1

,2;--按相對位置進行排序

指定排序的方向:

--降序排序:desc

select row1name,row2name,row3name from tablename orderby1

,2desc

;--公升序排序:asc,預設的

select row1name,row2name,row3name from tablename orderby1

,2asc;

where:

--匹配檢測

select row1name,row2name from tablename where row3name=10;

select row1name,row2name from tablename where row3name=

'限定字串'

;--不匹配檢查:access支援<>不支援!=

select row1name,row2name from tablename where row3name<>10;

select row1name,row2name from tablename where row3name!=10;

--範圍值檢查

select row1name,row2name from tablename where row3name between

10and30;

--空值檢查:is null;

select row1name,row2name from tablename where row3name is

null

;

and:

select row1name,row2name from tablename where row3name is

null

and row1name=

'swwd'

;

or:

select row1name,row2name from tablename where row3name is

null

or row1name=

'swwd'

;

select row1name,row2name from tablename where row3name=

'sq'

or row3name=

'sad'

and row1name=

'swwd'

;--預設優先計算xxandyy,在計算or

select row1name,row2name from tablename where

(row3name=

'sq'

or row3name=

'sad'

)and row1name=

'swwd'

;--()最高端運算,可調整or和and的順序

in:

--in操作符用來在指定條件範圍,範圍中的每個條件都可以進行匹配,in取一組由逗號分隔,括在括號中的合法值。

select row1name from tablename where row1name in(1

,3,2

,54,32

);

not:否定其後所跟的任何條件

select row1name,row2name from tablename not

where row3name=

'sq'

or row3name=

'sad'

;

like:用萬用字元進行過濾

--%表示任何字元出現任意次數。

select row1name,row2name from tablename where row3name like

'sq%';

#'%'不會匹配產品名稱為null的行

--_匹配單個字元

select row1name,row2name from tablename where row3name like

'sq_';

#db2不支援萬用字元,access使用?而不是_;

--指定乙個字符集,他必須匹配指定位置(萬用字元的位置)的乙個字元。

select row1name,row2name from tablename where row3name like

'sq_[lsa]';

建立字元字段:

--access,sqlserver

select row1name+

'('+row2name+

')'from tablename where row3name=

'sao';

--db2,oracle,postgresql,sqlite

select row1name||

'('||row2name||

')'from tablename where row3name=

'sao';

--mysql,mariadb

select concat(row1name,

'(',row2name,

')')

from tablename where row3name=

'sao';

使用別名:

《sql必知必會》筆記

資料庫 儲存有組織的資料的容器 通常是乙個檔案或一組檔案 注意誤用混淆 資料庫軟體被稱為dbms,資料庫是通過dbms建立和操縱的容器 模式 關於資料庫和表的布局及特性的資訊。主鍵 一列或一組列,其值能夠唯一標識表中的每一行。多條sql語句必須以 分隔。sql語句不區分大小寫,select和sele...

SQL必知必會2

資料庫伺服器有 兩種儲存介質 分別為硬碟和 記憶體。記憶體屬於臨時儲存,容量有限,且當發生意外時 如斷電或者發生故障重啟 會造成資料丟失 硬碟相當於永久儲存介質,這也是為什麼我們需要把資料儲存到硬碟上。資料庫中管理儲存空間的基本單位是頁 page 不論是讀一行還是多行,都是講這些行所在的頁進行載入 ...

mysql必知必 SQL必知必會學習筆記 一

資料庫基礎 資料庫 資料庫軟體 確切的說,資料庫軟體應稱為資料庫管理系統 dbms 資料庫是通過dbms建立和操作的容器 資料庫相當於檔案櫃 容器 表相當於檔案 同乙個資料庫不能存在相同的表名,不同的資料庫可以存在相同的表名 主鍵應滿足的條件 唯一性非空性 not null 主鍵列中的值不允許修改或...