成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

sqlserver數(shù)據(jù)庫(kù)的管理以及維護(hù)

   http://xiaorenwutest.blog.51cto.com   

            數(shù)據(jù)庫(kù)和表的管理

前言:上次主要介紹的是sql server數(shù)據(jù)庫(kù)的搭建以及通過(guò)SSMS工具進(jìn)行連接數(shù)據(jù)庫(kù),本次內(nèi)容主要介紹數(shù)據(jù)庫(kù)的表進(jìn)行管理。在工作中DBA通常對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建和刪除以及修改表的內(nèi)容,擴(kuò)展和收縮、分離及附加。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的興安盟網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

表是存放數(shù)據(jù)、查找數(shù)據(jù)以及更新數(shù)據(jù)的基本數(shù)據(jù)構(gòu)建,在對(duì)數(shù)據(jù)的操作都是在表的基礎(chǔ)上進(jìn)行的,以及如何維護(hù)表。   注:實(shí)際上表是邏輯的存在,事實(shí)上數(shù)據(jù)存放在硬盤上面。

另外在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候回形成兩個(gè)基本的庫(kù)文件主數(shù)據(jù)庫(kù)文件.mdf和事物日志文件.ldf

sql server 2008R2如何存儲(chǔ)數(shù)據(jù)

數(shù)據(jù)庫(kù)在磁盤上是以文件為單位存儲(chǔ)的,由數(shù)據(jù)文件和事物日志文件組成。一個(gè)數(shù)據(jù)庫(kù)至少應(yīng)該包含一個(gè)數(shù)據(jù)文件和一個(gè)事物日志文件。

數(shù)據(jù)庫(kù)創(chuàng)建在物理介質(zhì)(磁盤)上的一個(gè)或多個(gè)文件上,它預(yù)先分配了被數(shù)據(jù)和事物日志所要適用的物理存儲(chǔ)空間。存儲(chǔ)數(shù)據(jù)的文件叫做數(shù)據(jù)文件,數(shù)據(jù)文件包含數(shù)據(jù)和對(duì)象,如表和索引。存儲(chǔ)事物日志的文件叫做事物日志文件(又稱日志文件)。

sql server 2008 R2數(shù)據(jù)庫(kù)有一下類型的文件

1. 主數(shù)據(jù)文件

2. 輔數(shù)據(jù)文件

3. 事物日志文件

4. 文件流

舉例說(shuō)明

--創(chuàng)建數(shù)據(jù)庫(kù)

create database schoolDB

go

use schoolDB

go

這樣創(chuàng)建完的數(shù)據(jù)庫(kù)只有一個(gè)數(shù)據(jù)文件和一個(gè)事物日志文件,查看方式在創(chuàng)建的schoolDB上右鍵選擇“屬性”--“文件”

 

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

可以在界面中單擊“添加”增加新的數(shù)據(jù)文件schooldb2,以后再schooldb數(shù)據(jù)庫(kù)中創(chuàng)建新的表,表中的數(shù)據(jù)就會(huì)存放在schooldb和schoolDB2數(shù)據(jù)文件中。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

數(shù)據(jù)文件在數(shù)據(jù)庫(kù)中存放的時(shí)候都有標(biāo)識(shí),我們可以通過(guò)sp_helpdb schoolDB

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

數(shù)據(jù)文件結(jié)構(gòu)

數(shù)據(jù)文件1和數(shù)據(jù)文件3的結(jié)構(gòu)如果所示:

數(shù)據(jù)文件由64kb大小的區(qū)(extend)組成的,每個(gè)區(qū)由8個(gè)8KB的連續(xù)的頁(yè)組成的。

sqlserver所能識(shí)別的最小存儲(chǔ)單元被稱為頁(yè),一個(gè)頁(yè)的大小是8KB,是sql server存儲(chǔ)數(shù)據(jù)的單位。

在數(shù)據(jù)庫(kù)中一頁(yè)的大小是8KB,在計(jì)算機(jī)中1KB就是1024,所以1頁(yè)可以存放1024*8=8192個(gè)字節(jié)




 sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù)

 


 

 

 












  

 1.1. 如何根據(jù)表的記錄數(shù)量估算占用的磁盤空間

