天天看點

資料庫系統概論簡易複習手冊(一)前言一、資料庫與表基本操作二、基本操作三、視圖、存儲過程、觸發器四、基本理論知識總結

文章目錄

  • 前言
  • 一、資料庫與表基本操作
      • 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.關系代數

  1. σ選擇操作符

    單純的選擇,例:選擇a表中,b屬性的值等于c的:

    資料庫系統概論簡易複習手冊(一)前言一、資料庫與表基本操作二、基本操作三、視圖、存儲過程、觸發器四、基本理論知識總結
  2. π投影

設a表為:

id1 id2 id3
xxx1 xxx2 xxx3

資料庫系統概論簡易複習手冊(一)前言一、資料庫與表基本操作二、基本操作三、視圖、存儲過程、觸發器四、基本理論知識總結

結果為:

id1 id3
xxx1 xxx3
  1. ⋈連接配接

    a⋈b =>選擇a與b共有的元組,自然連接配接會去重

  2. ÷除

設a表:

id1 id2
1 001
2 002
3 003
4 004

設b表:

id2
001
002

則a÷b,結果為:

id1
1
2

2.緒論

  1. 資料庫發展的三個階段:人工管理階段、檔案系統階段、資料庫系統階段
  2. 資料模型三要素:資料結構、資料操作、資料限制
  3. 三級結構模式:外模式(使用者模式)、模式(公共資料視圖)、内模式(存儲模式)
  4. 外模式/模式映像:邏輯獨立性
  5. 内模式/模式映像:實體獨立性
  6. 索引的目的是為了加快查詢速度

3.資料庫安全與設計概述

  1. 資料庫安全技術:強制存取控制、資料加密存儲、加密傳輸
  2. 事務是一組原子性操作,四個特征:原子性、一緻性、隔離性、持久性
  3. 範式:
1NF
		 ↓		//消除非主屬性對碼的部分函數依賴
		2NF
		 ↓		//消除非主屬性對碼的傳遞函數依賴
		3NF
		 ↓		//消除主屬性對碼的傳遞和部分函數依賴
		BCNF	
		 ↓		//消除非平凡且非函數依賴的多值依賴
		4NF
           
  1. E-R圖轉換關系模式:多對多必須轉換為一個關系模式,三元及以上必須轉換為一個關系模式
  2. 遊标,是開設了一個資料緩沖區,用來協調兩種不同的處理方式。
  3. 沖突操作是兩個不同僚務對同一個資料進行操作的操作,沖突可串行化是可串行化排程的充分條件,但不是必要條件
  4. 封鎖對象的大小叫做封鎖的粒度,粒度越大,并發越小,開銷越小。

4.資料庫恢複技術與并發控制概述

  1. 資料庫三大故障與恢複:事務故障(反向掃描日志檔案,撤銷修改)、系統故障(正向掃描日志檔案,将故障前送出的重做,其他的撤銷)、媒體故障(重裝)
  2. 并發控制:
1.事務是并發控制的基本機關
		2.并發控制是為了保證事務的隔離性和一緻性
		3.并發控制的三個問題:丢失修改、不可重複讀、讀髒資料
		4.三級封鎖協定:
			一級 解決了丢失修改的問題
			二級 解決了丢失修改和不可重複讀的問題
			三級 解決了丢失修改和不可重複讀和讀髒資料的問題
		5.協定内容:
			一級:a操作時,加寫鎖(x鎖),至事務結束
			二級:a操作時,加寫鎖(x鎖),至事務結束;b也要操作時,加讀鎖(s鎖),至自己操作結束
			三級:a操作時,加寫鎖(x鎖),至事務結束;b也要操作時,加讀鎖(s鎖),至事務結束
           
1.活鎖:某事務有可能完全等待			
		2.死鎖:某事務互相等待,永不結束		//采用逾時法和等待圖法來預判
           

總結

考試的水太深,你把握不住啊。