第3章(2) 數(shù)據(jù)庫(kù)中的表.ppt_第1頁(yè)
第3章(2) 數(shù)據(jù)庫(kù)中的表.ppt_第2頁(yè)
第3章(2) 數(shù)據(jù)庫(kù)中的表.ppt_第3頁(yè)
第3章(2) 數(shù)據(jù)庫(kù)中的表.ppt_第4頁(yè)
第3章(2) 數(shù)據(jù)庫(kù)中的表.ppt_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第4章 數(shù)據(jù)庫(kù)中的表,SQL Server 2005中的數(shù)據(jù)類型,十進(jìn)制類型需要自己定義精度和小數(shù)位數(shù),其他的均不需要定義。但是其他的可能把有效位數(shù)丟失。,1、數(shù)值類型 整型:bigint、int、smallint、tinyint 位型:bit 貨幣型:mony、smallmony 十進(jìn)制:decimal和numeric(需要規(guī)定精度和小數(shù)位數(shù)) 近似數(shù)字:float、real,2. 字符數(shù)據(jù)類型 字符型數(shù)據(jù)可以表示文字、數(shù)字或其他特殊符號(hào),在定義字符型數(shù)據(jù)時(shí),必須指定一個(gè)數(shù)值,用來(lái)表示字符型數(shù)據(jù)的長(zhǎng)度。,一個(gè)非Unicode的字符(最前面沒有n)數(shù)據(jù)所占的存儲(chǔ)容量為1字節(jié),而一個(gè)Unicod

2、e的字符(最前面有n)數(shù)據(jù)所占的存儲(chǔ)容量為2字節(jié)。 對(duì)于固定長(zhǎng)度(無(wú)var)的字符型數(shù)據(jù),當(dāng)實(shí)際的字符長(zhǎng)度小于指定大小時(shí),它將會(huì)自動(dòng)在字符后面補(bǔ)空格填滿整個(gè)長(zhǎng)度,使數(shù)據(jù)長(zhǎng)度固定 可變長(zhǎng)度(有var)的字符型數(shù)據(jù)可以隨著存放的字符長(zhǎng)度大小自動(dòng)調(diào)整其占用的存儲(chǔ)空間,當(dāng)實(shí)際的字符長(zhǎng)度小于指定大小時(shí),它不會(huì)在字符后面補(bǔ)空格,而是以實(shí)際存入的字符長(zhǎng)度保存。當(dāng)存儲(chǔ)在字段中的字符長(zhǎng)度經(jīng)常變化時(shí),可變長(zhǎng)度的字符型數(shù)據(jù)將是較好的選擇,它可以減少不必要的空間浪費(fèi),有效地節(jié)省空間,3. 日期時(shí)間數(shù)據(jù)類型 日期時(shí)間型數(shù)據(jù)是可以用來(lái)存儲(chǔ)日期和時(shí)間的組合數(shù)據(jù)。當(dāng)要在字段中存放日期/時(shí)間信息,如出生日期、進(jìn)貨時(shí)間等,就可以

3、將字段定義為日期時(shí)間數(shù)據(jù)類型。在SQL Server中定義了兩種日期時(shí)間數(shù)據(jù)類型,分別是smalldatetime和datetime,且日期和時(shí)間一起存放的,沒有單獨(dú)存放日期或時(shí)間的。,4. 二進(jìn)制數(shù)據(jù)類型 二進(jìn)制數(shù)據(jù)類型是一些用十六進(jìn)制數(shù)來(lái)表示的數(shù)據(jù)。在SQL Server中提供了三種數(shù)據(jù)類型來(lái)存儲(chǔ)二進(jìn)制數(shù)據(jù),分別是binary,varbinary和image 使用image數(shù)據(jù)類型可以來(lái)存儲(chǔ)圖片或影像數(shù)據(jù),或者是存放特殊格式化的文件數(shù)據(jù),如Word,Excel,PDF文件等。,41 創(chuàng)建表,表是數(shù)據(jù)庫(kù)中的重要組成部分,創(chuàng)建了數(shù)據(jù)庫(kù)之后就應(yīng)創(chuàng)建表。創(chuàng)建數(shù)據(jù)表主要有兩種方法,分別是利用圖形界面