1.先算一個(gè)表中一行有多少個(gè)字節(jié),例如學(xué)號(hào)字段6個(gè)字節(jié),姓名字段8個(gè)字節(jié),出生日期字段多少個(gè)字節(jié)

2.算一個(gè)頁(yè)能夠存多少行

3.數(shù)據(jù)庫(kù)中的表每天增加多少行記錄,就能夠算出每天要增加多少硬盤空間,這樣就可根據(jù)數(shù)據(jù)量估算規(guī)劃多大的空間。

在數(shù)據(jù)庫(kù)中創(chuàng)建一張Tstudent表

 

create TABLE TStudent (

  StudentID varchar(10) NOT NULL,

  Sname varchar(10) DEFAULT NULL,

sex char(2) DEFAULT NULL,

cardID varchar(20) DEFAULT NULL,

  Birthday datetime DEFAULT NULL,

  Email varchar(40) DEFAULT NULL,

  Class varchar(20) DEFAULT NULL,

enterTime datetime DEFAULT NULL

 )

go

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

10個(gè)字節(jié)+10個(gè)字節(jié)+2個(gè)字節(jié)+20字節(jié)+8字節(jié)+40字節(jié)+20字節(jié)+8個(gè)字節(jié)=118字節(jié)

Tstudent表的一個(gè)行有118個(gè)字節(jié)

如果每天增加10000條記錄,10000條記錄占多少頁(yè)?

1頁(yè)可以存放1024*8=8192個(gè)字節(jié),拋去標(biāo)頭96字節(jié),真正存放的字節(jié)數(shù)就8192-96=8096字節(jié)。

一頁(yè)能存8096字節(jié),一頁(yè)能夠存8096/118=68條記錄

10000行有多少頁(yè)?10000/68=148(頁(yè))

一頁(yè)是8KB,148*8==1184KB

在Tstudent表中存放10000條記錄需要預(yù)備出來(lái)1MB多的磁盤空間。這樣就可以根據(jù)每天增加的記錄數(shù),合理規(guī)劃好磁盤空間了。

現(xiàn)在Tstudent表中還沒(méi)有插入任何記錄,所以占用了0頁(yè)的數(shù)據(jù)

提供查看數(shù)據(jù)文件頁(yè)數(shù)的命令

select OBJECT_NAME(i.object_id) as 表名,data_pages as 數(shù)據(jù)頁(yè)數(shù)

from sys.indexes as i

join sys.partitions as p ON p.object_id=i.object_id and p.index_id=i.index_id

join sys.allocation_units as a ON a.container_id=p.partition_id

where i.object_id=object_id('dbo.TStudent')

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

執(zhí)行教學(xué)環(huán)境中的存儲(chǔ)過(guò)程,添加10000條記錄

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

這個(gè)頁(yè)數(shù)和我們剛才算出來(lái)的有些差距,這是正常的,每一頁(yè)可能并沒(méi)有插入68條記錄。

1.2. 事物日志

事物是一個(gè)或多個(gè)T-SQL語(yǔ)句的集合,事物有一個(gè)特性:要么執(zhí)行成功,要么執(zhí)行失敗。每個(gè)sql server數(shù)據(jù)庫(kù)都具有事物日志,用于記錄所有事物的SQL語(yǔ)句。當(dāng)發(fā)生數(shù)據(jù)災(zāi)難時(shí)候,通過(guò)事物日志記錄的T-SQL語(yǔ)句可以恢復(fù)數(shù)據(jù)庫(kù)。

如果系統(tǒng)出現(xiàn)故障,sql server將使用事物日志重做(前滾)所有已確認(rèn)的事物,撤銷(回滾)所有未完成的事物。

1.3. 創(chuàng)建數(shù)據(jù)庫(kù)(擴(kuò)展/收縮)

使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù),在對(duì)象資源管理器中,右擊“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,打開(kāi)“新建數(shù)據(jù)庫(kù)”窗口,設(shè)置數(shù)據(jù)庫(kù)名稱為“class”,制定數(shù)據(jù)庫(kù)的所有者,默認(rèn)創(chuàng)建數(shù)據(jù)庫(kù)的用戶將成為該數(shù)據(jù)庫(kù)的所有者。主數(shù)據(jù)文件初始值為3mb,自動(dòng)增長(zhǎng)值為1mb,當(dāng)數(shù)據(jù)文件或日志文件空間使用完之后,會(huì)根據(jù)設(shè)定的自動(dòng)增長(zhǎng)值增大文件的容量。

