首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 数据库原理实验一

    时间:2020-10-14 00:22:50 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:原理 实验 数据库

     课程名称 数据库原理 实验 成绩

     实验名称 交互式 SQL 语言 学号

     姓名

     班级

     日期

     实验目的:

     1. 熟悉数据库的交互式 SQL 工具; 2. 熟悉通过 SQL 语言对数据库进行操作;

     实验平台:

     利用 RDBMS(SQL Server 2005)及其交互查询工具来操作 SQL 语言;

     实验内容与步骤:

     一、 数据定义 (一)基本表操作 1. 建立基本表 在数据库 TEST 中建立 3 张基本表:Student、Course 和 SC。

     (1)

     创建学生表 Student,由以下属性组成:学号 SNO(char 型,长度为 4, 主码),姓名 SNAME(char 型,长度为 8,其值唯一),性别 SEX(char 型,长度为 2),所在系 DEPTNO(char 型,长度为 2)。

     --CREATE TABLE Student

     --( --

     SNO CHAR(4)PRIMARY KEY, --

     SNAME CHAR(8)UNIQUE, --

     SEX

     CHAR(2), --

     DEPTNO CHAR(2),

     --)

     (2)创建课程表 Course,由以下属性组成:课程号 CNO(char 型,长度为 2,主码),课程名称 CNAME(char 型,长度为 20,非空),授课教师编号 TNO(char型,长度为 3,主码),学分 CREDIT(int 型)。

      --CREATE TABLE Course --( --

     CNO CHAR(2), --

     CNAME CHAR(20), --

     TNO CHAR(3)PRIMARY KEY, --

     CREAIT INT,

     --);

     (3)创建学生选课表 SC,由以下属性组成:学号 SNO( char 型,长度为 4,主码),课程号 CNO( char 型,长度为 2,主码),成绩 GRADE(int 型)。

      --

     CREATE TABLE SC --

     ( --

     SNO CHAR(4), --

     CNO CHAR(2), --

     GRADE INT, --

     PRIMARY KEY (SNO,CNO), --

      );

     (4)创建教师表 Teacher,由以下属性组成:教师编号 TNO(char 型,长度为3,主码),教师姓名 TNAME(char 型,长度为 8,非空),所在系 DEPTNO(char型,长度为 2)

     --

      CREATE TABLE Teacher --

      ( --

      TNO CHAR(3)PRIMARY KEY, --

      TNAME CHAR(8)NOT NULL, --

      DEPTNO CHAR(2) --

     )

      (5)创建系表 Dept,由以下属性组成:系号 DEPTNO(char 型,长度为 2,主码),系名 DNAME(char 型,长度为 20,非空)。

     CREATE TABLE Dept

     (

      DEPTNO CHAR(2)PRIMARY KEY,

      DNAME

     CHAR(20) NOT NULL,

     )

     2. 修改基本表 在 student 表中加入属性 AGE(int 型); ALTER TABLE Student

      ADD AGE INT;

     3. 删除基本表 后边所有操作结束后,删除所创建的基本表;

     DROP TABLE Student;

     DROP TABLE Course;

     DROP TABLE SC;

     DROP TABLE DEPT;

     DROP TABLE TEACHER;

     (二)索引操作 1. 建立索引 (1)

     在 Student 表上建立关于属性 SNO 的唯一索引;

     CREATE UNIQUE INDEX Stusno ON Student(Sno);

     (2)

     在 Course 表上建立关于 CNO 的唯一索引;

      create unique index Coucno ON Course(Cno);

     2. 删除索引 删除上面所建立的两个索引; -drop index Student.stusno

     --drop index Course.Coucno;

     (三)视图操作 1. 建立视图 在插入数据的 Student 基本表上为计算机系学生的记录建立一个视图CS_STUDENT。

     CREATE VIEW CS_STUDENT AS SELECT SNO,SNAME,SEX,DEPTNO,AGE FROM Student WHERE DEPTNO="CS";

      2. 删除视图 在操作结束后,删除视图 CS_STUDENT。

     DROP VIEW CS_STUDENT;

      二、 数据操作

     (一)更新操作 1.插入操作 (1)向 Student 表中插入下列数据:

     1001,张天,男,20,10

     1002,李兰,女,21,10

     1003,陈铭,男,21,10

     1004,刘茜,女,21,20

     1005,马朝阳,男,22,20

     (2)向 Course 表中插入下列数据:

     1,数据结构,101,4

     2,数据库,102,4

     3,离散数学,103,4

     4,C 语言程序设计,101,2

     (3)向 SC 表中插入下列数据:

     1001,1,80 1001,2,85 1001,3,78

     1002,1,78 1002,2,82 1002,3,86 1003,1,92 1003,3,90 1004,1,87 1004,4,90 1005,1,85 1005,4,92

      (4)向 Teacher 表中插入下列数据:

     101,张星,10

     102,李珊,10

     103,赵天应,10

     104,刘田,20

     (5)向 Dept 表中插入下列数据:

     10,计算机科学与技术

     20,信息

      2.修改数据 将张星老师数据结构课程的学生成绩全部加 2 分;

     --UPDATE SC SET GRADE = GRADE +2 --WHERE SC.CNO IN (SELECT CNO FROM Course,Teacher --WHERE Course.TNO=Teacher.TNO AND TNAME="张星" AND Course.cname="数据结构");

     3. 删除数据 删除马朝阳同学的所有选课记录。

     (二)查询操作

     1. 单表查询

     (1)查询所有学生的信息; SELECT * FROM Student

      (2)查询所有女生的姓名; SELECT SNAME

     FROM Student where (SEX="女")

     (3)

     查询成绩在 80~89 分之间的所有学生的选课记录,查询结果按照成绩降序排列; SELECT SNO,CNO FROM SC WHERE GRADE BETWEEN 80 AND 90 ORDER BY GRADE DESC;

      (4)

     查询各个系的学生人数; SELECT COUNT (SNO) AS COUNT FROM Student GROUP BY DEPTNO;

     2. 连接查询 查询信息系年龄在 21 岁以下的女生的姓名及其年龄; SELECT SNAME,AGE FROM Student,Dept WHERE AGE <21 AND Student.DEPTNO=Dept.DEPTNO

     3. 嵌套查询 (1)

     查询选修课总学分在 10 学分以下的学生的姓名;

     SELECT Sname FROM Student WHERE Student.sno in (

     SELECT Student.SNO FROM Student,SC,Course

     WHERE Student.sno = SC.SNO AND SC.CNO = Course.CNO

     GROUP BY Student.SNO

     HAVING SUM (CREAIT)<10 )

      (2)

     查询各门课程最高成绩的学生的姓名及其成绩; SELECT SNAME,GRADE FROM Student,SC S1 WHERE Student.SNO=S1.SNO AND GRADE = (

     SELECT MAX(GRADE)

     FROM SC S2

     WHERE S2.CNO = S1.CNO

     GROUP BY S2.CNO )

      (3)

     查询选修了 1001 号学生所选修的全部课程的学生的学号; SELECT DISTINCT SNO FROM SC SCX

      注意:红色字体的实验内容待讲完相应知识点后在做。

     WHERE NOT EXISTS (

      SELECT * FROM SC SCY

      WHERE SCY.SNO ="1001"

     AND NOT EXISTS (

     SELECT * FROM SC SCZ

     WHERE SCZ.SNO = SCX.SNO

     AND SCZ.CNO = SCY.CNO ) )

      (4)查询选修了张星老师所开设的全部课程的学生的姓名; SELECT SNAME FROM Student

     WHERE EXISTS (

     SELECT SC.CNO FROM SC,Course,Teacher,Student

     WHERE SC.CNO = Course.CNO

     AND Course.TNO = Teacher.TNO AND TNAME ="张星"

     AND SC.SNO = Student.SNO )

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识