文档详情

数据库上机实验二.doc

发布:2017-06-19约3.76千字共5页下载文档
文本预览下载声明
数据库上机实验二 实验要求: 掌握查询语句的一般格式。; 掌握无条件、有条件查询及查询结果排序与分组。 实验目的:熟练掌握简单查询语句的使用。 实验设备:装有SQL SERVER 2000的电脑 实验步骤: (1) 启动SQL查询分析器; (2) 选择SQL SERVER后,按确认; 选择数据库ST; 综合练习如下例题(实验报告上只需写蓝色字体的题目): 预备工作:建立一个名称为“ST”的数据库,里面有三张表:Students、Courses、Reports; 直接在企业管理器里,在数据库ST的三张表里输入以下数据: 1 无条件查询 例1 查询全体学生的详细记录。这是一个无条件的选择查询,其命令为: SELECT * /*这里的“*”等价于ALL*/ FROM s; 其结果为表1中的全部数据。 例2 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。这是一个无条件的投影查询,其命令为: SELECT Sname, Sno, Sdept FROM s; 例3 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。由于SELECT子句的目标列表达式不仅可以是表中的属性列,也可以是表达式,故可以查询经过计算的值。其命令为:select Sname, 2011 - Sage AS birth, Sno from s 例4 查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。其命令为:select Sname, 2011 - Sage AS birth, lower(Sno) as Sno from s 例5 查询选修了课程的学生学号。其命令为: select DISTINCT s.Sno from sc, s where sc.Sno = s.Sno and Cno IS NOT NULL 2 条件查询 例6 查询数学系全体学生的学号(Sno)和姓名 (Sname)。其命令为: SELECT Sno, Sname FROM S WHERE Sdept=数学; 例7 查询所有年龄在18~22岁(包括18岁和22岁)之间的 学生姓名(Sname)及年龄(Sage)。其命令为: SELECT Sname, Sage FROM S WHERE Sage(=18 AND Sage=22; 例8 查询年龄在18~22岁(包括18岁和22岁)之间的 学生姓名(Sname)及年龄(Sage)。其命令为: select Sname, Sage from s where Sage between 18 and 22 使用BETWEEN AND 例9 查询年龄不在18-22岁之间的学生姓名(Sname)及 年龄(Sage)。其命令为: select Sname, Sage from s where Sage 18 and Sage 22 例10 查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。其命令为: SELECT Sno, Sname, Ssex FROM S WHERE Sdept IN (自动化, 数学, 计算机); 等价于:SELECT Sname, Ssex FROM S WHERE Sdept=自动化 OR Sdept=数学 OR Sdept=计算机; 例11 查询既不是信息系、数学系、也不是计算机系的学生的姓名(Sname)和性别(Ssex)。其命令为: SELECT Sname, Ssex FROM S WHERE Sdept NOT IN (自动化, 数学, 计算机); 例12 查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其命令为: SELECT Sname, Sno, Ssex FROM S WHERE Sname LIKE 刘%; 例13 查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。其命令为: select Sname, Sage from s where Sname not like 刘% 例14 查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。其命令为: select Cno, Credits from c where Cname = DB_设计 例15 假设某些学生选修课程后没有参加考试,所以有选课记录, 但没有考试成绩。试查询缺少成绩的学生的学号(Sno) 和相应的课程号(Cno)。其命令为: select Sno, Cno from sc where grade IS NULL 例16 查询所有有成绩的学生学号(Sno)和课程号(Cno)。其命令为: s
显示全部
相似文档