- 實驗目的
1.掌握在SQL Server中使用對象資源管理器和SQL命令創建數據庫與修改數據庫的方法。
2.掌握在SQL Server中使用對象資源管理器或者SQL命令創建數據表和修改數據表的方 法(以SQL命令為重點)。
- 實驗設備
操作系統:Win11
開發軟件:SQL Server
- 實驗內容
給定如表3.6、表3.7和表3.8所示的學生信息。
表3.6 ?學生表
學號 | 姓名 | 性別 | 專業班級 | 出生日期 | 聯系電話 |
0433 | 張艷 | 女 | 生物04 | 1986-9-13 | |
0496 | 李越 | 男 | 電子04 | 1984-2-23 | 1381290×××× |
0529 | 趙欣 | 男 | 會計05 | 1984-1-27 | 1350222×××× |
0531 | 張志國 | 男 | 生物05 | 1986-9-10 | 1331256×××× |
0538 | 于蘭蘭 | 女 | 生物05 | 1984-2-20 | 1331200×××× |
0591 | 王麗麗 | 女 | 電子05 | 1984-3-20 | 1332080×××× |
0592 | 王海強 | 男 | 電子05 | 1986-11-1 |
表3.7 ?課程表
課程號 | 課程名 | 學分數 | 學時數 | 任課教師 |
K001 | 計算機圖形學 | 2.5 | 40 | 胡晶晶 |
K002 | 計算機應用基礎 | 3 | 48 | 任泉 |
K006 | 數據結構 | 4 | 64 | 馬躍先 |
M001 | 政治經濟學 | 4 | 64 | 孔繁新 |
S001 | 高等數學 | 3 | 48 | 趙曉塵 |
表3.8 ?學生作業表
課程號 | 學號 | 作業1成績 | 作業2成績 | 作業3成績 |
K001 | 0433 | 60 | 75 | 75 |
K001 | 0529 | 70 | 70 | 60 |
K001 | 0531 | 70 | 80 | 80 |
K001 | 0591 | 80 | 90 | 90 |
K002 | 0496 | 80 | 80 | 90 |
K002 | 0529 | 70 | 70 | 85 |
K002 | 0531 | 80 | 80 | 80 |
K002 | 0538 | 65 | 75 | 85 |
K002 | 0592 | 75 | 85 | 85 |
K006 | 0531 | 80 | 80 | 90 |
課程號 | 學號 | 作業1成績 | 作業2成績 | 作業3成績 |
K006 | 0591 | 80 | 80 | 80 |
M001 | 0496 | 70 | 70 | 80 |
M001 | 0591 | 65 | 75 | 75 |
S001 | 0531 | 80 | 80 | 80 |
S001 | 0538 | 60 | 80 |
1.在SQL Server中使用對象資源管理器和SQL命令創建學生作業管理數據庫,數據庫的名稱自定。
(1)使用對象資源管理器創建數據庫,請給出重要步驟的截圖。
(2)刪除第(1)步創建的數據庫,再次使用SQL命令創建數據庫,請給出SQL代碼。
(3)創建數據庫之后,如果有需要,可以修改數據庫。
2.對表3.6,表3.7和表3.8,分別以下表的方式給出各字段的屬性定義和說明。
3.使用SQL命令在學生作業管理數據庫中建立學生表、課程表和學生作業表,在實驗報告中給出SQL代碼。
4.在各個表中輸入表3.6、表3.7和表3.8中的相應內容。
- 實驗步驟及實驗結果
1.在SQL Server中使用對象資源管理器和SQL命令創建學生作業管理數據庫,數據庫的名稱自定。
2.對表3.6,表3.7和表3.8,分別以下表的方式給出各字段的屬性定義和說明。
學生表(Students) | ||||
字段名 | 數據類型 | 長度或精度 | 默認值 | 完整性約束 |
學號(StudentID) | varchar | 10 | 主鍵約束 | |
姓名(Name) | varchar | 20 | ||
性別(Gender) | varchar | 2 | ||
專業班級(MajorClass) | varchar | 10 | ||
出生日期(Birthdate) | date | |||
聯系電話(ContactNumber) | varchar | 15 |
課程表(Class) | ||||
字段名 | 數據類型 | 長度或精度 | 默認值 | 完整性約束 |
課程號(CourseID) | varchar | 10 | 主鍵約束 | |
課程名(CourseName) | varchar | 30 | ||
學分數(Credit) | decimal | 總位數4位,精度為小數后一位 | ||
學時數(Hours) | int | |||
任課老師(Instructor) | varchar | 20 |
學生作業表(StudentHomework) | ||||
字段名 | 數據類型 | 長度或精度 | 默認值 | 完整性約束 |
課程號(CourseID) | varchar | 10 | 外鍵約束,主鍵約束 | |
學號(StudentID) | varchar | 10 | 外鍵約束,主鍵約束 | |
作業1成績(Assignmet1Grade) | int | |||
作業2成績(Assignment2Grade) | int | |||
作業3成績(Assignmet3Grade) | int |
3.使用SQL命令在學生作業管理數據庫中建立學生表、課程表和學生作業表,在實驗報告中給出SQL代碼。
1.CREATE?DATABASE?StudentAssignmentDB;??
2.USE?StudentAssignmentDB;??
3.CREATE?TABLE?Students?(??
4.?????StudentID?VARCHAR(10)?PRIMARY?KEY,??
5.?????Name?VARCHAR(20),??
6.?????Gender?VARCHAR(2),??
7.?????MajorClass?VARCHAR(10),??
8.?????Birthdate?DATE,??
9.?????ContactNumber?VARCHAR(15)??
10.???);??
11.???CREATE?TABLE?Courses?(??
12.?????CourseID?VARCHAR(10)?PRIMARY?KEY,??
13.?????CourseName?VARCHAR(30),??
14.?????Credit?DECIMAL(4,?1),??
15.?????Hours?INT,??
16.?????Instructor?VARCHAR(20)??
17.???);??
18.???CREATE?TABLE?StudentAssignments?(??
19.?????CourseID?VARCHAR(10),??
20.?????StudentID?VARCHAR(10),??
21.?????Assignment1Grade?INT,??
22.?????Assignment2Grade?INT,??
23.?????Assignment3Grade?INT,??
24.?????PRIMARY?KEY?(CourseID,?StudentID),??
25.?????FOREIGN?KEY?(CourseID)?REFERENCES?Courses(CourseID),??
26.?????FOREIGN?KEY?(StudentID)?REFERENCES?Students(StudentID)??
27.???);??
4.在各個表中輸入表3.6、表3.7和表3.8中的相應內容。
1.INSERT?INTO?Students?(StudentID,?Name,?Gender,?MajorClass,?Birthdate,?ContactNumber)??
2.VALUES??
3.('0433',?'張艷',?'女',?'生物04',?'1986-09-13',?NULL),??
4.('0496',?'李越',?'男',?'電子04',?'1984-02-23',?'1381290xxxx'),??
5.('0529',?'趙欣',?'男',?'會計05',?'1984-01-27',?'1350222xxxx'),??
6.('0531',?'張志國',?'男',?'生物05',?'1986-09-10',?'1331256xxxx'),??
7.('0538',?'于蘭蘭',?'女',?'生物05',?'1984-02-20',?'1331200xxxx'),??
8.('0591',?'王麗麗',?'女',?'電子05',?'1984-03-20',?'1332080xxxx'),??
9.('0592',?'王海強',?'男',?'電子05',?'1986-11-01',?NULL);??
10.INSERT?INTO?Courses?(CourseID,?CourseName,?Credit,?Hours,?Instructor)??
11.VALUES??
12.('K001',?'計算機圖形學',?2.5,?40,?'胡晶晶'),??
13.('K002',?'計算機應用基礎',?3,?48,?'任泉'),??
14.('K006',?'數據結構',?4,?64,?'馬躍先'),??
15.('M001',?'政治經濟學',?4,?64,?'孔繁新'),??
16.('S001',?'高等數學',?3,?48,?'趙曉塵');??
17.INSERT?INTO?StudentAssignments?(CourseID,?StudentID,?Assignment1Grade,?Assignment2Grade,?Assignment3Grade)??
18.VALUES??
19.('K001',?'0433',?60,?75,?75),??
20.('K001',?'0529',?70,?70,?60),??
21.('K001',?'0531',?70,?80,?80),??
22.('K001',?'0591',?80,?90,?90),??
23.('K002',?'0496',?80,?80,?90),??
24.('K002',?'0529',?70,?70,?85),??
25.('K002',?'0531',?80,?80,?80),??
26.('K002',?'0538',?65,?75,?85),??
27.('K002',?'0592',?75,?85,?85),??
28.('K006',?'0531',?80,?80,?90),??
29.('K006',?'0591',?80,?80,?80),??
30.('M001',?'0496',?70,?70,?80),??
31.('M001',?'0591',?65,?75,?75),??
32.('S001',?'0531',?80,?80,?80),??
33.('S001',?'0538',?60,?NULL,?80);??
- 實驗總結
通過本次實驗,我學會了在SQL Server中使用對象資源管理器和SQL命令創建數據庫。使用對象資源管理器可以通過可視化界面輕松創建數據庫,而使用SQL命令則更加靈活和可擴展。我還學會了通過SQL命令刪除數據庫,并重新使用SQL命令創建數據庫。最后,我了解到可以使用ALTER DATABASE語句修改數據庫的屬性。
通過這次實驗,我掌握了在SQL Server中創建和修改數據庫的基本技能,這對于數據庫的管理和維護非常重要。
完整SQL代碼
CREATE DATABASE StudentAssignmentDB;
USE StudentAssignmentDB;
CREATE TABLE Students (StudentID VARCHAR(10) PRIMARY KEY,Name VARCHAR(20),Gender VARCHAR(2),MajorClass VARCHAR(10),Birthdate DATE,ContactNumber VARCHAR(15));CREATE TABLE Courses (CourseID VARCHAR(10) PRIMARY KEY,CourseName VARCHAR(30),Credit DECIMAL(4, 1),Hours INT,Instructor VARCHAR(20));CREATE TABLE StudentAssignments (CourseID VARCHAR(10),StudentID VARCHAR(10),Assignment1Grade INT,Assignment2Grade INT,Assignment3Grade INT,PRIMARY KEY (CourseID, StudentID),FOREIGN KEY (CourseID) REFERENCES Courses(CourseID),FOREIGN KEY (StudentID) REFERENCES Students(StudentID));
INSERT INTO Students (StudentID, Name, Gender, MajorClass, Birthdate, ContactNumber)
VALUES
('0433', '張艷', '女', '生物04', '1986-09-13', NULL),
('0496', '李越', '男', '電子04', '1984-02-23', '1381290xxxx'),
('0529', '趙欣', '男', '會計05', '1984-01-27', '1350222xxxx'),
('0531', '張志國', '男', '生物05', '1986-09-10', '1331256xxxx'),
('0538', '于蘭蘭', '女', '生物05', '1984-02-20', '1331200xxxx'),
('0591', '王麗麗', '女', '電子05', '1984-03-20', '1332080xxxx'),
('0592', '王海強', '男', '電子05', '1986-11-01', NULL);
INSERT INTO Courses (CourseID, CourseName, Credit, Hours, Instructor)
VALUES
('K001', '計算機圖形學', 2.5, 40, '胡晶晶'),
('K002', '計算機應用基礎', 3, 48, '任泉'),
('K006', '數據結構', 4, 64, '馬躍先'),
('M001', '政治經濟學', 4, 64, '孔繁新'),
('S001', '高等數學', 3, 48, '趙曉塵');
INSERT INTO StudentAssignments (CourseID, StudentID, Assignment1Grade, Assignment2Grade, Assignment3Grade)
VALUES
('K001', '0433', 60, 75, 75),
('K001', '0529', 70, 70, 60),
('K001', '0531', 70, 80, 80),
('K001', '0591', 80, 90, 90),
('K002', '0496', 80, 80, 90),
('K002', '0529', 70, 70, 85),
('K002', '0531', 80, 80, 80),
('K002', '0538', 65, 75, 85),
('K002', '0592', 75, 85, 85),
('K006', '0531', 80, 80, 90),
('K006', '0591', 80, 80, 80),
('M001', '0496', 70, 70, 80),
('M001', '0591', 65, 75, 75),
('S001', '0531', 80, 80, 80),
('S001', '0538', 60, NULL, 80);