4、方式創(chuàng)建表和利用SQL命令方式創(chuàng)建表。,411 使用管理器創(chuàng)建表 在建立表之前先要分析表的結(jié)構(gòu),即表名、表中的字段及類型等。,步驟2:在“表”處擊右鍵選擇“新建表”,彈出如下窗口。,步驟1:展開至要建立表的數(shù)據(jù)庫(kù)節(jié)點(diǎn),即展開某個(gè)數(shù)據(jù)庫(kù)前的“”。,步驟2:在“表”處擊右鍵選擇“新建表”,彈出如下窗口。,注意: 1、建立表后要保存。 2、不是我們建立的系統(tǒng)表不能刪除。 3、建立表后雙擊它可以查看它的屬性,在該表上擊右鍵選擇“修改”可以修改表的結(jié)構(gòu)。 4、在該表上擊右鍵選擇“重命名”可以重命名表。但是建立表以后不要輕易對(duì)表進(jìn)行重命名,因?yàn)橹孛鎯?chǔ)過程、視圖等無(wú)效,所以重命名表要慎重。 5、輸入數(shù)據(jù)

5、的方法:在表上擊右鍵選擇“打開表”。,設(shè)置主鍵的方法:右擊要設(shè)置為主鍵字段前的按鈕處選擇“設(shè)置主鍵”。如果是多個(gè)字段作為主鍵那么就需要先按住Ctrl鍵選中多個(gè)字段。,設(shè)置標(biāo)識(shí)種子和默認(rèn)值。 (1) 標(biāo)識(shí)種子: 作用:在我們輸入數(shù)據(jù)時(shí),有些數(shù)值是按照一定的規(guī)律增長(zhǎng)的,比如編號(hào)是1、2、3,那么這些規(guī)律的數(shù)據(jù)就可以作為標(biāo)識(shí)種子而不需要手工輸入。 方法:在表設(shè)計(jì)器中,定位到對(duì)應(yīng)的字段(一般都是整型或數(shù)值型),在下部分列屬性的“標(biāo)識(shí)規(guī)范”的“(是標(biāo)識(shí))”處選擇“是”,“標(biāo)識(shí)種子”處輸入數(shù)字的起始值,在“種子遞增量”處輸入數(shù)字每次增長(zhǎng)的數(shù)值數(shù)。 注意:一般是在設(shè)計(jì)表時(shí)直接設(shè)置好。,(2) 默認(rèn)值: 作用

6、:在某些字段的值中,有些數(shù)值是大部分記錄都有的,比如說民族中的“漢族”,性別中的“男”等等,那么可以為這些字段添加上默認(rèn)值,即:如果在本字段不輸入值時(shí),將默認(rèn)填上對(duì)應(yīng)的值而不是NULL。 方法:在表設(shè)計(jì)器中,定位到對(duì)應(yīng)的字段,在下部分列屬性的“默認(rèn)值或綁定”處填上對(duì)應(yīng)的默認(rèn)值。,412 使用SQL命令方式創(chuàng)建表,一、Create Table的格式 :,CREATE TABLE 數(shù)據(jù)庫(kù)名.所有者.表名 ( 字段名 數(shù)據(jù)類型 (字段大小) NULL|NOT NULL ,n ),create table 部門 (4-1) ( 順序號(hào) int primary key identity(1,1) not

7、 null, 部門編號(hào) int, 部門名稱 varchar(100), 創(chuàng)建日期 smalldatetime default getdate() ),說明: 1. 如果在表名前省略“數(shù)據(jù)庫(kù)名.所有者”,那么默認(rèn)的是在當(dāng)前所有者,默認(rèn)所有者為dbo。 2. 如果允許為空null可以省略,但是不允許為空時(shí)not null 不能省略。 3. 除開字符類型和精確型數(shù)值以外,其他的均不能設(shè)置類型的字段大小。 4. primary key 為設(shè)置成主鍵, identity(1,1) 為標(biāo)識(shí)種子,且primary key、identity(1,1)、not null可以互換位置。 5. default為設(shè)置

