国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQl Server 2008 知識點概括【數(shù)據(jù)庫】

這篇具有很好參考價值的文章主要介紹了SQl Server 2008 知識點概括【數(shù)據(jù)庫】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 第一章 數(shù)據(jù)庫概述

  1. 什么是數(shù)據(jù)庫?
    數(shù)據(jù)庫是采用計算機技術(shù)統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合,數(shù)據(jù)庫能為各種用戶共享,具有冗余度最小、數(shù)據(jù)之間聯(lián)系密切、有較高數(shù)據(jù)獨立性等特點。
  2. Microsoft SQL Server 系統(tǒng)的體系結(jié)構(gòu)
    Microsoft SQL Server 2008系統(tǒng)由4個主要部分組成,這4個部分被稱為4個服務(wù),這些服務(wù)分別是數(shù)據(jù)庫引擎、分析服務(wù)、報表服務(wù)和集成服務(wù)。
  • 數(shù)據(jù)庫引擎(簡稱SSDE):是Microsoft SQL Server 2008系統(tǒng)的核心服務(wù),負責(zé)完成業(yè)務(wù)數(shù)據(jù)的存儲、處理、查詢和安全管理等操作。
  • 分析服務(wù)(簡稱SSAS):提供了多維分析和數(shù)據(jù)挖掘功能,可以支持用戶建立數(shù)據(jù)倉庫和進行商業(yè)只能分析。
  • 報表服務(wù)(簡稱SSRS):為用戶提供了支持Web的企業(yè)級的報表功能。
  • 集成服務(wù)(簡稱SSIS):是一個數(shù)據(jù)集成平臺,可以完成有關(guān)數(shù)據(jù)的提取、轉(zhuǎn)換、加載等。
  1. 數(shù)據(jù)庫的類型和特點?
    Microsoft SQL Server 2008系統(tǒng)提供了兩種類型的數(shù)據(jù)庫,即系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。
    系統(tǒng)數(shù)據(jù)庫主要包括master、model、msdb、Resource和tempdb數(shù)據(jù)庫。
    用戶示例數(shù)據(jù)庫主要包括AdventureWorks、AdventureWorksDW、AdventureWorksDW2008、AdventureWorksLT、AdventureWorksLT2008等數(shù)據(jù)庫。

master數(shù)據(jù)庫是最重要的系統(tǒng)數(shù)據(jù)庫
model數(shù)據(jù)庫是一個模板數(shù)據(jù)庫
msdb是與SQLServerAgent服務(wù)相關(guān)的數(shù)據(jù)庫
tempdb是一個臨時數(shù)據(jù)庫,用于存儲查詢過程中所使用的中間數(shù)據(jù)或結(jié)果

  1. OLTP和OLAP
    在OLTP數(shù)據(jù)庫中,數(shù)據(jù)是按照二維表格的形式來存儲的。OLTP數(shù)據(jù)庫的主要作用是降低存儲在數(shù)據(jù)庫中的各種信息的冗余度和加快對數(shù)據(jù)的檢索、插入、更新及刪除速度。典型的OLTP數(shù)據(jù)庫應(yīng)用包括制造企業(yè)的物料管理信息系統(tǒng)、航空公司的機票銷售信息系統(tǒng)、大學(xué)生圖書管理信息系統(tǒng)、銀行的存儲業(yè)務(wù)信息系統(tǒng)等。
    OLAP從結(jié)構(gòu)上來看,存儲模型常見的結(jié)構(gòu)式是星型結(jié)構(gòu)或雪崩結(jié)構(gòu)。從使用目的來看,OLAP數(shù)據(jù)庫的主要作用是提高系統(tǒng)對數(shù)據(jù)的檢索和分析速度。
  2. 管理工具
    數(shù)據(jù)庫管理工具主要包括:Microsoft SQL Server Management Studio、SQL Server配置管理工具、SQL Server Profiler、“數(shù)據(jù)庫引擎優(yōu)化顧問”以及大量的命令行實用工具

Microsoft SQL Server Management Studio:將各種圖形化工具和多功能的腳本編輯器組合在一起,完成訪問、配置、控制、管理和開發(fā)SQL Server的所有工作,大大方便了技術(shù)人員和數(shù)據(jù)庫管理員對SQL Server系統(tǒng)的各種訪問。
SQL Server Profiler:可以對Microsoft SQL Server 2008系統(tǒng)的運行過程進行攝錄

  1. 數(shù)據(jù)庫管理員
    作為一個數(shù)據(jù)庫管理員,簡稱DBA,至少應(yīng)該做好以下12項任務(wù):
    (1)安裝和配置
    (2)容量規(guī)劃
    (3)應(yīng)用架構(gòu)設(shè)計
    (4)管理數(shù)據(jù)庫對象(表,索引,視圖,存儲過程,函數(shù),觸發(fā)器,同義詞等)
    (5)存儲管理空間
    (6)安全管理
    (7)備份與恢復(fù)
    (8)性能監(jiān)視和調(diào)優(yōu)
    (9)調(diào)度作業(yè)
    (10)網(wǎng)絡(luò)管理
    (11)高可用性和高伸縮性
    (12)故障解決

2. 第二章 管理安全性

  1. 管理登錄名
    管理登錄名包括創(chuàng)建登錄名、設(shè)置密碼策略、查看登錄名信息及修改和刪除登錄名等。
    (1)創(chuàng)建登錄名
create login [將要創(chuàng)建的基于Windows登錄名的登錄名] //方括號必須的
from windows
go