在路徑列中可以設(shè)置數(shù)據(jù)文件和日志文件的保存路徑。單擊“確定”之后一個(gè)新的數(shù)據(jù)庫(kù)就建立成功了,隨之會(huì)生成兩個(gè)文件一個(gè)是包含數(shù)據(jù)文件的.mdf,一個(gè)是包含日志信息的.ldf文件。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

創(chuàng)建數(shù)據(jù)庫(kù)之前,必須先確定數(shù)據(jù)庫(kù)的名稱,所有者(創(chuàng)建數(shù)據(jù)庫(kù)的用戶),大小以及存儲(chǔ)該數(shù)據(jù)文件和事物日志文件的位置。

如果要對(duì)數(shù)據(jù)庫(kù)做數(shù)據(jù)庫(kù)級(jí)別的設(shè)置

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

在數(shù)據(jù)庫(kù)屬性中選擇“選項(xiàng)”,在右側(cè)可以修改數(shù)據(jù)庫(kù)相關(guān)的屬性。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

1.3.1. 擴(kuò)展數(shù)據(jù)庫(kù)

當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件和日志文件被充滿時(shí)候,需要為數(shù)據(jù)文件和日志文件分配更多的空間。sql server 可以根據(jù)在新建數(shù)據(jù)庫(kù)時(shí)定義的增長(zhǎng)參數(shù)自動(dòng)擴(kuò)展數(shù)據(jù)庫(kù),也可以通過(guò)在現(xiàn)有的數(shù)據(jù)文件上分配更多的文件空間,或者在另一個(gè)新的數(shù)據(jù)文件上分配空間來(lái)手動(dòng)擴(kuò)展數(shù)據(jù)庫(kù)。

擴(kuò)展數(shù)據(jù)庫(kù)時(shí),必須使數(shù)據(jù)庫(kù)的容量至少增加1mb,還可以指定允許文件增長(zhǎng)到的最大值,這樣可以防止文件無(wú)限制的增長(zhǎng),導(dǎo)致用盡整個(gè)磁盤空間。

舉例說(shuō)明:

將class數(shù)據(jù)庫(kù)的class數(shù)據(jù)文件大小設(shè)置為100MB,不自動(dòng)增長(zhǎng),然后添加一個(gè)新的數(shù)據(jù)文件,文件名為“class1”,初始文件大小設(shè)置為“50MB”,自動(dòng)增長(zhǎng),最大文件大小設(shè)置為“500MB”

在對(duì)象資源管理器中,右擊class數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“屬性”命令,打開(kāi)“數(shù)據(jù)庫(kù)屬性-class”窗口,在“數(shù)據(jù)庫(kù)屬性-class”窗口的“選擇頁(yè)”中選擇“文件”選項(xiàng),打開(kāi)“文件”選擇頁(yè)

配置為如下圖所示:最后單擊“確定”

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

1.3.2. 收縮數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)在使用一段時(shí)間后,時(shí)常會(huì)因?yàn)閿?shù)據(jù)刪除而造成數(shù)據(jù)庫(kù)中空閑空間增多的情況,這時(shí)就需要減少分配給數(shù)據(jù)庫(kù)文件和事物日志文件的磁盤空間,以免浪費(fèi)磁盤空間。當(dāng)數(shù)據(jù)庫(kù)中沒(méi)有數(shù)據(jù)時(shí),可以修改數(shù)據(jù)庫(kù)文件屬性,直接改變其占用空間,但是當(dāng)數(shù)據(jù)庫(kù)中有數(shù)據(jù)時(shí),這樣做會(huì)破壞數(shù)據(jù)庫(kù)中的數(shù)據(jù),因此需要使用收縮的方式來(lái)縮減數(shù)據(jù)庫(kù)空間。

數(shù)據(jù)庫(kù)中的每個(gè)文件都可以通過(guò)刪除未使用的空間的方法來(lái)減小,SQL server允許通過(guò)縮小數(shù)據(jù)庫(kù),把不使用的空間釋放出來(lái),數(shù)據(jù)文件和日志文件都可以收縮??梢圆捎檬謩?dòng)收縮和自動(dòng)收縮數(shù)據(jù)庫(kù)。