8、默認(rèn)值, getdate()為設(shè)置默認(rèn)值為當(dāng)前日期和時(shí)間。,42 表管理和維護(hù),當(dāng)表創(chuàng)建完成之后,我們可以查看、修改或刪除已經(jīng)存在的表。例如可以查看表的定義信息,修改表的結(jié)構(gòu)、內(nèi)容等。,421 查看表的屬性(了解) 1使用SQL Server Management Studio查看表的屬性。 在“對(duì)象資源管理器”中右擊要查看屬性的數(shù)據(jù)表,然后選擇“屬性”即可。,2使用存儲(chǔ)過程查看表結(jié)構(gòu)信息 格式:EXECUTE sp_help 表名 【例4.3】查看kc表的結(jié)構(gòu)。 EXEC sp_help kc,422 修改表結(jié)構(gòu),1、使用管理器修改表結(jié)構(gòu) 在數(shù)據(jù)庫(kù)的“表”節(jié)點(diǎn),右擊要修改的表。在彈出的快捷菜

9、單中選擇“修改”命令。在彈出的“設(shè)計(jì)表”窗口中,即可以完成修改表結(jié)構(gòu)的操作(刪除字段、修改字段、添加/追加字段),操作方法與創(chuàng)建表時(shí)相同。,422 修改表結(jié)構(gòu),2、使用T- SQL語(yǔ)句修改表結(jié)構(gòu),分三種情況修改: (1) 增加字段 : 格式:alter table 表名 add 字段名 類型 其他屬性設(shè)置,【例4.4】向xs表增加如下兩個(gè)字段。,USE xsgl (4-4) GO ALTER TABLE xs ADD 電話 CHAR(8)NULL ALTER TABLE xs ADD 電子郵件 CHAR(40) NULL GO,(2) 修改現(xiàn)有字段 : 格式: alter table 表名 a

10、lter column 字段名 類型 其他屬性設(shè)置,【例4.5】將xs表中的電子郵件字段的列長(zhǎng)改為20。,ALTER TABLE xs (4-5) ALTER COLUMN 電子郵件 CHAR(20) NULL,【例4.6】將xs表中的電話列刪除。,ALTER TABLE xs (4-6) DROP COLUMN 電話,(3) 刪除字段 : 格式: alter table 表名 drop column 字段名,423 刪除數(shù)據(jù)表,刪除表就是將表的數(shù)據(jù)和表的結(jié)構(gòu)從數(shù)據(jù)庫(kù)中永久的移除。也就是說,一個(gè)表一旦被刪除,則該表的數(shù)據(jù)、結(jié)構(gòu)定義、約束、索引等都被永久刪除,就無(wú)法恢復(fù),除非還原數(shù)據(jù)庫(kù)。因此執(zhí)行

11、此操作時(shí)應(yīng)該慎重。,方法1:在SQL Server Management Studio的“對(duì)象資源管理器”中,選擇要?jiǎng)h除的數(shù)據(jù)表,單擊右鍵,在彈出的快捷菜單中選擇“刪除” 。,2、使用DROP TABLE 命令 格式:DROP TABLE 表名,.n,【例4.8】刪除xsgl數(shù)據(jù)庫(kù)中的cj表。,USE xsgl (4-8) GO DROP TABLE cj GO,在使用DROP TABLE語(yǔ)句刪除數(shù)據(jù)庫(kù)表時(shí),需注意以下幾點(diǎn)。 (1)DROP TABLE語(yǔ)句不能刪除系統(tǒng)表。 (2)DROP TABLE語(yǔ)句不能刪除正被其他表中的外鍵約束參考的表。當(dāng)需要?jiǎng)h除這種有外鍵約束參考的表時(shí),必須先刪除外鍵約

12、束,然后才能刪除表。 (3)當(dāng)刪除表時(shí),屬于該表的約束和觸發(fā)器也會(huì)自動(dòng)被刪除。如果重新創(chuàng)建該表,必須注意創(chuàng)建相應(yīng)的規(guī)則、約束和觸發(fā)器等。 (4)使用DROP TABLE命令一次可以刪除多個(gè)表,多個(gè)表名之間用逗號(hào)分開。,43 表數(shù)據(jù)的操作,表創(chuàng)建以后,往往只是一個(gè)沒有數(shù)據(jù)的空表。因此,向表中輸入數(shù)據(jù)應(yīng)當(dāng)是創(chuàng)建表之后首先要執(zhí)行的操作。無(wú)論表中是否有數(shù)據(jù),都可以根據(jù)需要向表中添加數(shù)據(jù),如果表中的數(shù)據(jù)不再需要,則可以刪除這些數(shù)據(jù)。,431 圖形界面方式操作表數(shù)據(jù) 在“在對(duì)象資源管理窗口”中右擊要操作數(shù)據(jù)的表選擇“打開表”即可追加、刪除和修改記錄。,注意:在編輯表中數(shù)據(jù)的過程中,輸入的各列的內(nèi)容一定要和