(2)創(chuàng)建有默認數(shù)據(jù)庫的登錄名

create login [將要創(chuàng)建的基于Windows登錄名的登錄名]
from windows
with default_database = AdventureWorks
go

如果沒有為新建的登錄名明確的指出默認數(shù)據(jù)庫,那么默認數(shù)據(jù)庫是master數(shù)據(jù)庫
(3)創(chuàng)建SQL Server登錄名

create login Peter
with password = '11111'
  1. 維護登錄名
    (1)使用alter login 修改登錄名
alter login Peter
with name = roudo

(2)修改roudo登錄名的密碼

alter login roudo
with password = '11111'

(3)禁用和啟用登錄名

//禁用登錄名
alter login roudo disable
//啟用登錄名
alter login roudo enable
  1. 服務(wù)器角色
    固定服務(wù)器角色式服務(wù)級別的主體,他們的作用范圍是整個服務(wù)器
    固定服務(wù)器角色已經(jīng)具備了執(zhí)行指定操作的權(quán)限,可以把其他登錄名作為成員添加到固定服務(wù)器角色中。
    固定服務(wù)器角色的權(quán)限是固定不變的,既不能被刪除,也不能增加。sysadmin固定服務(wù)器角色擁有的權(quán)限最多,可以執(zhí)行系統(tǒng)中的所有操作。
    • 如果希望指定的登錄名成為某個固定服務(wù)器角色的成員,可以使用sp_addsrvrolemember存儲過程來完成這種操作,語法如下:
sp_addsrvrolemember ‘login-name’, 'role-name'
- 如果希望指定的登錄名成為某個固定服務(wù)器角色的成員,可以使用is_srvrolemember
- 如果希望把固定服務(wù)器角色的某個成員刪除,可以使用sp_dropsrvrolemember
  1. 創(chuàng)建用戶
    create user
    (1)創(chuàng)建登錄名的數(shù)據(jù)庫用戶
create user peter_user
from login peter

(2)創(chuàng)建帶有默認架構(gòu)的數(shù)據(jù)庫用戶

create user bobbie_hrm
from login [ ]
with default_schema = hrmanager

注意:數(shù)據(jù)庫中的每一個用戶可以對應(yīng)多個架構(gòu),但是只能對應(yīng)一個默認架構(gòu)
dbo是數(shù)據(jù)庫的默認用戶

  1. 管理架構(gòu)
    架構(gòu)是形成單個命名空間的數(shù)據(jù)庫實體的集合。架構(gòu)是數(shù)據(jù)庫級的安全對象,是數(shù)據(jù)庫對象的容器。
    (1)創(chuàng)建架構(gòu)
    create schema
    這個語句不僅可以創(chuàng)建架構(gòu),同時還可以創(chuàng)建該架構(gòu)所擁有的表、視圖并且可以對這些對象設(shè)置權(quán)限。
    (2)創(chuàng)建有明確所有者的架構(gòu)
create schema SaleManager
authorization peter_user

(3)創(chuàng)建架構(gòu)的同時創(chuàng)建一個表

create schema Manager
authorization peter_user
create table elecTravelHuman(Emp ID INT, EmpName Varchar(126))

(4)創(chuàng)建架構(gòu)的同時創(chuàng)建表和管理權(quán)限

create schema Manager
authorization peter_user
create table elecTravelHuman(Emp ID INT, EmpName Varchar(126))
grant select to guest
  1. 修改和刪除架構(gòu)
    修改架構(gòu)是指將特定架構(gòu)中的對象轉(zhuǎn)移到其他架構(gòu)中
    可以使用alter schema語句完成對架構(gòu)的修改
  2. 數(shù)據(jù)庫角色
    管理數(shù)據(jù)庫角色包括創(chuàng)建數(shù)據(jù)庫角色、添加和刪除數(shù)據(jù)庫角色成員、查看數(shù)據(jù)庫角色信息及修改和刪除角色等。
    (1)創(chuàng)建簡單的角色
create role

(2)sp_addrolemember為角色添加成員

sp_addrolemember 'role_name', 'security_account'

(3)其他操作
與sp_addrolemember存儲過程相對應(yīng)的是sp_droprolemember存儲過程,后者可以刪除指定數(shù)據(jù)庫角色中的成員。
8. 常用對象的權(quán)限
(1)授予權(quán)限
使用grant語句將安全對象的權(quán)限授予指定的安全主體

grant control to tomson_hrm
對數(shù)據(jù)庫的control權(quán)限授予給了tomson_hrm用戶
grant create table to peter_user
該用戶擁有了可以在當(dāng)前數(shù)據(jù)庫中執(zhí)行創(chuàng)建表的操作
grant create table to cleon with grant option

可以使cleon用戶可以將create table權(quán)限轉(zhuǎn)授給其他用戶。
(2)收回權(quán)限
使用revoke語句可以從某個安全主體處收回權(quán)限

revoke select on sales.customer
from cleon
使用revoke語句收回授予的權(quán)限

3. 第三章 管理數(shù)據(jù)庫

  1. 數(shù)據(jù)庫文件
    一個數(shù)據(jù)庫至少有一個數(shù)據(jù)文件和一個事務(wù)日志文件
    數(shù)據(jù)文件用于存放數(shù)據(jù)庫的數(shù)據(jù)和各種對象,而事務(wù)日志文件用于存放事務(wù)日志。一個數(shù)據(jù)庫最多可以擁有32767個數(shù)據(jù)文件和32767個日志文件。
  2. 創(chuàng)建數(shù)據(jù)庫
    具有create database、create any database 或 alter any database權(quán)限的用戶才可以執(zhí)行創(chuàng)建數(shù)據(jù)庫的操作。
    (1)創(chuàng)建簡單數(shù)據(jù)庫