手動(dòng)收縮數(shù)據(jù)庫(kù)的方法

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

從圖中可以看出來(lái)即可以選擇收縮數(shù)據(jù)庫(kù),也可以選擇單獨(dú)收縮某個(gè)數(shù)據(jù)文件。

收縮數(shù)據(jù)庫(kù):

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

在收縮數(shù)據(jù)庫(kù)時(shí),無(wú)法將整個(gè)數(shù)據(jù)庫(kù)收縮到比初始大小更小,如果數(shù)據(jù)庫(kù)創(chuàng)建時(shí)的大小是10mb,后來(lái)增長(zhǎng)到10mb,則該數(shù)據(jù)庫(kù)最小只能收縮到10mb,即使已經(jīng)刪除了所有數(shù)據(jù)也是10mb。但是收縮文件時(shí),可以將數(shù)據(jù)庫(kù)文件收縮得比其初始大小更小

收縮數(shù)據(jù)文件

選擇--“任務(wù)”--“收縮”--“文件”命令,打開(kāi)收縮文件對(duì)話框

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

在“文件類型”下拉列表框中選擇“數(shù)據(jù)”選項(xiàng),也可以在這里選擇收縮日志文件。”當(dāng)前分配的空間“選項(xiàng)和”可用空間“選項(xiàng)顯示了該文件的占用空間,使用空間和收縮的百分比。

釋放未使用的空間:將釋放文件中所有未使用的空間,并將文件收縮到上次分配的大小,這樣將減小文件大小,但不移動(dòng)任何數(shù)據(jù)。

在釋放未使用空間前重新組織頁(yè):將釋放文件中所有未使用的空間,并嘗試重新定位到未分配的空間。這里需要指定”將文件收縮到“選項(xiàng)的值。

通過(guò)將數(shù)據(jù)遷移到同一文件組中的其他文件來(lái)清空文件:將指定文件中所有數(shù)據(jù)遷移至同一文件組中的其他文件中,然后可以刪除空文件。

根據(jù)需要確定選項(xiàng),然后單擊“確定”,執(zhí)行收縮操作。

自動(dòng)收縮數(shù)據(jù)庫(kù)

可以通過(guò)設(shè)置“數(shù)據(jù)庫(kù)屬性--class”窗口中的“選項(xiàng)”選擇頁(yè)中的“自動(dòng)收縮”選項(xiàng)參數(shù)來(lái)實(shí)現(xiàn)自動(dòng)收縮功能。將“自動(dòng)收縮”選項(xiàng)設(shè)置為“true”后,將自動(dòng)收縮可用空間的數(shù)據(jù)庫(kù)。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

1.3.3. 分離和附加數(shù)據(jù)庫(kù)

如果要將數(shù)據(jù)庫(kù)更改到同一計(jì)算機(jī)的不同sql server實(shí)例中或要移動(dòng)數(shù)據(jù)庫(kù),就可以使用分離和附加數(shù)據(jù)庫(kù)的功能了??梢苑蛛x數(shù)據(jù)庫(kù)的數(shù)據(jù)文件和日志文件,然后將它們從新附加到同一其他SQL Server實(shí)例中。

分離數(shù)據(jù)庫(kù)

分離數(shù)據(jù)庫(kù)是指將數(shù)據(jù)庫(kù)從SQL server實(shí)例中移除,但是要保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件和日志文件完整無(wú)損。這些分離的數(shù)據(jù)文件和日志文件可以附加到其他的數(shù)據(jù)庫(kù)實(shí)例中。

舉例說(shuō)明:

將class數(shù)據(jù)庫(kù)進(jìn)行分離

在對(duì)象資源管理器中右擊class數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“任務(wù)”---“分離”命令,打開(kāi)“分離數(shù)據(jù)庫(kù)”窗口。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

數(shù)據(jù)庫(kù)中有一個(gè)或多個(gè)活動(dòng)連接時(shí),“消息”列將顯示活動(dòng)連接的數(shù)量,如“一個(gè)活動(dòng)連接”。必須選中“刪除連接”復(fù)選框以斷開(kāi)所有活動(dòng)連接。

