1. 程式人生 > >SQL資料庫基礎知識複習

SQL資料庫基礎知識複習

1. 三大資料庫:

a)  甲骨文         oracle

b)  IBM              DB2

c)  Microsoft     SQL

2. 微軟的SQL Server資料庫,是一種關係資料庫,屬於C/S架構。資料管理需要登入連線到服務進行。

3. SQL資料庫的圖形管理介面工具是SQL Server Management Studio

4. 伺服器管理

a) 在電腦右鍵管理—服務或者在資料服務配置中啟動、暫停、停止服務

b) 連線登入到伺服器,正確填寫伺服器型別(一般為“資料庫引擎”),伺服器的名稱、使用者名稱、密碼

c) 身份驗證模式:

             i.     Windows身份驗證:

            ii.     混合驗證模式,即可用Windows身份驗證,也可用SQLServer驗證。SQL驗證時,需要輸入使用者名稱和密碼:——預設為sa賬號(資料庫中的超級管理員),密碼為123或空密碼;這裡主要看安裝此例項時的設定

d) 連線/斷開伺服器操作

5. 資料庫管理:資料庫DB(Data Base)是表的集合,存放資料。

a)  物理上,資料庫的結構,由檔案和檔案組構成:

             i.     主要資料檔案(Primary)——.mdf檔案,有且僅有一個,在SQL2012中最小5MB

           ii.     次要資料檔案(Secondary)——.ndf,有0個或多個

          iii.     事務日誌檔案(Log)——.ldf,最小512KB,至少有一個

b)  可將資料檔案分成不同的檔案組

             i.     主要檔案組(primary)

           ii.     預設檔案組(default)

c)  邏輯上,資料庫是由表格等物件組成

d)  系統資料庫

             i.     Master主資料庫是SQL Server系統最重要的資料庫,必須保留

           ii.     Model模板資料庫,必須保留

          iii.     Msdb是代理服務資料庫

           iv.     Tempdb是一個臨時資料庫

e)  建立資料庫

create database 資料庫名

on

[ PRIMARY ](主資料檔案屬性 ),

[(輔助資料檔案屬性)]

log on

(日誌檔案屬性)

每一個檔案的屬性

NAME = 邏輯檔名
FILENAME = ‘物理檔名’,
SIZE = 起始大小
MAXSIZE = 最大大小,
 FILEGROWTH = 增長速度

f)  修改資料庫

alter database 資料庫名

add file (檔案屬性)--新增檔案

modify file(檔案屬性)--修改檔案

remove file 邏輯名  --移除檔案

g)  刪除資料庫: drop database 資料庫名

h)  分離、附加資料庫

6. SQL(Structured Query Language)即結構化查詢語言,關係資料庫標準語言。分為資料定義功能(DDL語言)、資料操縱功能(DML語言),也可把 select分離為DQL語言、資料控制功能(DCL語言)

7. SQL中的唯一識別符號:包括字母,符號(_、@或#)及數字,不允許有空格,要用不合法識別符號,加[ ]限制。變數名宣告加@,兩個@是全域性變數,臨時變數加#

8. SQL中的資料型別:   

a)  整數int,微整型tinyint(0-255)

b)  小數decimal(總長度,小數位數),real,float

c)  貨幣money

d)  位型別bit(1,0)

e)  時間型別:datetime

f)  日期型別:date

g)  字元型別

             i.     定長字元char(長度)、nchar(長度)

           ii.     變長長符varchar(長度)、nvarchar(長度)

          iii.     大於8000位元組用text文字型別

9. SQL中的常用關鍵字

10.    SQL中運算子和註釋

a)  註釋:- -;/*   */

b)  運算子:算術、邏輯、比較、位、連線運算子

c)  萬用字元:%、_、[]、[^]

11.    資料表管理

a)  表結構:組成表的各列名稱及資料型別,行為記錄、列為欄位。表應有標識列、主鍵 ;一個表只儲存一種型別實體的資料;表中不應該有重複的列或記錄

b)  新建表

create table  表名

列名1  資料型別[長度]   [完整性約束] ,

列名2  資料型別[長度]   [完整性約束] ,

……

c)  修改表

alter table  表名

add 列名  資料型別[長度]   [完整性約束] –新增列

drop column 列名—移除列

alter column 列名  資料型別[長度]—修改列

d)  刪除表:DROP TABLE 表名

12.    重新命名:

a)  exec sp_rename ‘原物件名’,’新物件名’[,’物件型別’]

b)  物件型別可以是以下5種:

Column——列名

Database——資料庫名

Index——索引名

Object——約束、表、檢視、觸發器名

Userdatatype——使用者自定義的資料名稱

13.    資料記錄管理

a)增加insert

向表中指定的列插入值

insert into 表名(欄位1 ,..欄位n ) values(值1,..值n )

向表中除了標識列外,每列依次插入值

insert into 表名 values(值1,值2,...值n )

b) 刪除delete

delete [from] 表名 where 條件

--刪除全表所有資料

delete [from] 表名速度慢,保留日誌,可恢復

truncate table  表名 速度快,不留日誌,不可恢復

c) 修改update