create database 名字

(2)使用create database語句創(chuàng)建數(shù)據(jù)庫

create database LCBCom
on {
	name = LCBCom_DATA,
	filename = 'D:\......',
	size = 6,
	maxsize = 20,
	filegrowth = 10%
	}
log on {
	name = LCBCom_LOG,
	filename = 'D:\....',
	size = 2MB,
	maxsize = 10MB,
	filename = 1MB
	}
  1. 數(shù)據(jù)庫選項
    數(shù)據(jù)庫狀態(tài)選項類型:
    online(在線狀態(tài)或聯(lián)機狀態(tài))
    offline (離線狀態(tài)或脫機狀態(tài))
    emergency(緊急狀態(tài),數(shù)據(jù)庫標(biāo)記為read_only,不能只執(zhí)行日志文件,只能由sysadmin固定服務(wù)器角色成員訪問)
    控制用戶對數(shù)據(jù)庫訪問選項:
    single_user(單用戶模式,一次只能有一個用戶訪問數(shù)據(jù)庫)
    restricted_user(限制用戶模式,只能由sysadmin固定服務(wù)器角色成員,db_owner等訪問數(shù)據(jù)庫)
    multi_user(多用戶模式,正常狀態(tài),有訪問權(quán)限的用戶都可以訪問數(shù)據(jù)庫)
  2. 修改數(shù)據(jù)庫
alter database

(1)更改數(shù)據(jù)庫名稱

alter database database_name modify name = new database_name
  1. 管理數(shù)據(jù)庫快照
    數(shù)據(jù)快照提供了源數(shù)據(jù)庫在創(chuàng)建快照時刻的只讀、靜態(tài)視圖,可以有效的支持報表數(shù)據(jù)匯總和數(shù)據(jù)分析等只讀操作。
    需要說明的是:數(shù)據(jù)庫快照必須與源數(shù)據(jù)庫在同一個服務(wù)器實例上
    (1)數(shù)據(jù)庫快照作用
  • 提供了一個靜態(tài)的視圖來為報表提供服務(wù)
  • 可以利用數(shù)據(jù)庫快照來恢復(fù)數(shù)據(jù)庫
  • 和數(shù)據(jù)庫鏡像結(jié)合使用,提供讀寫分離
  • 作為測試環(huán)境或數(shù)據(jù)變更前的備份,比如我要大批導(dǎo)入或刪除數(shù)據(jù)前,或是將數(shù)據(jù)提供給測試人員進行測試前,做一個快照,如果出現(xiàn)問題,則可以利用快照恢復(fù)到快照建立時的狀態(tài)

(2)創(chuàng)建數(shù)據(jù)庫快照

 create database database_snapshot_name
 on (
 	name = source_database_logical_file_name,
 	filename  = 'os_file_name',
 	)
 	as snapshot of source_database_name

RAID它就是將多個獨立的硬盤進行組合,并將其容量疊加在一起,再利用個別硬盤提供數(shù)據(jù)所產(chǎn)生的加成效果,提升整個硬盤系統(tǒng)性能。 同時,還可以通過存儲冗余數(shù)據(jù)來增加容錯能力,以獲得更加安全的數(shù)據(jù)存儲環(huán)境

4. 第四章 T-SQL語言

  1. T-SQL語言和SQL關(guān)系
    SQL Server是結(jié)構(gòu)化查詢語言,是目前關(guān)系型數(shù)據(jù)庫管理系統(tǒng)中使用最廣泛的查詢語言 T-SQL即 Transact-SQL,是標(biāo)準(zhǔn)SQL語言的擴展,是SQL Server的核心,在SQL的的基礎(chǔ)上添加了變量,運算符,函數(shù)和流程控制等新內(nèi)容
  2. 類型
    T-SQL語言分為5種類型:
  • 數(shù)據(jù)定義語言(DDL):create、alter、drop
  • 數(shù)據(jù)操縱語言(DML):insert、update、delete、select
  • 數(shù)據(jù)控制語言(DCL):grant、revoke、deny
  • 事務(wù)管理語言(TML):commit、rollback
  1. 附加的語言元素
  • 標(biāo)識符
    在T-SQL語言中,數(shù)據(jù)庫對象的名稱就是其標(biāo)識符
  • 分割標(biāo)識符
    有兩種情況下使用標(biāo)識符:(1)對象名稱中包含了Microsoft SQL Server保留字,例如[where]分割標(biāo)識符;
    (2)對象名稱中使用了未列入限定字符的字符,例如[product[1] table]分割標(biāo)識符.
    當(dāng)Ouoted_Indentifier選項設(shè)置為on時,才能使用引用的標(biāo)識符
  • 變量和常量
  • 聲明和賦值
    (1)在T-SQL語言中,可以使用declare語句聲明變量。在聲明變量的時候需要注意:第一,為變量指定名稱,且名稱的第一個字符必須為@;第二,指定該變量的數(shù)據(jù)類型和長度;第三,默認情況下將該變量的變量值設(shè)置為NULL。
    (2)可以在一個declare語句中聲明多個變量,變量之間使用逗號分割開。變量的作用域是可以引用該變量的Transact-SQL語句的范圍。
    (3)有兩種為變量賦值的方式: 使用set語句為變量賦值和使用select語句選擇列表中當(dāng)前所引用值來為白能量賦值。
  • 使用變量
