SQL 数据初级查询—实验报告

本文详细介绍了一次SQL查询实验的过程,包括无条件查询、条件查询、排序等操作,并提供了具体的SQL语句实例及其运行结果。

一、实验目的

    熟练掌握表中数据的各种查询功能,为后继学习作准备。

二、实验属性

    1、了解并掌握SQL管理控制器的使用;

    2、掌握基本表的数据查询。

三、实验仪器设备及器材

    1、每人一台计算机。

    2、计算机安装有SQL SERVER2008

四、实验要求

    1、预习教材第三章,熟悉SQL查询语句。

    2、掌握单表查询语句的一般格式。;

    3、掌握单表无条件、有条件查询及查询结果排序与分组。

    4、掌握多表的连接查询以及嵌套查询。

五、实验原理

    SQL语言应用。

六、实验步骤

    1、启动SQL查询分析器;

    2、选择“学生管理数据库”;

    3、验证如下例子:

    一、单表查询

      1 无条件查询

             1.1 查询全体学生的详细记录。

        1.2 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)

        1.3 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。由于SELECT子句的<</span>目标列表达式>不仅可以是表中的属

            性列,也可以是表达式,故可以查询经过计算的值。

        1.4 查询全体学生的姓名、出生年份和学号,要求别名用汉字的别名“姓名”、“出生年份”和“学号”。

        1.5  查询选修了课程的学生学号。

      2 条件查询

        2.1 查询“计算系”全体学生的学号(Sno)和姓名 (Sname)

    2.2 查询年龄在18~22(包括18岁和22)之间的学生姓名(Sname)及年龄(Sage)

        2.3 查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)

        2.4 查询信息、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)

        2.5 查询既不是信息系、数学系、也不是计算机系的学生的姓名(Sname)和性别(Ssex)

        2.6 查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)

        2.7查询姓“刘”且全名为2个汉字的学生的姓名(Sname)和所在系(Sdept)

        2.8 查询所有不姓刘的学生姓名(Sname)和年龄(Sage)

        2.9 查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)

        2.10查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。

        2.11 假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相

            应的课程号(Cno)

        2.12 查询所有有成绩的学生学号(Sno)和课程号(Cno)

     3 查询结果排序

       3.1 查询选修了C03号课程的学生的学号(Sno)和成绩(Grade)并按成绩降序排列。

       3.2 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。