默認(rèn)情況下,分離操作將在分離數(shù)據(jù)庫(kù)時(shí)保留過(guò)期的優(yōu)化統(tǒng)計(jì)信息,若要更新現(xiàn)有的優(yōu)化統(tǒng)計(jì)信息,可以選中“更新統(tǒng)計(jì)信息”復(fù)選框。

 

附加數(shù)據(jù)庫(kù)

附加數(shù)據(jù)庫(kù)時(shí),所有的數(shù)據(jù)文件(主數(shù)據(jù)文件和次要數(shù)據(jù)文件)都必須可用。如果任何數(shù)據(jù)文件的路徑不同于首次創(chuàng)建數(shù)據(jù)庫(kù)或上次附加數(shù)據(jù)庫(kù)時(shí)的路徑,則必須指定文件的當(dāng)前路徑。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

單擊“添加”按鈕,選擇“class.mdf”數(shù)據(jù)文件

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

單擊“確定”之后,附加文件成功。

如果數(shù)據(jù)庫(kù)的事物日志文件丟失,數(shù)據(jù)文件保持完好,也可以附加成功,在附加的時(shí)候,數(shù)據(jù)庫(kù)會(huì)自動(dòng)新建事物日志文件。

 

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

1.3.4. 刪除數(shù)據(jù)庫(kù)

當(dāng)用戶不在需要自己的數(shù)據(jù)庫(kù)時(shí)就可以刪除數(shù)據(jù)庫(kù)了,但不能刪除系統(tǒng)數(shù)據(jù)庫(kù)。刪除數(shù)據(jù)庫(kù)后,文件及其數(shù)據(jù)都從服務(wù)器上的磁盤中刪除,一旦刪除數(shù)據(jù)庫(kù),就會(huì)被永久刪除。

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

確認(rèn)要?jiǎng)h除的數(shù)據(jù)庫(kù)

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

1.4. 表的基本管理

數(shù)據(jù)完整性:

實(shí)體完整性:確保每一行有一個(gè)唯一的標(biāo)識(shí)列:

域完整性:規(guī)定該列能夠接受的數(shù)據(jù)取值(域完整性)

引用完整性:表內(nèi)和表間的列參照

用戶定義的完整性:列級(jí)約束和表級(jí)約束,存儲(chǔ)過(guò)程及觸發(fā)器

主鍵:唯一標(biāo)識(shí)表中的記錄,一個(gè)主鍵值對(duì)應(yīng)一行數(shù)據(jù)。主鍵由一個(gè)或多個(gè)字段組成,主鍵值具有唯一性,而且不允許取空值(null),一個(gè)表只能有一個(gè)主鍵。

如果主鍵由多個(gè)列組成,則其中一個(gè)列將允許有重復(fù)值,但是主鍵中所有列的值得各種組合必須是唯一的。

定義主鍵可以對(duì)在不允許空值的指定列中輸入的值強(qiáng)制其唯一性。如果為數(shù)據(jù)庫(kù)中的某個(gè)表定義了主鍵,則可將該表與其他表相關(guān)連,從而減少對(duì)冗余數(shù)據(jù)的要求。

sql server 中的每個(gè)數(shù)據(jù)庫(kù)最多可以存儲(chǔ)20億個(gè)表,每個(gè)表可以有1024列,表的行數(shù)及大小僅受可用存儲(chǔ)空間的限制,每行最多可以存儲(chǔ)8060B,創(chuàng)建表時(shí)必須指定表名,列名即數(shù)據(jù)類型等。

1.5. sql server的數(shù)據(jù)類型

1. 數(shù)字型代表數(shù)字 int tinyint smallint bigint  十進(jìn)制小數(shù)money smallmoney decimal  浮點(diǎn)數(shù)和real

2. 日期型 datetime 可以精確到0.333毫秒small

3. 字符型包括char和nchar也包含變長(zhǎng)字符類型varchar和nvarchar

4. 定長(zhǎng)字符  char(20)

5. 變長(zhǎng)字符  varchar(20)

6. Char  適合存放英文一個(gè)字符占用1個(gè)字節(jié)

7. Nchar 適合存放中文一個(gè)字符占用2個(gè)字節(jié)

8. 二進(jìn)制型 Binary和varbinary,bit代表一位的值0或1,rowversion代表數(shù)據(jù)庫(kù)中唯一的8位二進(jìn)制。