declare @yearCounter INT
SET @yearCounter = 1
WHILE (@yearCounter < 2012)
	SET @yearCounter = @yearCounter + 1
PRINT @yearCounter
  • 錯誤捕捉語言
    在T-SQL語言中,可以使用try…catch構(gòu)造和使用@@Error函數(shù)
    在T-SQL語句中,可以使用try…catch構(gòu)造來處理T-SQL代碼中的錯誤

5. 第五章 表

  1. 創(chuàng)建和修改表
create table students(
	studentNumber int not null,
	studentName varchar(32) not null,
	gender char(2) null,
	birthday datetime null,
	birthplace varchar(32) null,
	telphone_no varchar(32) null,
	address varchar(128) null,
	others varchar(256) null
	)

當(dāng)在表名稱前面使用一個#符號時,表示創(chuàng)建的表是本地臨時表,該表只能由創(chuàng)建者使用。如果表名稱前面使用了兩個#符號,那么表示該表是全局臨時表,在其生存期間可以為所有的用戶使用。
2. 增加或刪除列

alter table abc_table
add column_b varchar(20) not null
create table abc_table(
	column_a int, column_b varchar(20)null)
alter table abc_table
drop column column_b
  1. 更改該列的數(shù)據(jù)類型
alter table table_name alter column column_name new_type_name

注意:如果表中沒有數(shù)據(jù),那么對表中列的數(shù)據(jù)類型的更改可以是任意的。但是,如果表中已經(jīng)包含了數(shù)據(jù),對表中列的數(shù)據(jù)類型的更改將涉及到這些列中的數(shù)據(jù)是否能夠與新數(shù)據(jù)類型一致的問題。因此,這時要求更改后的列的數(shù)據(jù)類型應(yīng)該是更改前的數(shù)據(jù)類型可以隱式轉(zhuǎn)換的數(shù)據(jù)類型。
4. 創(chuàng)建和修改標(biāo)識符列
標(biāo)識符列是唯一標(biāo)識表中每一行數(shù)據(jù)的符號。
(1)IDENTITY
作用范圍是表
使用IDENTITY屬性的列是IDENTITY列,每一個表中最多只能有一個IDENTITY列。

IDENTITY(seed, increment)

seed:指定該列的種子值
increment:指定該列的增量值
這兩個值得默認值都是1
可以在create table 語句或alter table語句中使用IDENTITY屬性。由于IDENTITY屬性是作為列得屬性在列上定義,因此對IDENTITY列得數(shù)據(jù)類型有所限制,SQL Server系統(tǒng)要求IDENTITY列得數(shù)據(jù)類型可以是整數(shù)數(shù)據(jù)類型或者是可以轉(zhuǎn)換為整數(shù)數(shù)據(jù)的數(shù)據(jù)類型,并且不允許是空值。
(2)ROWGUIDCOL列
ROWGUIDCOL列是全局唯一標(biāo)識的符號,每一個表中最多允許創(chuàng)建一個ROWGUIDCOL列。ROWGUIDCOL列的值是不能自動生成的,一般使用newId函數(shù)來為該列提供數(shù)據(jù)。

  1. 已分區(qū)表
    如果一個表中包含了大量的、以多種不同方式使用的數(shù)據(jù),一般的查詢又不能按照預(yù)期的成本完成,就應(yīng)該考慮使用已分區(qū)表。已分區(qū)表是指按照數(shù)據(jù)水平方式分區(qū),將數(shù)據(jù)分布于一個數(shù)據(jù)庫的多個不同的文件組中。在對數(shù)據(jù)進行查詢或更新時,這些已分區(qū)表將被視為獨立的邏輯單元。

創(chuàng)建分區(qū)表的主要步驟如下:

  • 創(chuàng)建分區(qū)函數(shù),指定如何分區(qū)
  • 創(chuàng)建分區(qū)方案,指定分區(qū)函數(shù)的分區(qū)在文件組上的位置
  • 創(chuàng)建使用分區(qū)方案的表

6. 第六章 操縱數(shù)據(jù)

  1. 分組技術(shù)
    group by子句
    聚合函數(shù)只能產(chǎn)生一個單一的匯總數(shù)據(jù),使用group by 子句,則可以生成分組的匯總數(shù)據(jù)。group by 子句把數(shù)據(jù)組織起來分成組。
    group by 子句,having子句和聚合函數(shù)一起完成對每一個組生成一行和一個匯總值。在使用group by 子句和having子句的過程中,要求考慮下列一些條件:
  • 在select子句中的非合計列必須出現(xiàn)在group by 子句中
  • 在having子句中的列只返回一個值
  • 因為having子句是作為group by子句的條件出現(xiàn)的,所以having子句必須與group by子句同時出現(xiàn),并且必須在group by 子句之后出現(xiàn)。
  • group by子句可以包括表達式
  • group by all顯示出所有組,甚至那些不滿足where子句條件的組也顯示出來。如果group by all 和having 子句同時出現(xiàn),那么having條件將覆蓋all。
  1. 連接技術(shù)
  • 交叉連接(笛卡爾乘積)cross join
  • 內(nèi)連接 inner join連接運算符和on關(guān)鍵字指定連接條件
  • 外連接 left outer join、right outer joinfull outer join

