数据库上机报告.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
### 数据库上机实验知识点详解 #### 实验一:设计数据库、数据表并编程实现 在本实验中,我们创建了四个主要的数据表:`Student`(学生表)、`Course`(课程表)、`Score`(成绩表)以及`Teacher`(教师表),另外还有一个辅助表`Teaching`(教学安排表)。下面将详细解析每个表的设计及其所包含的主要字段。 **1. `Student` 表** - **字段说明** - `sno`: 学号,作为主键。 - `sname`: 姓名,不允许为空。 - `sbirthday`: 出生日期。 - `ssex`: 性别,限定为“男”或“女”。 - `sclass`: 所属班级。 - `sremark`: 备注信息。 - `adress`: 地址。 - `zipcode`: 邮政编码。 - `phone`: 联系电话。 - `email`: 电子邮箱地址。 **2. `Course` 表** - **字段说明** - `o`: 课程编号,作为主键。 - `ame`: 课程名称。 - `cpno`: 先修课程编号,外键,引用自身表中的`o`字段。 - `ctime`: 学时数。 - `credit`: 学分数。 **3. `Score` 表** - **字段说明** - `sno`: 学号,外键,引用`Student`表中的`sno`字段。 - `o`: 课程编号,外键,引用`Course`表中的`o`字段。 - `score`: 成绩。 **4. `Teacher` 表** - **字段说明** - `tno`: 教师编号,作为主键。 - `tname`: 教师姓名。 - `tsex`: 性别。 - `tbirthday`: 出生日期。 - `position`: 职称。 - `department`: 所属部门。 - `tamount`: 工资。 - `experience`: 经历。 **5. `Teaching` 表** - **字段说明** - `tno`: 教师编号,外键,引用`Teacher`表中的`tno`字段。 - `o`: 课程编号,外键,引用`Course`表中的`o`字段。 - `tdate`: 授课日期。 - `classroom`: 教室编号。 - `sclass`: 授课班级。 #### 实验二:设计数据插入、修改、删除、查询和视图等操作并编程实现 接下来,我们将针对这些数据表进行数据插入、查询、修改和删除的操作。 **1. 数据插入** - **`Student` 表插入语句示例**: ```sql INSERT INTO Student (sno, sname, sbirthday, ssex, sclass, sremark, adress, zipcode, phone, email) VALUES ('011110101', '章海潮', '1982-02-07', '男', '信管系0101', NULL, '北京市海淀区', '100084', '13900000000', 'zhanghc@example.com'); ``` - **`Course` 表插入语例**: ```sql INSERT INTO Course (o, ame, cpno, ctime, credit) VALUES ('C001', '数据库原理', 'C005', 4, 64); ``` - **`Score` 表插入语句示例**: ```sql INSERT INTO Score (sno, o, score) VALUES ('0111101', 'C001', 90); ``` - **`Teacher` 表插入语句示例**: ```sql INSERT INTO Teacher (tno, tname, tsex, tbirthday, position, department, tamount, experience) VALUES ('T001', '江承基', '男', '1964-03-21', '教授', '信息管理系', 12000, '曾在美国哈佛大学访问学习一年'); ``` - **`Teaching` 表插入语句示例**: ```sql INSERT INTO Teaching (tno, o, tdate, classroom, sclass) VALUES ('T001', 'C005', '2012-01-09', '西二405', '信管系0101'); ``` **2. 数据查询** - **查询全体学生的详细记录**: ```sql SELECT * FROM Student LEFT OUTER JOIN Score ON (Student.sno = Score.sno); ``` - **查询全体学生的学号与姓名**: ```sql SELECT sno, sname FROM Student; ``` - **查询全体学生的学号、姓名、所属班级,并按班级降序排列**: ```sql SELECT sno, sname, sclass FROM Student ORDER BY sclass DESC; ``` - **查询全体学生的姓名与出生年份**: ```sql SELECT sname, YEAR(sbirthday) AS birth_year FROM Student; ``` - **查询全体学生的姓名与其年龄**: ```sql SELECT sname, YEAR(GETDATE()) - YEAR(sbirthday) AS age FROM Student; ``` - **查询“信管系0101”班全体学生**: ```sql SELECT * FROM Student WHERE sclass = '信管系0101'; ``` 通过上述的实验设计和操作,我们可以看到如何在数据库中创建表、插入数据以及进行基本的数据查询。这对于理解数据库的基本操作非常有帮助。此外,这些技能也是实际工作中经常需要用到的基础能力。
- 粉丝: 26
- 资源: 31万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助