update 表名 set  欄位1=修改後的值,欄位2=修改後的值,…where 條件

14.    資料完整性—約束

完整性型別

約束型別

描述

域完整性

default

Insert時,為列指定預設值

check

指定在列中可接受的值範圍

Not null

列中不接受空值

實體完整性

primary key

表中最重要的列,不能為空,不能重複

unique

唯一

參照完整性

foreign key

匹配另一表中的主鍵

a) 新建列時新增約束

欄位名 資料型別[長度] primary key

欄位名 資料型別 unique

欄位名 資料型別 default 預設值

欄位名 資料型別 check(條件)

欄位名 資料型別 foreign key(欄位名) references 表名(欄位名)

b) 已有列的基礎上新增約束

alter table 表名

add constraint 約束名 primary key(欄位名) –-主鍵

addconstraint 約束名 unique (欄位名)    --唯一

add constraint 約束名 default(預設值) for 欄位名 –預設

add constraint 約束名 check(條件) –檢查

add constraint 約束名 foreign key(欄位名) references 主鍵表(參照欄位名)  --外來鍵

c)刪除約束  alter table 表名    drop 約束名

   d}      級聯刪除    on delete cascade

           級聯更新    on update cascade

15.    資料查詢

a)  基本查詢語法

SELECT <查詢目標列組>

FROM <參與查詢的表>

[WHERE <查詢條件> ]

GROUP BY <分組表示式>][HAVING<分組查詢條件>]

[ORDER BY <排序表示式> [ASC∣DESC ]]

Select 後接查詢的目標列,可用as起別名;消除重複distinct;顯示前幾條top n;聚合函式

from 後接參與的表名

where 後接查詢條件各種比較運算子:=,!=,<>,>,>=,<,<=,!>,!<,and,or,(not)in,is  (not ) null

b)  聚合查詢:COUNT( ),MIN(列名 ),MAX(列名 ),SUM(列名),AVG(列名)

c)  模糊查詢:like子句與萬用字元配合使用,%、_、[]、[^]

d)  分組查詢:group by子句對查詢的結果集進行分組,如果分組後還要求按一定的條件對這些組進行篩選,則可以使用HAVING短語指定篩選條件

使用group by時,必須注意:

SELECT子句的欄位列表中,除了聚合函式以外,其他所出現的欄位一定要在group by子句中有定義才行。

group by子句中不能使用欄位別名.

Sql server中text,ntext,image型別的資料不能作group by子句的分組依據

group by可與order by連用,order by 子句中可包含聚合函式

e)  排序查詢:order by排序:asc升;desc降

f)  巢狀查詢:將一個查詢塊巢狀在另一個查詢塊的where子句或having短語的條件中的查詢稱為巢狀查詢。其中外層查詢叫父查詢或主查詢,內層的查詢叫子查詢或從查詢。子查詢的SELECT總是用圓括號括起來

             i.     Where 查詢表示式 比較運算子 [any|all|some](子查詢)

           ii.     where 查詢表示式 [not] in (子查詢)

          iii.     Where [not]exists(子查詢)

g)  連結查詢

內連線:基本內連線、多表連線、自連線。內連線方式:

在select語句的where子句中使用比較運算子給出連線條件對錶進行連線.

用 表名1 inner join 表名2 on 連線條件 語句進行連線,

join指定需要連線的資料表,on指定連線條件(inner可省略)

外連結:左外連線、右外連線、全外連線、交叉連線

16.    檢視:檢視是從一個或多個表匯出的虛表,通過查詢基本表產生的,檢視建立好後可像使用基本表一樣使用檢視

a)  新建語法:

create view 檢視名

as

select語句

b)  修改、刪除檢視:alter view 檢視名 ;drop view 檢視名

17.    儲存過程:定義子程式存放在資料庫中,這樣的子程式稱為儲存過程

a)  建立儲存過程

CREATE PROCEDURE 儲存過程名

(

  引數列表

  @名稱  型別

)

AS

SQL語句

b)  修改儲過程

ALTER PROCEDURE 儲存過程名

AS

SQL語句

c)  刪除儲存過程

DROP PROCEDURE 儲存過程名

d)  執行儲存過程

EXEC   儲存過程名 引數值列表

18.    觸發器:觸發器是一種特殊的儲存過程,它被分配給某個特定的表。當對這個表進行插入、更新或刪除操作時,自動呼叫觸發器執行觸發器裡規定的操作

a)  種類

             i.     插入型觸發器

           ii.     刪除型觸發器

          iii.     更新型觸發器

b)  SQL Server建立了兩個專用表:inserted表和deleted表,在使用觸發器時可呼叫

c)  建立觸發器

create trigger 觸發器名

        on 表名

        for delete /insert /update

        as

        觸發器要執行的操作

d)  修改觸發器

alter trigger 觸發器名

        on 表名

        for delete /insert /update

        as

        觸發器要執行的操作

e)  刪除觸發器

drop trigger 觸發器名

a)  啟用、禁用觸發器

禁用語法:

         Alter table   表名   

         disable trigger 觸發器名

啟用語法:

         Alter table 表名    

         enable trigger 觸發器名