7. 第七章 索引

  1. 索引
    索引是一種與表或視圖關(guān)聯(lián)的物理結(jié)構(gòu),可以用來加快從表或視圖中檢索數(shù)據(jù)行的速度。

  2. 為什么創(chuàng)建索引?
    (1)創(chuàng)建唯一性索引,可以保證每一行數(shù)的唯一性。
    (2)可以大大加快數(shù)據(jù)的檢索速度。
    (3)可以加速表和表之間的連接。
    (4)在使用group by 和order by子句進行數(shù)據(jù)檢索時,可以顯著減少查詢中分組和排序的時間。
    (5)通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能

  3. 不利之處
    (1)創(chuàng)建索引和維護索引要耗費時間
    (2)索引需要占物理空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個索引還要占一定的物理空間。
    (3)對表中的數(shù)據(jù)進行增加、刪除和修改時,索引也要動態(tài)的維護,這樣就降低了數(shù)據(jù)的維護速度。

  4. 索引的類型和特點
    (1)聚集索引和非聚集索引
    聚集索引是一種數(shù)據(jù)表的物理順序與索引順序相同的索引,非聚集索引則是一種數(shù)據(jù)表的物理順序與索引順序不相同的索引。

    當(dāng)創(chuàng)建聚集索引時,應(yīng)該考慮下列因素:

    • 每一個表最多只能有一個聚集索引
    • 表中行的物理順序和索引中行的順序是相同的
    • 索引鍵值的唯一性可以使用unique關(guān)鍵字明確維護,或由一個內(nèi)部的唯一標(biāo)識符明確維護。
    • 對于頻繁更改的列不適合創(chuàng)建聚集索引

(2)非聚集索引與聚集索引的區(qū)別?

  • 聚集索引一個表只能有一個,而非聚集索引一個表可以存在多個
  • 聚集索引存儲記錄是物理上連續(xù)存在,而非聚集索引是邏輯上的連續(xù),物理存儲并不連續(xù)
  • 聚集索引:物理存儲按照索引排序;聚集索引是一種索引組織形式,索引的鍵值邏輯順序決定了表數(shù)據(jù)行的物理存儲順序。
  • 非聚集索引:物理存儲不按照索引排序;非聚集索引則就是普通索引了,僅僅只是對數(shù)據(jù)列創(chuàng)建相應(yīng)的索引,不影響整個表的物理存儲順序。
  • 索引是通過二叉樹的數(shù)據(jù)結(jié)構(gòu)來描述的,我們可以這么理解聚簇索引:索引的葉節(jié)點就是數(shù)據(jù)節(jié)點。而非聚簇索引的葉節(jié)點仍然是索引節(jié)點,只不過有一個指針指向?qū)?yīng)的數(shù)據(jù)塊。
  • 非聚集索引與聚集索引的區(qū)別在于非聚集索引的葉子節(jié)點不存儲表中的數(shù)據(jù),而是存儲該列對應(yīng)的主鍵

8. 第八章 數(shù)據(jù)完整性

  1. 數(shù)據(jù)完整性就是指存儲在數(shù)據(jù)庫中的數(shù)據(jù)的一致性和準(zhǔn)確性。分為3種類型:域完整性實體完整性引用完整性。
  2. 約束的概念和類型
    約束是通過限制列中數(shù)據(jù)、行中數(shù)據(jù)和表之間的數(shù)據(jù)來保證數(shù)據(jù)完整性的非常有效的方法。約束可以確保把有效的數(shù)據(jù)輸入到列中并維護表和表之間的特定關(guān)系。系統(tǒng)提供了5種約束類型:
    (1)DEFAULT約束

使用create table 語句定義default約束:

create table students(
	student ID INT,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M',
	birthdate DATETIME,
	SSL  CHAR(18)
)

使用 alter table 語句定義default約束:

alter table students
	ADD constraint D_student_birthdate
	DEFAULT '1990-01-01',
	FOR birthdate

當(dāng)使用default約束時,需要考慮下列因素:

  • 定義的常量值必須與該列的數(shù)據(jù)類型和精度是一致的。
  • default約束只能應(yīng)用于insert語句
  • 每一個列只能定義一個default約束。
  • default約束不能放在有identity屬性的列上或者數(shù)據(jù)類型為timestamp的列上。

(2)CHECK約束
使用create table 語句定義check約束

create table students(
	student ID INT,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M' CHECK (gender = 'F' OR gender = 'M'),
	birthdate DATETIME,
	SSL  CHAR(18)
)

使用alter table 語句定義check約束

alter table students
	ADD CHECK (birthdate >= '1980-01-01' AND birthdate <= '1990-12-31')

當(dāng)使用檢查約束時,需要考慮下列因素:

  • 一個列上可以定義多個check約束
  • 執(zhí)行insert 語句或者update 語句時,該約束驗證相應(yīng)的數(shù)據(jù)是否滿足check約束的條件。
  • check約束可以參考本表中的其他列
  • check約束不能包含子查詢語句
    (3)主鍵約束
    在create table語句中定義主鍵約束
create table students(
	student ID INT PRIMARY KEY,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M' CHECK (gender = 'F' OR gender = 'M'),
	birthdate DATETIME,
	SSL  CHAR(18)
)

定義包含了兩個列的逐漸約束

create table nationalStudents(
	university ID INT NOT NULL,
	student ID INT NOT NULL,
	PRIMARY KEY(university ID, student ID),
	studentName VARCHAR(60),
	gender CHAR(1)
	birthdate DATETIME,
	SSL  CHAR(18)
)