13、所定義的數(shù)據(jù)類型一致,如果有其他定義或約束等要求,也一定要符合,否則將出現(xiàn)錯(cuò)誤。,432 使用INSERT命令向表中添加數(shù)據(jù),insert語(yǔ)句格式: insert into 表名字段1,字段2, values(值1,值2, ) 要求:值1、值2的順序與表中字段的順序一致,如果不一致或不完整,需要在“表名”后用圓括號(hào)把要插入字段的名字括起來(lái).,如:create table 成績(jī) ( 姓名 varchar(8), 語(yǔ)文 numeric(5,2), 數(shù)學(xué) numeric(5,2), 英語(yǔ) numeric(5,2) ) insert into 成績(jī) values(張三,88,85,92) insert

14、 into 成績(jī)(姓名,語(yǔ)文,英語(yǔ)) values(李四,85,77) select * from 成績(jī),【例4.9】向xs表中插入記錄。,USE xsgl (4-9) GO INSERT xs(學(xué)號(hào),姓名,性別,出生時(shí)間,專業(yè),總學(xué)分,照片,備注) VALUES(2006030101, 王林, 男 ,88/02/03,NULL,20,NULL,NULL) INSERT xs VALUES(2006030102,程明,男,88/05/15,NULL,20,NULL,NULL) INSERT xs(學(xué)號(hào),姓名,性別,出生時(shí)間,專業(yè),總學(xué)分) VALUES(2006030103,王燕,女,87/0

15、8/22,NULL,20) GO,433 使用UPDATE修改表中的數(shù)據(jù),當(dāng)我們需要更改表中的記錄時(shí),可以采用在圖形界面方式中直接更改的方法,但是如果更改的數(shù)量比較多或更改某一條件的記錄,那么手工改寫的方法比較麻煩,又不能保證一致性。所以采用update方法既快速有保證一致性。,使用update語(yǔ)句對(duì)目標(biāo)表中的一行、多行或所有行記錄進(jìn)行更新:,格式: update 目標(biāo)表名 set 字段名=表達(dá)式 where ,例:將kc表中“課程號(hào)”為A002的“課程名”改為“高等數(shù)學(xué)”。,update kc (4-10) set 課程名= 高等數(shù)學(xué) where 課程號(hào)= A002,例:將cj表中將學(xué)號(hào)為2

16、006030101的成績(jī)減去10分。,select * from cj where 學(xué)號(hào)=2006030101 (4-11) update cj set 成績(jī) = 成績(jī) - 10 where 學(xué)號(hào)=2006030101 select * from cj where 學(xué)號(hào)=2006030101,例:將xs表中學(xué)號(hào)為2006030110的性別改為“男”并且將專業(yè)改為“網(wǎng)絡(luò)工程” 。,update xs (4-12) set 性別=男,專業(yè)=網(wǎng)絡(luò)工程 where 學(xué)號(hào)=2006030110,【例4.10】將xs表中所有學(xué)生的專業(yè)設(shè)為“信管”。,UPDATE xs (4-13) SET 專業(yè)=信管,【

17、例4.11】將xs表中所有男學(xué)生專業(yè)名稱改寫為“信息管理”。,說明:不使用where 表示對(duì)所有的記錄進(jìn)行修改。,UPDATE xs (4-14) SET 專業(yè)=信息管理 WHERE 性別=男,434 使用DELETE或TRANCATE TABLE刪除表中的數(shù)據(jù),隨著實(shí)際情況的變化,表中的一些記錄可能需要被刪除,以提高數(shù)據(jù)查詢的質(zhì)量。刪除表中數(shù)據(jù)用DELETE語(yǔ)句來(lái)完成。使用T-SQL中的DELETE語(yǔ)句可以刪除數(shù)據(jù)表中的個(gè)或多個(gè)記錄。其基本語(yǔ)法格式如下。 DELETE FROM表名 WHERE 注意:若在DELETE語(yǔ)句中沒有給出WHERE子句,則刪除表中所有記錄。,例4.12】將xs表中學(xué)號(hào)為“2006030102”的同學(xué)記錄刪除。,USE xsgl (4-15) GO DELETE xs

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論