七、操作步骤

    一、单表查询

     1 无条件查询

       1.1 查询全体学生的详细记录。

         I、在创建查询框中输入SQL语句,如下图所示:

                     SQL <wbr>数据初级查询—实验报告

              II 、执行SQL语句,其查询结果如下图所示:

                    SQL <wbr>数据初级查询—实验报告


      1.2  查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)

        I、在创建查询框中输入SQL语句,如下图所示:

                  SQL <wbr>数据初级查询—实验报告

             II 、执行SQL语句,其查询结果如下图所示:

                  SQL <wbr>数据初级查询—实验报告

     1.3  查询全体学生的姓名(Sname)、出生年份及学号(Sno)

          I、在创建查询框中输入SQL语句,如下图所示:

                 SQL <wbr>数据初级查询—实验报告

          II 、执行SQL语句,其查询结果如下图所示:

             SQL <wbr>数据初级查询—实验报告

     1.4 查询全体学生的姓名、出生年份和学号,要求别名用汉字的别名“姓名”、“出生年份”和“学号”。

       I 、在创建查询框中输入SQL语句,如下图所示:

              SQL <wbr>数据初级查询—实验报告

           II 、执行SQL语句,其查询结果如下图所示:

         SQL <wbr>数据初级查询—实验报告

    1.5  查询选修了课程的学生学号。

      I 、在创建查询框中输入SQL语句,如下图所示:

               SQL <wbr>数据初级查询—实验报告

      II、执行SQL语句,其查询结果如下图所示:

               SQL <wbr>数据初级查询—实验报告       

   2 条件查询

     2.1  查询“计算系”全体学生的学号(Sno)和姓名 (Sname)

      I、在创建查询框中输入SQL语句,如下图所示:

                SQL <wbr>数据初级查询—实验报告

         II、执行SQL语句,其查询结果如下图所示:

                 SQL <wbr>数据初级查询—实验报告   

    2.2 查询年龄在18~22(包括18岁和22)之间的学生姓名(Sname)及年龄(Sage)

         I 、在创建查询框中输入SQL语句,如下图所示:

              SQL <wbr>数据初级查询—实验报告
     II、执行SQL语句,其查询结果如下图所示:

        SQL <wbr>数据初级查询—实验报告

    2.3 查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)

         I 、在创建查询框中输入SQL语句,如下图所示:

             SQL <wbr>数据初级查询—实验报告
         II、执行SQL语句,其查询结果如下图所示:

         SQL <wbr>数据初级查询—实验报告

   2.4 查询信息、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)

     I 、在创建查询框中输入SQL语句,如下图所示:

           SQL <wbr>数据初级查询—实验报告

    II 、执行SQL语句,其查询结果如下图所示:

           SQL <wbr>数据初级查询—实验报告   

  2.5  查询既不是信息系、数学系、也不是计算机系的学生的姓名(Sname)和性别(Ssex)

     I 、在创建查询框中输入SQL语句,如下图所示:

          SQL <wbr>数据初级查询—实验报告

    II 、执行SQL语句,其查询结果如下图所示:

     SQL <wbr>数据初级查询—实验报告

  2.6  查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)

      I 、在创建查询框中输入SQL语句,如下图所示:

           SQL <wbr>数据初级查询—实验报告

     II、执行SQL语句,其查询结果如下图所示:

           SQL <wbr>数据初级查询—实验报告

  2.7  查询姓“刘”且全名为2个汉字的学生的姓名(Sname)和所在系(Sdept)

     I 、在创建查询框中输入SQL语句,如下图所示:

           SQL <wbr>数据初级查询—实验报告

   II 、执行SQL语句,其查询结果如下图所示:

           SQL <wbr>数据初级查询—实验报告  

  2.8  查询所有不姓刘的学生姓名(Sname)和年龄(Sage)

      I 、在创建查询框中输入SQL语句,如下图所示:

           SQL <wbr>数据初级查询—实验报告

      II、执行SQL语句,其查询结果如下图所示:

        SQL <wbr>数据初级查询—实验报告

  2.9  查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)

       I 、在创建查询框中输入SQL语句,如下图所示:

           SQL <wbr>数据初级查询—实验报告

      II、执行SQL语句,其查询结果如下图所示:

           SQL <wbr>数据初级查询—实验报告  

  2.10  查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。

      I 、在创建查询框中输入SQL语句,如下图所示:

            SQL <wbr>数据初级查询—实验报告

      II 、执行SQL语句,其查询结果如下图所示:

            SQL <wbr>数据初级查询—实验报告  

  2.11  查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)

      I 、在创建查询框中输入SQL语句,如下图所示:

            SQL <wbr>数据初级查询—实验报告

   II、执行SQL语句,其查询结果如下图所示:

           SQL <wbr>数据初级查询—实验报告      

  2.12  查询所有有成绩的学生学号(Sno)和课程号(Cno)

      I 、在创建查询框中输入SQL语句,如下图所示:

             SQL <wbr>数据初级查询—实验报告

      II、执行SQL语句,其查询结果如下图所示:

        SQL <wbr>数据初级查询—实验报告 

  3 查询结果排序

   3.1  查询选修了C03号课程的学生的学号(Sno)和成绩(Grade)并按成绩降序排列。

       I 、在创建查询框中输入SQL语句,如下图所示:

             SQL <wbr>数据初级查询—实验报告

      II 、执行SQL语句,其查询结果如下图所示:

             SQL <wbr>数据初级查询—实验报告

   3.2  查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。

       I 、在创建查询框中输入SQL语句,如下图所示:

              SQL <wbr>数据初级查询—实验报告

       II 、执行SQL语句,其查询结果如下图所示:

               SQL <wbr>数据初级查询—实验报告

八、实验总结

        通过此次上机实验,使我更加熟悉了对SQL语句及其应用,虽然是第一次上机调试但并不感到陌生。在SQL语句调试的过程中      虽错误总是千奇百怪,但根据老师教授的知识很快的得以纠正,完成了本次实验,通过本次实验,深刻的意识到自身的不          足,也明白了理论与实践的差距,同时自己学过的知识也得以加深理解与巩固,感谢老师给予我们机会,使我们的知识更          加牢固!

 

附录

学生表Student

SQL <wbr>数据初级查询—实验报告

课程表Course

SQL <wbr>数据初级查询—实验报告

选课表SC    

     SQL <wbr>数据初级查询—实验报告

本文档为数据库上机实验报告,是自己认认真真一步一步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验一 实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用和数据库设计的一般方法。 实验内容: (1)SQL SERVER2005的使用 (2)数据库的设计过程并利用SQL SERVER2005建立数据库。 实验二 实验题目: 数据库的定义 实验目的:掌握数据表建立、修改、删除、索引的SQL语句。 实验内容: (1)数据表的建立 (2)数据表的修改 (3)数据表的删除 (4)数据表的索引建立 为S表的DEPT建立唯一索引 (5)视图的建立与删除 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验三 实验题目: 数据表的操作 实验目的: 掌握数据数据操作的SQL语句。 实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验四 实验题目: T-SQL编程 实验目的: 掌握T-SQL语句的使用。 实验内容: 1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。 2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。 3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义及使用。 实验内容: 1. 定义S, C表的完整性约束 2. 定义SC表的完整性约束,要求当其被参照表发生删除操作时,违约处理的方式为级联,当其被参照表发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立一DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log表内 ☆ 建立一个INSTEAD OF触发器,每当修改课程表中记录时,利用触发器动作替代修改操作。 ☆ 建立一个DDL 触发器,不允许删除数据库中表,并作出响应。 实验六 实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test表,通过授权模式的方法,授权给user2表访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC表和修改GRADE属性的权限授予用户user1。 ☆ 将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对表S的插入权限。 实验七 实验题目: 数据库的设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的表示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值