當(dāng)使用主鍵約束時,應(yīng)該考慮下列因素:

  • 每一個表最多只能定義一個主鍵約束
  • 主鍵列所輸入的值必須時唯一的
  • 主鍵列不允許空值

(4)UNIQUE約束
使用alter table 語句定義unique約束

alter table students
	ADD UNIQUE(SSL)

在創(chuàng)建unique約束時,需要考慮下列因素:

  • unique約束所在的列允許空值
  • 一個表中可以有多個unique約束
  • 可以把unique約束放在一個或者多個列上,這些列或列的組合必須有唯一的值
  • unique約束強制在指定的列上創(chuàng)建一個唯一性索引

(5)外鍵約束

9. 第九章 視圖

  1. 視圖的概念
    視圖是查看數(shù)據(jù)庫表中數(shù)據(jù)的一種方式,是一個虛擬的表,是一個表中的數(shù)據(jù)經(jīng)過某種篩選后的顯示方式,視圖由一個預(yù)定義的查詢select語句組成。

  2. 視圖的特點。

視圖中的數(shù)據(jù)并不屬于視圖本身,而是屬于基本的表,對視圖可以像表一樣進行insert,update,delete操作。

視圖不能被修改,表修改或者刪除后應(yīng)該刪除視圖再重建。

視圖的數(shù)量沒有限制,但是命名不能和視圖以及表重復(fù),具有唯一性。

視圖可以被嵌套,一個視圖中可以嵌套另一個視圖。

視圖不能索引,不能有相關(guān)聯(lián)的觸發(fā)器和默認值,sql server不能在視圖后使用order by排序。

  1. 為什么要使用視圖

①簡化數(shù)據(jù)操作:視圖可以簡化用戶處理數(shù)據(jù)的方式。

②著重于特定數(shù)據(jù):不必要的數(shù)據(jù)或敏感數(shù)據(jù)可以不出現(xiàn)在視圖中。

③視圖提供了一個簡單而有效的安全機制,可以定制不同用戶對數(shù)據(jù)的訪問權(quán)限。

④提供向后兼容性:視圖使用戶能夠在表的架構(gòu)更改時為表創(chuàng)建向后兼容接口。

⑤自定義數(shù)據(jù):視圖允許用戶以不同方式查看數(shù)據(jù)。

⑥導(dǎo)出和導(dǎo)入數(shù)據(jù):可使用視圖將數(shù)據(jù)導(dǎo)出到其他應(yīng)用程序。

  1. 視圖的類型
    SQL server中,一般把視圖分為三類: 標(biāo)準(zhǔn)視圖、索引視圖、分區(qū)視圖.一般情況下我們使用的視圖都是標(biāo)準(zhǔn)視圖,它是一個虛擬表,不占物理存儲空間.如果要提高聚合多行數(shù)據(jù)的視圖性能,可以創(chuàng)建索引視圖.索引視圖是被物理化的視圖,它包含經(jīng)過計算的物理數(shù)據(jù).使用分區(qū)視圖可以連接一臺或多臺服務(wù)器中成員表的分區(qū)數(shù)據(jù),使得這些數(shù)據(jù)看起來就像來自一個表中一樣.
  2. 創(chuàng)建視圖
create VIEW view_name
as
select_statement

如果希望加密定義文本,可以在定義視圖時使用with encryption 子句
如果不希望更改視圖的基表,可以在定義新視圖時使用with schemabinding子句
刪除視圖:DROP VIEW view_name

10. 第十章 存儲過程、觸發(fā)器

  1. 存儲過程的特點、類型和作用
  • 存儲過程(Stored Procedure)是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL 語句集,存儲在數(shù)據(jù)庫中,經(jīng)過第一次編譯后調(diào)用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。 存儲過程是數(shù)據(jù)庫中的一個重要對象。
    (1)存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而
    一般SQL 語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速
    度。
    (2)當(dāng)對數(shù)據(jù)庫進行復(fù)雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。
    (3)存儲過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量
    (4)安全性高,可設(shè)定只有某此用戶才具有對指定存儲過程的使用權(quán)

  • 存儲過程的類型有3種:用戶定義的存儲過程、擴展存儲過程和系統(tǒng)存儲過程

  • 存儲過程的優(yōu)點:
    (1)減少網(wǎng)絡(luò)通信量。
    (2)執(zhí)行速度更快。
    (3)更強的適應(yīng)性。
    (4) 分布式工作。

  1. 創(chuàng)建存儲過程的規(guī)則
    (1)使用create procedure語句創(chuàng)建存儲過程
create procedure procedure_name
parameter_name data_type, ...
with producedure_option
as
aql_statement

(2)創(chuàng)建一個簡單的存儲過程

create procedure HumanResources.Get EmployeeFullName
AS
select lastName, firstName, Department
from humanResources, vEmployeeDepartment

(3)創(chuàng)建一個帶參數(shù)的存儲過程

create procedure HumanResources.Get EmployeeInfo
	@LastName VARCHAR(50)
	@FirstName VARCHAR(50)
AS
SELECT LastName, FirstName, JobTitle, Department
From HumanResources.Get EmployeeFullName
where lastname = @lastname
AND firstname = @firstname

(3)創(chuàng)建帶有output類型參數(shù)的存儲過程

create procedure dbo.ComputePlus
	@FirstPara decimal(10, 2),
	@SecondPara decimal(10, 2),
	@PlusResult decimal(10,2) output
AS
SET @PlusResult = @FirstPara + @SecondPara
  1. 執(zhí)行存儲過程
    execute語句執(zhí)行存儲過程
    (1)執(zhí)行簡單的存儲過程
