數據庫表的創立、治理和數據操作(試驗一)。本站提示廣大學習愛好者:(數據庫表的創立、治理和數據操作(試驗一))文章只能為提供參考,不一定能成為您想要的結果。以下是數據庫表的創立、治理和數據操作(試驗一)正文
明天我們就以試驗的情勢對表的創立、治理和數據操作停止進修,上課吧。
【試驗目標】:懂得SQL說話的應用,進一步懂得關系運算,穩固數據庫的基本常識。
【試驗請求】:應用SQL說話停止數據庫表的各類操作:
1.數據庫表的創立、修正和刪除操作。
2.向表中停止數據的拔出、刪除和修正操作。
【試驗內容】
1. 應用數據界說語句在試驗一創立的stu_DB庫中樹立先生治理體系的三個表:Student、Course、SC。
2.應用INSERT、UPDATE和DELETE語句對上述三張表的數據停止拔出、更新和刪除操作。
3.在stu_DB庫中添加Teacher和TC表,對已樹立的先生治理體系中的表添加充分的數據(每一個表很多於20條),以便完本錢試驗的後繼操作。
【試驗步調】
1、數據界說
(一)表的創立
在試驗一創立的數據庫stu_DB平分別用企業治理器和查詢剖析器,按上面的表構造創立先生治理體系的表。
1.應用企業治理器創立表
(1)翻開企業治理器。
(2)選中試驗一創立好的數據庫stu_DB,單擊數據庫中的表對象,然後右擊窗口右邊選擇新建表,彈出如圖所示窗體。
(3)在這個窗體中,列名列就示表的字段名,可以在這個窗體中為字段選擇數據類型和長度和能否可認為空值。
(4)在此處可認為表選擇文件組,在表中單擊右鍵,選擇屬性,假如曾經為數據庫創立了一個主要組,可以在屬性窗體的表文件組中為此表選擇文件組。應當把一些競爭應用的表放於分歧的文件組中,而且讓文件組屬於分歧磁盤,如許可以在表競爭讀寫時進步並發機能。
(5)創立完成後,單擊磁盤圖標,並為表取一個名字。留意,應當為表取一個成心義的名字。
2.用Transact_SQL語句創立表
語法為:
CREATE TABLE [ database_name.[owner].] table_name ( {column_name data_type [DEFAULT ‘default_value']| [CONSTRAINT CONSTRAINT_name] }, […n] [IDENTITY [(seed, increment )]] ) [ON { filegroup | DEFAULT }] [TEXTIMAGE_ON {filegroup | DEFAULT }]
【例1】生成一個表名為student的表
create table student ( sno CHAR(8) primary key, sname CHAR(10) not null, ssex CHAR (2) check (ssex='男'or ssex='女'), sage smallint, sdept CHAR (20) default ('盤算機系'), )
【例2】 創立一張名為Ta1的表,此表中有3列,第一列Pid界說為主鍵,而且主動增加。第二列Name默許值為Unknown,第三列界說一個束縛(日期不克不及年夜於輸出當天的日期),拔出一筆記錄並停止查詢,顯示以下圖。
CREATE TABLE ta1 ( pid int identity(1,1) primary key, [name] CHAR(10) default ('unknow'), birthday datetime CHECK( birthday <getdate() ) )
(二)表的修正
1.用企業治理器修正表
(1)右鍵點擊所要修正的先生表,選擇“設計表”,會彈出如圖3-4所示的窗體,在這個窗體中可以更改數據表的字段。在空白處點右鍵,選擇“屬性”,彈出另外一窗體,在此可以更改束縛,也能夠增長束縛。
2、應用Transact-SQL語句修正表
向表中添加新的字段:在先生表中添加一個“班級”字段,數據類型為字符型。
ALTER TABLE student ADD class CHAR(6)
刪除表中的舊列:將先生表中的“Sdept”字段刪除。
ALTER TABLE student DROP COLUMN Sdept
更改表以添加具有束縛的列。(sp_help:用於顯示參數清單和其數據類型)
給先生表的增長“grade”字段並加上CHECK束縛,讓其弗成以年夜於100。
ALTER TABLE student ADD grade int CONSTRAINT ch_grade CHECK(grade<100)
EXEC sp_help ch_grade
給先生表中添加“birthday”字段,而且這個日期不克不及在錄入當天的日期以後。
ALTER TABLE student ADD birthday DATETIME NULL
CONSTRAINT ch_birthday CHECK(birthday<getdate())
添加具有默許值的可為空的列:
在先生表中參加“matriculationday”字段,而且這一字段的默許值為錄入當天的日期。
ALTER TABLE student ADD matriculationday smalldatetime NULL
CONSTRAINT adddateflt DEFAULT getdate()
請參考下面所給的例子:
自行設計表構造修正操作(很多於8個語句),並停止試驗驗證。
修正表student,成果如表1-4。
創立表1-5、表1-6,為後續試驗樹立基本。
(三)表的刪除
可以在企業治理器當選摘要刪除的表直接刪除,也能夠經由過程Transact-SQL語句DROP 刪除表的界說及表中的一切數據、索引、動身器、束縛和權限標准。
如要刪除ta1表,語句以下: DROP TABLE ta1
請參考下面的例子完成對表Student 、Course 、SC的刪除操作,它們刪除的順序若何?並停止試驗驗證。
2、數據操作
(一)檢查、重定名及刪除用戶界說的數據類型
1.應用企業治理器創立一個名為newtype1、長度為6、可變長字符、許可為空的自界說數據類型。
進入企業治理器,進入stu_DB數據庫,用鼠標右鍵單擊“用戶界說的數據類型”後選擇“操作”菜單中的“新建用戶界說數據類型”或點擊“新建”按扭,將彈出下圖所示窗體:
輸出要界說的數據稱號newtype1,選擇數據類型varCHAR,輸出長度為6,在“許可NULL值”復選框中打個“√”,單擊“肯定”按鈕便可。
2.應用T-SQL語句創立一個名為newtype2,數據長度為6,定長字符型,不許可為空的自界說數據類型。
USE stu_DB EXEC sp_addtype newtype2, ‘CHAR(6)', ‘not null'
3.定名用戶自界說的數據類型
(1) 應用體系存儲進程sp_rename將自界說數據類型newtype1從新定名為a1。
EXEC sp_rename newtype1, a1
(2) 應用企業治理器再將自界說數據類型a1從新定名為newtype1。
4.刪除用戶自界說數據類型
(1) 應用體系存儲進程sp_droptype來刪除用戶自界說的數據類型。
EXEC sp_droptype newtype1
(2)應用企業治理器刪除用戶自界說數據類型
進入企業治理器,進入stu_DB數據庫,單擊“用戶界說的數據類型”後,左邊窗口將湧現一切用戶界說的數據類型,再用鼠標右鍵單擊newtype2,在彈出的快捷菜單上單擊“刪除”按鈕便可。
留意:正在被表或其他數據庫對象應用的用戶界說類型能不克不及刪除?請停止試驗驗證。
(二)數據的更新
1. 應用企業治理器更新數據
翻開企業治理器,右鍵點擊所要修正的表,選擇“翻開表”,單擊“前往一切行”,會彈出如圖3-5所示的窗體,在該窗體中可以修正表中的數據內容。這裡的修正內容是主動存儲的,修正完以後,直接封閉該窗體,數據內容即修正勝利。
2.應用查詢剖析器更新數據
在關系數據庫中,罕見的數據更新的語句有三條:INSERT、UPDATE和DELETE
(1)INSERT語句
向student表中拔出一行數據,詳細數據以下:
學號:04265005, 姓名:劉輝, 性別:男,年紀:21, 系別:盤算機系
USE stu_DB INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) VALUES (‘04265005', ‘劉輝', ‘男', 21, ‘盤算機系') INSERT INTO student (Sno, Sname, Ssex, Sage) VALUES (‘04265006', ‘李慧', ‘女', 21)
向ta1表中拔出數據以下:
INSERT ta1([name],birthday) values (‘lan','1977-03-02') INSERT ta1 values (‘lan','1977-03-02') INSERT ta1(birthday) values (‘1977-03-02')
請依據上述例子,自行設計分歧情形下的數據拔出語句(很多於10個語句),並停止試驗驗證,驗證請求以下:
不知足獨一性束縛的數據的拔出。
不知足用戶自界說束縛的數據的拔出。
不知足外鍵束縛的數據的拔出。
應用缺省值的數據的拔出。
不公道的數據能否能進入數據庫。
(2)UPDATE語句
更改(先生)表數據,將學號為‘04265005'的先生的地點系改成‘機械工程系'。
UPDATE student SET Sdept=‘機械系' WHERE Sno=‘04265005'
請依據上述例子,自行設計數據修正語句(很多於10個語句),並停止試驗驗證,驗證請求同INSERT語句。
(3)DELETE語句刪除行
刪除student表中的學號為‘04265005'的記載。
DELETE FROM student WHERE Sno =‘04265005'
假如想消除表中的一切數據但不刪除這個表,可使用TRUNCATE TABLE語句。該語句相當於沒有前提的DELETE語句,而且該語句不記載日記。
請依據上述例子,自行設計分歧情形的數據刪除語句(很多於10條語句),並停止試驗驗證不知足外鍵束縛的數據刪除操作。
對數據界說中創立的先生治理體系(Student, Course,SC,Teacher,TC表)的每一個表添加充分的數據(每一個表很多於20條),以便完本錢試驗的後繼操作。詳細表信息可參考以下:
明天的試驗課就停止了,小編帶年夜家年夜致的懂得了表的創立、治理和數據操作,下次就停止實戰練習訓練,我們持續一路進修。
以上就是表的創立和治理試驗的全體內容,願望對年夜家的進修有所贊助。