
大型数据库技术(Oracle)实验报告3.docx
19页实验 3 SQL 基本查询与 SQL Plus 的使用姓 名 :专 业 : 软件工程同 组 人 : 无学 号 :班 级 :实 验 日 期 : 2012/2/27【实验目的与要求】1. 熟悉 Oracle SQL Plus 的使用2. 掌握 SQL 基本查询实验内容与步骤】3.1 启动 SQL*Plus要调用 SQL Plus,需依次完成如下步骤:² 单击 Start(“开始”)按钮² 指向 Programs(“程序”)组图标² 选择 Oracle—oracle10g图 3-1² 选择 Application Developmen(t “应用程序开发”)选项² 单击 SQL Plus第 1 页 共 19 页启动 SQL 之后,将会出现图 3-2 所示的屏幕填写相应的详细资料按 Tab 键转到下一个选项安装 Oracle 时创建的默认用户为 Scott,密码为 tiger主机字符串是 oracle图 3-2单击 OK(“确定”)将会出现如下图所示的屏幕,显示产品信息图 3-3SQL > 是 SQL 提示符在此提示符下提供要执行的SQL 命令和语句下面给出可通过 scott/tiger 登录访问的默认表及其列名。
在本实验中,我们将使用这些表EMPDEPTSALGRADEEMPNODEPTNOGRADEENAMEDNAMELOSALJOBMGRLOCHISALHIREDATESALCOMMDEPTNO第 2 页 共 19 页3.2 从表中查看数据输入表中的数据可通过使用 SELECT 语句进行查看3.2.1 查看所有列语法如下:SELECT * FROM tablename;其中 “*” 表示将显示所有列实验 3-1 部门表中查看所有记录和所有字段,请执行如下步骤:² 在 SQL 提示符下键入“Select * from dept”(从部门选择*)² 按 Enter您将得到图 3-4 中显示的结果图 3-43.2.2 查看选择列要查看选择列,请输入列名,并用逗点而不是“*” 隔开语法如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablename;实验 3-2 只显示部门表中的部门名和位置,执行如下所示的语句:第 3 页 共 19 页图 3-5请给出运行结果:$ 某些列标题由于其列大小限制而使用缩写词要将字符列的显示宽度设置为 12, 请给出如下语句:COLUMN columnname FORMAT A12$ COLUMN 语句不能以分号结尾,因为它是格式化命令。
通过 COLUMN 命令可以使用的选项包括:选项FORMATHEADING text JUSTIFY L R C功能WRAP TRUNC指定数据格式text 为列标题将标题对齐为 LEFT RIGHT CENTER在列中回行或截断数据通过 FORMAT 选项可用的掩码包括:掩码功能An n 个字母数字字符99[9…] 不含前导零的数字00[…] 含前导零的数字. 显示的小数点V 隐藏的小数点$ 先导 $MI 数字后面是减号PR 负值包括在“<>”之内B 显示空白而不是零要显示包含前导零的薪金,请在 SQL 提示符下给出如下命令SQL> column sal format 009999第 4 页 共 19 页实验 3-3 设置格式之后,执行如下所示的命令图 3-5(a)请给出运行结果:这样,所有雇员的薪金就以包含前导零的格式显示要删除此格式,请在提示符下输入如下给定命令SQL> column sal format 9999993.2.3 查看符合条件的行可以使用 WHERE 子句完成对某些相关数据行的条件检索WHERE 子句中指定的条件称为谓词谓词可以是任意数据类型、字符、数字或日期。
像 AND、OR 和 NOT 这样的逻辑运算符也可以用于合并谓词语法如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablename WHERE
3. LIKE 运算符:该运算符用于匹配字符串或字符串的一部分(称为子字符串)该运算符使用通配符扩展其字符串匹配功能有两种通配符与 LIKE 运算符一起使用:Ø 下划线 (_):这表示任意单字符Ø 百分号 (%):这表示多字符的序列实验 3-7 要显示姓名以“J”开头的雇员,请给出如下命令图 3-9请给出运行结果:3.2.4 查看汇总数据(使用统计函数)第 7 页 共 19 页GROUP BY 子句根据字段值对行进行分组该子句在应用时将与聚合函数联合有时,也要求对已分组的查询进行条件检索可以使用“HAVING”子句对已分组查询进行条件检索HAVING”子句与“WHERE”子句相似,只不过“WHERE”子句用于行,而“HAVING”子句用于已分组的结果语法如下:SELECT columnname1, aggregate_function(columnname2) FROM tablenameGROUP BY columnname1;实验 3-8 要从雇员表中显示付给经理的最高薪金,执行如下所示的语句:请给出运行结果:图 3-10聚合函数通常与 Group by 和 Having 子句一起使用。
要讨论的聚合函数是:1. Count:此函数对包括 Null 值的查询所返回的行数进行记数实验 3-9 要查找每个工作类别的人数,执行如下所示的语句:请给出运行结果:图 3-11第 8 页 共 19 页2. Max:从查询返回的值中返回最大值3. Min:从查询返回的值中返回最小值4. Avg:用来确定某个列中出现的值的平均数5. Sum:用来获取查询输出的行的算术和实验 3-10 要从雇员表中显示付给经理的最高、最低、平均和总薪金,执行如下所示的语句:图 3-12请给出运行结果:3.2.5 以指定顺序查看数据第 9 页 共 19 页ORDER BY 子句可帮助按照希望出现的顺序检索查询可以通过指定DESC 参数或 ASC 参数来按升序顺序或降序顺序进行排序如果没有指定任何参数,则默认为升序排序还可对多列进行排序语法如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablename WHERE
可在查询中使用 SQL 表达式执行所有类型的算术操作唯一必须注意的是,这些表达式涉及的列应该只属于数字数据类型语法如下:SELECT columnname1, (columnname2