EXEC HumanResources.Get EmployeeFullName

(2)為存儲過程直接提供參數(shù)值

EXEC HumanResources.Get EmployeeInfo
	'Glimp', 'Diane'

(3)為存儲過程間接提供參數(shù)值

declare @LastName VARCHAR(50)
declare @FirstName VARCHAR(50)
set @LastName = 'Glimp'
set @FirstName = 'Diane'
EXEC HumanResources.Get EmployeeInfo
	@LastName, @FirstName

(4)使用output參數(shù)執(zhí)行存儲過程

declare @result decimal(10, 2)
EXEC dbo.ComputePlus 123, 568, @result output
print @result
  1. 修改和刪除存儲過程
    (1)刪除存儲過程
drop  procedure HumanResources.Get EmployeeInfo

(2)修改存儲過程

alter procedure
  1. 存儲過程的執(zhí)行過程
    存儲過程創(chuàng)建之后,在第一次執(zhí)行時需要經(jīng)過語法分析階段、解析階段、編譯階段和執(zhí)行階段。
  2. 查看存儲過程的信息
object_definition
  1. 觸發(fā)器
    (1)創(chuàng)建DML觸發(fā)器
create trigger trigger_name
on table_name_or_view_name
with encryption
{for|after|instend of}{[delete][,][insert][,][update]}
as sql_statement

(2)創(chuàng)建DDL觸發(fā)器文章來源地址http://www.zghlxwxcb.cn/news/detail-453379.html

create trigger trigger_name
on {all server|database}
with encryption
{for|after}{event_type}
as sql_statement

第十一章 備份和還原

  1. 數(shù)據(jù)的恢復(fù)模式
  • 完整恢復(fù)模式(等級最高)
  • 大容量日志記錄恢復(fù)模式
  • 簡單恢復(fù)模式
  1. 備份有四種方式
  • 全備份:創(chuàng)建備份完成時數(shù)據(jù)庫內(nèi)存在的數(shù)據(jù)的副本;
  • 差異備份:只記錄自上次數(shù)據(jù)庫備份后發(fā)生更改的數(shù)據(jù)。 差異數(shù)據(jù)庫備份比數(shù)據(jù)庫備份小,而且備份速度快,因此可以更經(jīng)常地備份,經(jīng)常備份將減少丟失數(shù)據(jù)的危險;
  • 日志備份:是自上次備份事務(wù)日志后對數(shù)據(jù)庫執(zhí)行的所有事務(wù)的一系列記錄。 可以使用事務(wù)日志備份將數(shù)據(jù)庫恢復(fù)到特定的即時點(如輸入多余數(shù)據(jù)前的那一點)或恢復(fù)到故障點;
  • 文件組備份:可以備份和還原數(shù)據(jù)庫中的個別文件。 可以只還原已損壞的文件,而不用還原數(shù)據(jù)庫的其余部分,從而加快了恢復(fù)速度。
  1. 備份的動態(tài)特點
  • 檢查點機制檢查數(shù)據(jù)庫,記錄最早的事務(wù)日志記錄的日志序列號
  • 通過之間閱讀磁盤,把全部的數(shù)據(jù)頁寫進備份介質(zhì)中
  • 從捕捉到的序列號到日志末尾,寫全部的事務(wù)日志記錄
  1. 創(chuàng)建永久性的備份文件
sp_addumpdevice 'device_type',’logical_name‘,’physical_name‘
EXEC sp_addumpdevice 'disk', 'testfile', 'c:\temp\testfile.bak'
5. 創(chuàng)建臨時性備份文件
backup database master
	to disk = 'c:\temp\masterBackup_1215.bak'