1.5.1. 默認(rèn)值

如果插入行時(shí)沒(méi)有為列指定值,則該列使用默認(rèn)值,默認(rèn)值可以是計(jì)算結(jié)果為常量的任何值,可以是表達(dá)式,內(nèi)置函數(shù)或數(shù)學(xué)表達(dá)式。

對(duì)于表的每個(gè)列,如果沒(méi)有分配默認(rèn)的值,并且保留為空白:則

1.如果設(shè)置了允許空值的選項(xiàng),則將象該列中插入NULL

2.如果沒(méi)有設(shè)置允許為空值,則該列將保持空白。但在用戶為該列提供值之前,他們將無(wú)法保存行。

1.5.2. 標(biāo)識(shí)符列

對(duì)于每個(gè)表,均可創(chuàng)建一個(gè)博暗含系統(tǒng)生成的序號(hào)值得標(biāo)識(shí)付列,該序號(hào)值以唯一的方式標(biāo)識(shí)表中的每一行。當(dāng)在表中插入行時(shí),標(biāo)識(shí)符列可自動(dòng)為應(yīng)用程序生成唯一的標(biāo)號(hào)。

標(biāo)識(shí)符列具有以下三種特點(diǎn)

1.列的數(shù)據(jù)類型為不帶小數(shù)的數(shù)值類型

2.在進(jìn)行插入操作時(shí),該列的值有系統(tǒng)按一定規(guī)律生成,不允許用空值

3.列值不重復(fù),具有標(biāo)識(shí)表中每一行的作用。每個(gè)表只能有一個(gè)標(biāo)識(shí)列

創(chuàng)建標(biāo)識(shí)列,通常指定三個(gè)內(nèi)容

類型:decimal ,int,numeric,smallint,bigint,tinyint。其中decimal和numeric,小數(shù)位數(shù)必須為零

種子:指派給表中第一行的值:默認(rèn)為“1”

地增量:相鄰兩個(gè)標(biāo)識(shí)值之間的增量,默認(rèn)為1.

1.5.3. check約束

通過(guò)限制列可接收的值,check約束可以強(qiáng)制域的完整性。此類約束類似于外鍵約束,因?yàn)榭梢钥刂品湃肓兄械闹怠5撬麄冊(cè)诖_定有效值的方式上有所不同。外鍵約束從其他表中獲得有效值列表,而check約束通過(guò)不基于其他列中的數(shù)據(jù)的邏輯表達(dá)式確定有效值。

可以通過(guò)任何基于邏輯運(yùn)算符返回TRUE或FALSE的邏輯表達(dá)式創(chuàng)建check約束。

舉例說(shuō)明:

可以通過(guò)創(chuàng)建check約束將age列中的值得范圍限制在0-200之間的數(shù)據(jù),以防止輸入的年齡值超出正常的年齡范圍,邏輯表達(dá)式為:

age >=0 and age <=200

1.6. 管理表

在class 數(shù)據(jù)庫(kù)中創(chuàng)建表,表名為“student”,其中包含列為:學(xué)生編號(hào)(int),姓名(nvarchar(50)),×××號(hào)(varchar(18)),所在班級(jí)(thinyint),成績(jī)(tinyint),備注(nvarchar(2000)),其中學(xué)生編號(hào)自動(dòng)生成,從1開(kāi)始,每增加1人則編號(hào)自動(dòng)增加1,要求輸入成績(jī)的時(shí)候,其值必須為0-100,設(shè)置×××號(hào)列為主鍵:

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

為學(xué)生編號(hào)列設(shè)置標(biāo)識(shí)列,標(biāo)識(shí)增量和標(biāo)識(shí)種子設(shè)置為“1”,如圖所示:

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

分別新建“姓名”,“×××號(hào)”,“所在班級(jí)”,“成績(jī)”,“備注”如圖所示

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

由于要求輸入成績(jī)時(shí),值必須是0-100,因此可以在成績(jī)列設(shè)置“check約束”,

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

在打開(kāi)的“check約束”對(duì)話框中,單擊“添加”按鈕,然后在“常規(guī)”文本框中輸入“表達(dá)式”為“成績(jī)>=0 and成績(jī)<=100”。單擊確定即可

 sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù)

 

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

