文章目錄
- 前言
- 一、資料庫與表基本操作
-
-
- 1.資料庫與表的建立與删除:
- 2.表操作:==ALTER==
-
- 二、基本操作
-
-
- 1.别名:==AS==
- 2.結果去重:==DISTINCT==
- 3.查詢結果傳回多個值:==IN==
- 4.查詢結果在......之間:==BETWEEN......AND==
- 5.查詢空值:==NULL==
- 6.限制傳回結果數量:==LIMIT==
- 7.字元串操作:
- 8.多段查詢:==UNION==
- 9.外連接配接:==JOIN....ON==
- 10.相關子查詢:
- 11.基本聚集函數:
- 12.條件查詢:==if==
-
- 三、視圖、存儲過程、觸發器
-
-
- 1.視圖
- 2.存儲過程與函數
- 3.觸發器
-
- 四、基本理論知識
-
-
- 1.關系代數
- 2.緒論
- 3.資料庫安全與設計概述
- 4.資料庫恢複技術與并發控制概述
-
- 總結
前言
複習資料庫系統概論的自用手冊,保留了應付考試的内容。
一、資料庫與表基本操作
1.資料庫與表的建立與删除:
建立資料庫: CREATE DATABASE 資料庫名;
建立表: CREATE TABLE 表名
(
列名1 資料類型 PRIMARY KEY/UNIQUE //主鍵/唯一值
...... //操作同上
)
删除: DROP 類型 名字 //類型可以是資料庫、表、視圖、存儲過程、索引....但是用它删除要注意表之間的限制條件
2.表操作:ALTER
1.增加列:
ALTER table 表名
add 列名 資料類型;
2.外鍵參照:
建立表時,在後面加上foreign key(...) references 外表名(....)
3.更改限制:
alter table 表名
drop foreign key 外鍵名 //删除
add foreign key 外鍵名 (..)references 外表名(...)//添加
on update/delete...... //級聯操作,更新、删除時
4.插入行:
insert into 表名
values(根據每一列的具體要求寫值)
5.更新資料(視圖也一樣):
例:update 表名
set
xxx=....
where .....
6.删除一行:
delete from 表名
where ....
二、基本操作
1.别名:AS
select
a,
b,
c,
(d+10)*100 AS 起的别名
from xxxxx
2.結果去重:DISTINCT
select distinct xxx
from xxxxx
3.查詢結果傳回多個值:IN
select *
from xxx
where xxx IN (你的操作)
4.查詢結果在…之間:BETWEEN…AND
select *
from xxx
where xxxx BETWEEN 左邊界 AND 右邊界
5.查詢空值:NULL
select *
from xxx
where xxxx is NULL
6.限制傳回結果數量:LIMIT
select *
from xxx
where xxxx
LIMIT 3 //傳回前三條資料;(limit 6,3) =>跳過六個,傳回三個
7.字元串操作:
'%'表示任意個字元,例:
"劉%" =>左邊界是劉的
"%劉" =>右邊界是劉的
"%劉%" =>帶“劉”這個字
'_'代表單字元,例:
"劉_" =>左邊界是劉,總共兩個字元
8.多段查詢:UNION
select *
from xxx
where xxxx1
UNION
select *
from xxx
where xxxx2
9.外連接配接:JOIN…ON
select *
from 左表
LEFT JOIN 右表 //LEFT JOIN是左連接配接,左表内容全部傳回;同理也有右連接配接
ON xxx=xxx //共同屬性
10.相關子查詢:
其實也就是同一張表自關聯查詢的時候,需要起個别名(用as)來輔助
select *
from 表一 as 表一别名
where(
select xxx
from 表一
where xxxx=表一别名.xxxx
)
11.基本聚集函數:
max() min() avg()//平均
sum()//求和 count()//計數
**使用聚集函數,且傳回多條資料時,使用HAVING代替where,比如使用group by分組之後的傳回結果不能用where
12.條件查詢:if
select ....if(條件,為真時傳回值,為假時傳回值)
from xxx
where xxxx
//多條件查詢是case-when-then-else-end結構
三、視圖、存儲過程、觸發器
1.視圖
1.建立:
create view 命名 as
...... //正常操作
2.删除:
drop view 名字
3.更改:
create or replace view 命名 as
...... //正常操作
//這樣會覆寫原視圖
**視圖本質上就是一段查詢的結果,是基本表的某些資料的虛拟表,使用視圖意味着在這些資料的基礎上進行操作
2.存儲過程與函數
1.建立:
create procedure 命名(參數以及資料類型,參數以及資料類型....)
begin
...... //正常操作
end
2.更改分隔符:
delimiter 分隔符
3.調用:
call 過程名(參數)
4.删除:
drop procedure 名字
********************************************************************
函數:
**函數與存儲過程基本類似。
**函數傳回的是一個結果,一條記錄。
**存儲過程傳回的是一個結果集。
建立:
create or replace function 命名(參數以及資料類型) return 傳回類型
begin
...... //正常操作
end
3.觸發器
1.建立:
create trigger 命名
before/after ......on 基本表名
for each row //行級,除此之外還有表級等等
begin
.....
end
2.删除:
drop trigger 名字
四、基本理論知識
1.關系代數
-
σ選擇操作符
單純的選擇,例:選擇a表中,b屬性的值等于c的:
- π投影
設a表為:
id1 | id2 | id3 |
---|---|---|
xxx1 | xxx2 | xxx3 |
則
結果為:
id1 | id3 |
---|---|
xxx1 | xxx3 |
-
⋈連接配接
a⋈b =>選擇a與b共有的元組,自然連接配接會去重
- ÷除
設a表:
id1 | id2 |
---|---|
1 | 001 |
2 | 002 |
3 | 003 |
4 | 004 |
設b表:
id2 |
---|
001 |
002 |
則a÷b,結果為:
id1 |
---|
1 |
2 |
2.緒論
- 資料庫發展的三個階段:人工管理階段、檔案系統階段、資料庫系統階段
- 資料模型三要素:資料結構、資料操作、資料限制
- 三級結構模式:外模式(使用者模式)、模式(公共資料視圖)、内模式(存儲模式)
- 外模式/模式映像:邏輯獨立性
- 内模式/模式映像:實體獨立性
- 索引的目的是為了加快查詢速度
3.資料庫安全與設計概述
- 資料庫安全技術:強制存取控制、資料加密存儲、加密傳輸
- 事務是一組原子性操作,四個特征:原子性、一緻性、隔離性、持久性
- 範式:
1NF
↓ //消除非主屬性對碼的部分函數依賴
2NF
↓ //消除非主屬性對碼的傳遞函數依賴
3NF
↓ //消除主屬性對碼的傳遞和部分函數依賴
BCNF
↓ //消除非平凡且非函數依賴的多值依賴
4NF
- E-R圖轉換關系模式:多對多必須轉換為一個關系模式,三元及以上必須轉換為一個關系模式
- 遊标,是開設了一個資料緩沖區,用來協調兩種不同的處理方式。
- 沖突操作是兩個不同僚務對同一個資料進行操作的操作,沖突可串行化是可串行化排程的充分條件,但不是必要條件
- 封鎖對象的大小叫做封鎖的粒度,粒度越大,并發越小,開銷越小。
4.資料庫恢複技術與并發控制概述
- 資料庫三大故障與恢複:事務故障(反向掃描日志檔案,撤銷修改)、系統故障(正向掃描日志檔案,将故障前送出的重做,其他的撤銷)、媒體故障(重裝)
- 并發控制:
1.事務是并發控制的基本機關
2.并發控制是為了保證事務的隔離性和一緻性
3.并發控制的三個問題:丢失修改、不可重複讀、讀髒資料
4.三級封鎖協定:
一級 解決了丢失修改的問題
二級 解決了丢失修改和不可重複讀的問題
三級 解決了丢失修改和不可重複讀和讀髒資料的問題
5.協定内容:
一級:a操作時,加寫鎖(x鎖),至事務結束
二級:a操作時,加寫鎖(x鎖),至事務結束;b也要操作時,加讀鎖(s鎖),至自己操作結束
三級:a操作時,加寫鎖(x鎖),至事務結束;b也要操作時,加讀鎖(s鎖),至事務結束
- 鎖
1.活鎖:某事務有可能完全等待
2.死鎖:某事務互相等待,永不結束 //采用逾時法和等待圖法來預判
總結
考試的水太深,你把握不住啊。