資料庫:儲存有組織的資料的容器。
資料庫管理系統(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 主鍵列中的值不允許修改或...