到了這里,關(guān)于SQl Server 2008 知識點概括【數(shù)據(jù)庫】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Sql】Sql Server 2008 數(shù)據(jù)庫附加,錯誤:9004

    【問題描述】 數(shù)據(jù)庫文件存在異常狀況,有可能是因為硬盤有壞區(qū)引起的。 附加數(shù)據(jù)庫的時候,提示錯誤9004。 【解決方法】 假設(shè)數(shù)據(jù)庫名稱為:UFDATA_001_2023 請按順序執(zhí)行以下步驟: 1、將數(shù)據(jù)庫的文件名:UFDATA_001_2023復(fù)制到別的位置留作備用; 2、新建數(shù)據(jù)庫:UFDATA_001_

    2024年02月15日
    瀏覽(92)
  • SQL Server2008 修改數(shù)據(jù)庫密碼方法

    SQL Server2008 修改數(shù)據(jù)庫密碼方法

    1、 使用Window身份驗證方式登錄,選擇數(shù)據(jù)庫實例,右鍵選擇屬性—安全性;將服務(wù)器身份驗證選項從“Window身份驗證模式”改為“SQLServer和Window身份驗證模式”。點擊確認,關(guān)閉當(dāng)前對資源管理器。 2、 重新使用Windows驗證方式登錄,在左邊的樹結(jié)構(gòu)中選擇“數(shù)據(jù)庫”下面的

    2024年02月13日
    瀏覽(94)
  • 【SQL Server】---SQL Server 2008 R2數(shù)據(jù)庫導(dǎo)入(還原).bak文件

    【SQL Server】---SQL Server 2008 R2數(shù)據(jù)庫導(dǎo)入(還原).bak文件

    以下是簡述SQL Server把備份的數(shù)據(jù).bak文件還原、導(dǎo)入的方法。 一、新建數(shù)據(jù)庫、數(shù)據(jù)文件夾; ? ? ? ? 1.新建數(shù)據(jù)庫Cola:打開SQL Server-數(shù)據(jù)庫-新建數(shù)據(jù)庫; ???????? ????????? ? ? ? ? 2.新建.bak數(shù)據(jù)文件夾:新建一個文件夾,把.bak數(shù)據(jù)文件放到該文件夾下; ?????

    2024年02月13日
    瀏覽(96)
  • 數(shù)據(jù)庫知識點

    索引本質(zhì)上是一張表,保存了主鍵與索引字段,在對數(shù)據(jù)做頻繁的查詢或排序時,可在某些字段上添加索引,提高檢索的的效率,降低IO成本,并可以使用索引列,對數(shù)據(jù)進行排序,降低排序的成本。盲目的添加索引是不正確的。索引表保存數(shù)據(jù)占用空間,在對數(shù)據(jù)進行增刪

    2024年02月06日
    瀏覽(34)
  • 大型數(shù)據(jù)庫期末總復(fù)習(xí)【SQL server 2008 基礎(chǔ)教程】

    大型數(shù)據(jù)庫期末總復(fù)習(xí)【SQL server 2008 基礎(chǔ)教程】

    Microsoft SQL Server 2008系統(tǒng)由4個主要部分組成。這4個部分被稱為4個服務(wù),這些服務(wù)分別是 數(shù)據(jù)庫引擎、分析服務(wù)、報表服務(wù)和集成服務(wù) 。這些服務(wù)之間相互存在和相互應(yīng)用,它們的關(guān)系示意圖如圖所示: 1.Microsoft SQL Server 2008系統(tǒng)提供了兩種類型的數(shù)據(jù)庫,即系統(tǒng)數(shù)據(jù)庫和用戶

    2024年02月06日
    瀏覽(93)
  • 【期末專題】數(shù)據(jù)庫知識點整理

    【期末專題】數(shù)據(jù)庫知識點整理

    1.要求:修改表的“價格”列,使其數(shù)據(jù)類型為decimal(6,2) 語句:alter table BookInfo modify price decimal(6,2); 注意點:修改一個表中已有列的數(shù)據(jù)類型的語句格式: ??????? alter table 表名 modify 列名 數(shù)據(jù)類型 2.要求: 語句: 注意點: 創(chuàng)建觸發(fā)器的語法: create trigger 觸發(fā)器名 ??

    2024年02月11日
    瀏覽(15)
  • 奇跡MU架設(shè)教程:SQL Server 2008數(shù)據(jù)庫的安裝教程

    奇跡MU架設(shè)教程:SQL Server 2008數(shù)據(jù)庫的安裝教程

    不管是搭建什么游戲,都是有數(shù)據(jù)庫的,奇跡MU用的是SQL 數(shù)據(jù)庫,根據(jù)服務(wù)器系統(tǒng)選擇SQL server版本,我比較喜歡用Windows server 2008R2系統(tǒng),所以我安裝的是SQL server 2008。作為架設(shè)奇跡很重要的數(shù)據(jù)庫程序,今天飛飛和你分享SQL Server 2008數(shù)據(jù)庫的安裝教程,希望可以幫助到你。

    2024年02月16日
    瀏覽(95)
  • 數(shù)據(jù)庫相關(guān)理論知識(有目錄便于直接鎖定相關(guān)知識點+期末復(fù)習(xí))

    一,數(shù)據(jù)模型,關(guān)系型數(shù)據(jù)模型,網(wǎng)狀模型,層次模型 1. 數(shù)據(jù)庫模型 是用來描述和表示現(xiàn)實世界中的事物、概念以及它們之間的關(guān)系的工具, 但是并不是越專業(yè)越好,還要平衡它的模型的復(fù)雜性、通用性和成本效益等因素 。數(shù)據(jù)模型按不同的應(yīng)用層次可以分為 三個層次 ,

    2024年03月16日
    瀏覽(24)
  • 軟考軟件設(shè)計師 數(shù)據(jù)庫知識點筆記

    軟考軟件設(shè)計師 數(shù)據(jù)庫知識點筆記

    了解即可 外模式對應(yīng)視圖 概念模式對應(yīng)的是數(shù)據(jù)庫管理系統(tǒng)里面的基本表 內(nèi)模式對應(yīng)的是數(shù)據(jù)庫里的一些存儲文件 上圖可直接背下面概念 有內(nèi)模式跟物理獨立性相關(guān),有外模式跟邏輯獨立性相關(guān) 兩級映像其中有一方肯定是模式,如下提d選項 候選碼的意思它只能表示那個

    2023年04月13日
    瀏覽(90)
  • 數(shù)據(jù)庫系統(tǒng)概述——第六章 關(guān)系數(shù)據(jù)理論(知識點復(fù)習(xí)+練習(xí)題)

    數(shù)據(jù)庫系統(tǒng)概述——第六章 關(guān)系數(shù)據(jù)理論(知識點復(fù)習(xí)+練習(xí)題)

    ?? 博主: 命運之光 ?? 專欄: 離散數(shù)學(xué)考前復(fù)習(xí)(知識點+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數(shù)字電路考前復(fù)習(xí) ?? 專欄: 數(shù)據(jù)庫系統(tǒng)概述 ?? 博主的其他文章: 點擊進入博主的主頁????? 前言: 身為大學(xué)生考前復(fù)習(xí)一定十分痛苦,你有沒有過

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包