程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫表的創建、管理和數據操作(實驗一)

數據庫表的創建、管理和數據操作(實驗一)

編輯:關於SqlServer

今天我們就以實驗的形式對表的創建、管理和數據操作進行學習,上課吧。

【實驗目的】:了解SQL語言的使用,進一步理解關系運算,鞏固數據庫的基礎知識。
【實驗要求】:利用SQL語言進行數據庫表的各種操作:
1.數據庫表的創建、修改和刪除操作。
2.向表中進行數據的插入、刪除和修改操作。
【實驗內容】
1. 利用數據定義語句在實驗一創建的stu_DB庫中建立學生管理系統的三個表:Student、Course、SC。
2.利用INSERT、UPDATE和DELETE語句對上述三張表的數據進行插入、更新和刪除操作。
3.在stu_DB庫中添加Teacher和TC表,對已建立的學生管理系統中的表添加充足的數據(每個表不少於20條),以便完成本實驗的後繼操作。
【實驗步驟】
一、數據定義
(一)表的創建
在實驗一創建的數據庫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的刪除操作,它們刪除的次序如何?並進行實驗驗證。

二、數據操作

(一)查看、重命名及刪除用戶定義的數據類型
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條),以便完成本實驗的後繼操作。具體表信息可參考如下:

今天的實驗課就結束了,小編帶大家大致的了解了表的創建、管理和數據操作,下次就進行實戰演練,我們繼續一起學習。

以上就是表的創建和管理實驗的全部內容,希望對大家的學習有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved