版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章,SQL SERVER數(shù)據(jù)庫表管理,2,掌握建庫的SQL語句 掌握建表的SQL語句 掌握加約束的SQL語句 掌握創(chuàng)建安全帳戶的SQL語句 創(chuàng)建數(shù)據(jù)庫表 設(shè)置表的主鍵、外鍵和建立表之間的關(guān)系 為表增加約束,本章目標(biāo),3,創(chuàng)建數(shù)據(jù)庫,CREATE DATABASE 數(shù)據(jù)庫名 ON [PRIMARY] ( [,…n] [] ) [LOG ON] ( [,…n] ),T-SQL創(chuàng)建數(shù)據(jù)庫的語法:
2、,主文件組,可選參數(shù),默認(rèn),4,創(chuàng)建數(shù)據(jù)庫示例 1,CREATE DATABASE stuDB ON PRIMARY --默認(rèn)就屬于PRIMARY主文件組,可省略( NAME='stuDB_data', --主數(shù)據(jù)文件的邏輯名 FILENAME='D:\project\stuDB_data.mdf', --主數(shù)據(jù)文件的物理名 SIZE=5mb, --主數(shù)據(jù)文件初始大小 MAXSI
3、ZE=100mb, --主數(shù)據(jù)文件增長的最大值 FILEGROWTH=15% --主數(shù)據(jù)文件的增長率)LOG ON( NAME='stuDB_log', FILENAME='D:\project\stuDB_log.ldf', SIZE=2mb, FILEGROWTH=1MB)GO,數(shù)據(jù)文件的具體描述,,日志文件的具體描述,,5,創(chuàng)建數(shù)據(jù)庫示例 2,CREATE DAT
4、ABASE employees ON ( /*-主數(shù)據(jù)文件的具體描述-*/ NAME = 'employee1', FILENAME = 'D:\project\employee1_Data.mdf' , SIZE = 10, FILEGROWTH = 10% ), ( /*-次要數(shù)據(jù)文件的具體描述-*/ NAME = 'em
5、ployee2', FILENAME = 'D:\project\employee2_Data.ndf' , SIZE = 20, MAXSIZE = 100, FILEGROWTH = 1 ),LOG ON ( /*-日志文件1的具體描述-*/ NAME = 'employeelog1', FILENAME = 'D:\pro
6、ject\employeelog1_Log.ldf' , SIZE = 10, FILEGROWTH = 1 ), ( /*-日志文件2的具體描述-*/ NAME = 'employeelog2', FILENAME = 'D:\project\employeelog2_Log.ldf' , SIZE = 10, MAXSIZE =
7、50, FILEGROWTH = 1 )GO,6,USE master --設(shè)置當(dāng)前數(shù)據(jù)庫為master,以便訪問sysdatabases表GOIF EXISTS(SELECT * FROM sysdatabases WHERE name ='stuDB') DROP DATABASE stuDBCREATE DATABASE stuDBON ( …..)LOG ON(
8、…)GO,刪除數(shù)據(jù)庫,刪除數(shù)據(jù)庫的語法:,DROP DATABASE 數(shù)據(jù)庫名,EXISTS()語句:檢測是否存在stuDB數(shù)據(jù)庫如果存在stuDB數(shù)據(jù)庫,則刪除,7,SQL Server的數(shù)據(jù)類型,,8,建表的基本步驟,,確定表中有哪些列確定每列的數(shù)據(jù)類型給表添加各種約束創(chuàng)建各表之間的關(guān)系,9,創(chuàng)建表,建表的語法,CREATE TABLE 表名 ( 字段1 數(shù)據(jù)類型 列的特征, 字段2 數(shù)據(jù)類型 列的特征
9、, ...),列的特征:包括該列是是否為空(NULL)、是否是標(biāo)識列(自動編號)、是否有默認(rèn)值、是否為主鍵等。,,10,建表示例 1,USE stuDB --將當(dāng)前數(shù)據(jù)庫設(shè)置為stuDB GOCREATE TABLE stuInfo /*-創(chuàng)建學(xué)員信息表-*/( stuName VARCHAR(20) NOT NULL , --姓名,非空(必填) stuNo CHAR(6) NOT
10、NULL, --學(xué)號,非空(必填) stuAge INT NOT NULL, --年齡,INT類型默認(rèn)為4個字節(jié) stuID NUMERIC(18,0), --身份證號 stuSeat SMALLINT IDENTITY (1,1), --座位號,自動編號 stuAddress TEXT --住址,允許為空,即可選輸入) GO,NUMERIC (18,0)代表18位數(shù)字,小數(shù)位數(shù)為0
11、,IDENTITY(起始值,遞增量),11,建表示例 2,CREATE TABLE stuMarks( ExamNo CHAR(7) NOT NULL, --考號 stuNo CHAR(6) NOT NULL, --學(xué)號 writtenExam INT NOT NULL, --筆試成績 LabExam INT NOT NULL --機(jī)試成績)GO,12,刪除表,刪除表的語法:,DROP TAB
12、LE 表名,USE stuDB --將當(dāng)前數(shù)據(jù)庫設(shè)置為stuDB ,以便在stuDB數(shù)據(jù)庫中建表GOIF EXISTS(SELECT * FROM sysobjects WHERE name=’stuInfo’ ) DROP TABLE stuInfoCREATE TABLE stuInfo /*-創(chuàng)建學(xué)員信息表-*/(…..) GO,13,數(shù)據(jù)完整性,數(shù)據(jù)完整性,+,=,準(zhǔn)確性,可靠性,數(shù)據(jù)
13、存放在表中“數(shù)據(jù)完整性的問題大多是由于設(shè)計引起的”創(chuàng)建表的時候,就應(yīng)當(dāng)保證以后數(shù)據(jù)輸入是正確的錯誤的數(shù)據(jù)、不符合要求的數(shù)據(jù)不允許輸入,創(chuàng)建表:保證數(shù)據(jù)的完整性 = 實施完整性約束,14,SQL Server的約束,約束的目的:確保表中數(shù)據(jù)的完整型常用的約束類型:主鍵約束(Primary Key Constraint)要求主鍵列數(shù)據(jù)唯一,并且不允許為空唯一約束(Unique Constraint)要求該列唯一,允許為空,但
14、只能出現(xiàn)一個空值。檢查約束(Check Constraint)某列取值范圍限制、格式限制等,如有關(guān)年齡的約束默認(rèn)約束(Default Constraint)某列的默認(rèn)值,如我們的男性學(xué)員較多,性別默認(rèn)為“男”外鍵約束(Foreign Key Constraint)用于兩表間建立關(guān)系,需要指定引用主表的那列,15,添加約束,添加約束的語法:,ALTER TABLE 表名 ADD CONSTRAINT 約束名 約
15、束類型 具體的約束說明,約束名的取名規(guī)則推薦采用:約束類型_約束字段主鍵(Primary Key)約束:如 PK_stuNo唯一(Unique Key)約束:如 UQ_stuID默認(rèn)(Default Key)約束:如 DF_stuAddress檢查(Check Key)約束:如 CK_stuAge外鍵(Foreign Key)約束:如 FK_stuNo,16,添加約束示例,ALTER TABLE stuInfo
16、ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID)ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不詳') FOR stuAddressALTER T
17、ABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)GO,添加主鍵約束(stuNo作為主鍵),添加唯一約
18、束(因為每人的身份證號全國唯一),添加默認(rèn)約束(如果地址不填,默認(rèn)為“地址不詳”),添加檢查check約束,要求年齡只能在15-40歲之間,添加外鍵約束(主表stuInfo和從表stuMarks建立關(guān)系,關(guān)聯(lián)字段為stuNo),17,選擇主鍵的原則,,最少性盡量選擇單個鍵作為主鍵穩(wěn)定性盡量選擇數(shù)值更新少的列作為主鍵,18,主外鍵關(guān)系,,演示建立數(shù)據(jù)庫關(guān)系圖……,19,主外鍵關(guān)系,,當(dāng)主表中沒有對應(yīng)的記錄時,不能將記錄添加到子表
19、成績表中不能出現(xiàn)在學(xué)員信息表中不存在的學(xué)號;不能更改主表中的值而導(dǎo)致子表中的記錄孤立把學(xué)員信息表中的學(xué)號改變了,學(xué)員成績表中的學(xué)號也應(yīng)當(dāng)隨之改變;子表存在與主表對應(yīng)的記錄,不能從主表中刪除該行不能把有成績的學(xué)員刪除了刪除主表前,先刪子表先刪學(xué)員成績表、后刪除學(xué)員信息表,20,刪除約束,如果錯誤地添加了約束,我們還可以刪除約束 刪除約束的語法,ALTER TABLE 表名 DROP CONSTRAINT 約束
20、名,例如:刪除stuInfo表中地址默認(rèn)約束ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress,21,總結(jié),1、保證數(shù)據(jù)完整性從()步驟開始。A、建立數(shù)據(jù)庫B、建立數(shù)據(jù)庫表C、在表中輸入數(shù)據(jù)D、數(shù)據(jù)導(dǎo)出2、創(chuàng)建表的字段主要有哪些操作項? 輸入字段名確定數(shù)據(jù)類型確定是否允許為空確定是否為主鍵或者標(biāo)識列確定默認(rèn)值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- sqlserver數(shù)據(jù)庫學(xué)習(xí)筆記
- sqlserver數(shù)據(jù)庫無法收縮問題
- sqlserver 數(shù)據(jù)庫課程設(shè)計
- sqlserver數(shù)據(jù)庫教學(xué)大綱
- sqlserver數(shù)據(jù)庫設(shè)計與實現(xiàn)
- 《sqlserver數(shù)據(jù)庫》課程設(shè)計
- sqlserver數(shù)據(jù)庫課程設(shè)計--選課管理系統(tǒng)
- sqlserver數(shù)據(jù)庫課程設(shè)計模板
- sqlserver數(shù)據(jù)庫試題3含答案
- 基于SQLSERVER數(shù)據(jù)庫的批發(fā)管理系統(tǒng).pdf
- 《sqlserver數(shù)據(jù)庫》課程設(shè)計范例
- eclipse連接sqlserver2008數(shù)據(jù)庫
- sqlserver與數(shù)據(jù)庫應(yīng)用開發(fā)課程
- sqlserver 數(shù)據(jù)庫開啟遠(yuǎn)程連接設(shè)置
- eclipse連接sqlserver2008數(shù)據(jù)庫
- 3創(chuàng)建數(shù)據(jù)庫
- jsp連接sqlserver2005數(shù)據(jù)庫步驟
- sqlserver數(shù)據(jù)庫技術(shù)與應(yīng)用模擬試卷
- 創(chuàng)建數(shù)據(jù)庫.doc
- 數(shù)據(jù)庫應(yīng)用sqlserver模擬試卷和答案
評論
0/150
提交評論