右擊“×××號(hào)”,在彈出的快捷菜單中選擇“設(shè)置主鍵”,可將該列設(shè)置為主鍵,主鍵列的左邊會(huì)顯示“×××鑰匙”,圖標(biāo)

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

設(shè)置完成后,保存該表,

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

輸入表的名稱“student”

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

在對(duì)象資源管理器中查看剛剛創(chuàng)建的student表

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

編輯student表,右擊表,在彈出的快捷菜單中選擇“編輯前200行”命令,然后可以在表中插入、更新或刪除數(shù)據(jù)了

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

修改表的結(jié)構(gòu)

如果需要修改表結(jié)構(gòu),在表中新增或刪除字段,則需要重新對(duì)表進(jìn)行設(shè)計(jì),在對(duì)象資源管理器中,右擊student表,選擇“設(shè)計(jì)”命令

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

刪除表:如果需要?jiǎng)h除表,可以右擊表student,在彈出的快捷菜單中選擇“刪除”命令

sql server 數(shù)據(jù)庫(kù)的管理以及維護(hù) 

使用T-SQL語(yǔ)句操作數(shù)據(jù)表

使用iNSERT語(yǔ)句將數(shù)據(jù)插入到表中

INSERT INTO <表名> [列名] VALUES <值列表>

INSERT INTO student (姓名,×××號(hào),所在班級(jí),成績(jī)) VALUES ('百合','152323198201190045',2,90)

更新數(shù)據(jù)

使用UPDATE語(yǔ)句更新表中的數(shù)據(jù)

UPDATE <表名> set <列名=更新值> [WHERE <更新條件>]

update student set 成績(jī)=‘88’where姓名=‘玉蘭’

刪除數(shù)據(jù)

使用delete語(yǔ)句刪除表中的數(shù)據(jù)

DELETE FROM <表名> [WHERE <刪除條件>]

DELETE FROM student WHERE 姓名=‘玉蘭’

刪除student表中所有記錄

DELETE FROM student

 

使用truncate table 語(yǔ)句刪除表中的數(shù)據(jù)

truncate table 語(yǔ)句用來(lái)刪除表中的所有行,功能上類似于沒(méi)有WHERE子句的DELETE語(yǔ)句。

TRUNCATE TABLE <表名>

要?jiǎng)h除student表中的所有記錄,可以使用如下語(yǔ)句

TRUNCATE TABLE student

TRUNCATE語(yǔ)句與DELETE語(yǔ)句的區(qū)別

1. TRUNCATE語(yǔ)句不帶WHERE子句,只能將整個(gè)表數(shù)據(jù)清空,而DELETE語(yǔ)句可以帶WHERE子句,允許按條件刪除某些記錄

2. TRUNCATE語(yǔ)句不記錄事物日志,而DELETE語(yǔ)句無(wú)論刪除多少條記錄,都會(huì)記錄事物日志,所以使用TRUNCATE語(yǔ)句刪除數(shù)據(jù)后是無(wú)法通過(guò)事物日志恢復(fù)數(shù)據(jù)。

3. TRUNCATE語(yǔ)句刪除表中所有行,標(biāo)識(shí)符列會(huì)重置為0,而DELETE語(yǔ)句不會(huì)重置標(biāo)識(shí)付列。

4. TRUNCATE語(yǔ)句不能用于有外鍵約束引用的表,這種情況下需要使用DELETE語(yǔ)句。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享名稱:sqlserver數(shù)據(jù)庫(kù)的管理以及維護(hù)
URL鏈接:http://jinyejixie.com/article2/pdceic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)站制作、App開(kāi)發(fā)軟件開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
郁南县| 宁夏| 介休市| 嘉峪关市| 盈江县| 新宁县| 亚东县| 天峨县| 鲁甸县| 郎溪县| 南陵县| 土默特左旗| 北流市| 东莞市| 桦南县| 红河县| 汪清县| 堆龙德庆县| 同仁县| 富蕴县| 青岛市| 昭苏县| 郓城县| 吴川市| 布拖县| 吉木萨尔县| 舒兰市| 合川市| 镇沅| 万山特区| 乌兰察布市| 商南县| 双辽市| 依安县| 收藏| 棋牌| 福贡县| 阳江市| 武夷山市| 萍乡市| 阿克苏市|