数据库实验
发布日期:2021-05-07 15:59:16 浏览次数:36 分类:精选文章

本文共 2552 字,大约阅读时间需要 8 分钟。

实验一:创建数据库和表

1. 创建学生管理数据库

在企业管理器中创建数据库XSGL,包含以下表:学院信息表dept、学生信息表student、课程信息表course及学生选课表sc

2. 表结构定义

  • dept(学院信息表)

    • 列名 | 数据类型 | 长度 | 是否允许NULL | 说明
    • DNO | Char | 4 | √ |学院编号
    • DNAME | Char | 30 | × |学院名称
    • DEAN | Char | 20 | √ |院长姓名
  • student(学生信息表)

    • 列名 | 数据类型 | 长度 | 是否允许NULL | 说明
    • SNO | Char | 8 | √ |学号
    • SNAME | Char | 20 | × |姓名
    • AGE | smallint | 2 | √ |年龄
    • SEX | Char | 2 | √ |性别(男/女)
    • DNO | Char | 4 | √ |学院编号
    • BIRTHDAY | datetime | 8 | √ |出生日期
  • course(课程信息表)

    • 列名 | 数据类型 | 长度 | 是否允许NULL | 说明
    • CNO | Char | 8 | √ |课程编号
    • CNAME | Char | 30 | × |课程名称
    • TNAME | Char | 20 | √ |教师姓名
    • CREDIT | float | 4 | √ |课程学分
    • ROOM | Char | 30 | √ |上课教室
  • sc(学生选课表)

    • 列名 | 数据类型 | 长度 | 是否允许NULL | 说明
    • SNO | Char | 8 | √ |学号
    • CNO | Char | 8 | √ |课程编号
    • GRADE | float | 2 | √ |课程成绩

3. 创建数据库和表的方法

使用企业管理器创建数据库和表

  • 创建数据库
    • 右键点击数据库,选择“新建数据库”,输入数据库名XSGL
  • 创建表
    • 右键点击数据库,选择“新建”,然后选择“表”。
    • 输入表名和字段信息,填写数据类型、长度和允许NULL属性,点击保存。
  • 使用T-SQL创建表

  • 打开SQL编辑器,输入以下命令并执行:
    CREATE DATABASE XSGL
  • 创建各表:
    CREATE TABLE dept(    DNO CHAR(4) UNIQUE NOT NULL,    DNAME CHAR(30) NOT NULL,    DEAN CHAR(20));CREATE TABLE student(    SNO CHAR(8) UNIQUE NOT NULL,    SNAME CHAR(20) NOT NULL,    AGE smallint ,    SEX CHAR(2) CHECK(SEX IN('男','女')) ,    DNO CHAR(4) NOT NULL,    BIRTHDAY DATETIME );CREATE TABLE course(    CNO CHAR(8) PRIMARY KEY NOT NULL,    CNAME CHAR(30) NOT NULL,    TNAME CHAR(20) ,    CREDIT FLOAT(4) ,    ROOM CHAR(30));CREATE TABLE sc(    SNO CHAR(8) NOT NULL,    CNO CHAR(8) NOT NULL,    GRADE FLOAT(2));
  • 4. 数据库管理

    数据库分离与附加

    • 分离数据库
      • 右键点击XSGL,选择“所有任务”,然后选择“分离数据库”。
    • 附加数据库
      • 右键点击“数据库”,选择“附加数据库”,选择XSGL_Data.mdfXSGL_log.ldf文件,完成附加。

    实验二:表的查询

    1. 单表查询

    示例:

    查询分数在70和90之间的学生学号

    SELECT distinct SNOFROM scWHERE GRADE between 70 AND 90

    查询少于10名同学选修的授课班号

    SELECT CNOFROM scGROUP BY CNOHAVING COUNT(SNO) < 10

    2. 多表查询

    示例:

    查询所有选课学生的姓名

    SELECT distinct SNAMEFROM student, scWHERE student.SNO = sc.SNO

    查询所有未选课的学生的姓名

    SELECT SNAMEFROM studentWHERE SNO NOT IN(    SELECT SNO    FROM sc)

    实验三:数据库的更新操作

    1. 数据库数据维护

    • 插入数据

      使用企业管理器或T-SQL在表中插入新数据。

      INSERT INTO student (SNO, SNAME, AGE, DNO)VALUES ('20067027', '张三', 20, '0002')
    • 修改数据

      更新student表中某学生的信息:

      UPDATE studentSET AGE = 18WHERE SNO = '20069011'
    • 删除数据

      删除学院编号为空的学生记录及选课记录:

      DELETE FROM scWHERE SNO IN(  SELECT SNO  FROM student  WHERE DNO = '0')DELETE FROM studentWHERE DNO = '0'

    2. 数据更新操作

    • 计算出生年份

      SELECT 2018 - AGE AS "出生年份"FROM student
    • 课程地点修改

      更新course表中特定课程的教室:

      UPDATE courseSET ROOM = 'D109'WHERE ROOM = 'A209'
    • 课程成绩调整

      更新sc表中“线性代数”课程的成绩:

      UPDATE scSET GRADE = GRADE - 4WHERE CNO IN(  SELECT cno  FROM course  WHERE CNAME = '线性代数')

    实验总结

    通过本次实验,掌握了SQL Server数据库的创建、表结构设计、数据查询、数据维护等核心技能,能够熟练使用企业管理器和查询分析器完成数据库操作。

    上一篇:python自学最初笔记
    下一篇:数据库期末考整理之一

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月05日 15时11分55秒