实验 SQL基本查询与SQL Plus的使用_第1页
实验 SQL基本查询与SQL Plus的使用_第2页
实验 SQL基本查询与SQL Plus的使用_第3页
实验 SQL基本查询与SQL Plus的使用_第4页
实验 SQL基本查询与SQL Plus的使用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验3 SQL基本查询与SQL Plus的使用【实验目的与要求】1 熟悉Oracle SQL Plus的使用2 掌握SQL基本查询。【实验内容与步骤】3.1 启动 SQL*Plus 要调用 SQL Plus,需依次完成如下步骤:² 单击 Start(“开始”)按钮。² 指向 Programs(“程序”)组图标。² 选择 Oracleoracle10g。图 3-1² 选择 Application Development(“应用程序开发”)选项。² 单击 SQL Plus。启动 SQL 之后,将会出现图3-2 所示的屏幕。填写相应的详细资料。按 T

2、ab 键转到下一个选项。安装 Oracle 时创建的默认用户为 Scott,密码为 tiger。主机字符串是数据库名称(TestDB),对本机而言,也可空着;若只是希望启动SQL Plus不想以任何用户身份登录,则可在用户名处输入”/nolog”登录。图 3-2(a)² 单击 OK(“确定”),完成登录将会出现如下图所示的屏幕,显示产品信息。图 3-3SQL > 是 SQL 提示符。在此提示符下提供要执行的 SQL 命令和语句。下面给出可通过 scott/tiger 登录访问的默认表及其列名。在本实验中,我们将使用这些表。EMPDEPTSALGRADEEMPNOENAMEJOB

3、MGRHIREDATESALCOMMDEPTNODEPTNODNAMELOCGRADELOSALHISAL3.2 从表中查看数据表中的数据可通过使用 SELECT 语句进行查看。3.2.1查看所有列语法如下:SELECT * FROM tablename;其中 “*” 表示将显示所有列。实验3-1 部门表中查看所有记录和所有字段值,请执行如下步骤:² 在 SQL 提示符下键入“Select * from dept”(从部门选择 *);² 按 Enter。 将得到图3-4 中显示的结果。图 3-43.2.2查看选择列要查看选择列,请输入列名,并用逗点而不是 “*” 隔开。语法

4、如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablename;实验3-2只显示部门表中的部门名和位置,执行如下所示的语句:图 3-5请给出运行结果:$某些列标题由于其列大小限制而使用缩写词。要将字符列的显示宽度设置为 12,请给出如下语句: COLUMN columnname FORMAT A12$COLUMN 语句不能以分号结尾,因为它是格式化命令。通过 COLUMN 命令可以使用的选项包括:选项功能FORMAT指定数据格式HEADING texttext 为列标题JUSTIFY L R C将标题对齐为 LEFT RIGHT

5、 CENTERWRAP TRUNC在列中回行或截断数据通过 FORMAT 选项可用的掩码包括:掩码功能Ann 个字母数字字符999不含前导零的数字00含前导零的数字.显示的小数点V隐藏的小数点$先导 $MI数字后面是减号PR负值包括在“<>”之内B显示空白而不是零要显示包含前导零的薪金,请在 SQL 提示符下给出如下命令。SQL> column sal format 009999实验3-3设置格式之后,执行如下所示的命令。图 3-5请给出运行结果:这样,所有雇员的薪金就以包含前导零的格式显示。要删除此格式,请在提示符下输入如下给定命令。SQL> column sal f

6、ormat 9999993.2.3查看符合条件的行可以使用 WHERE 子句完成对某些相关数据行的条件检索。WHERE 子句中指定的条件称为谓词。谓词可以是任意数据类型、字符、数字或日期。像 AND、OR 和 NOT 这样的逻辑运算符也可以用于合并谓词。语法如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablenameWHERE <condition>实验3-4要从雇员表中只显示那些在部门 20 工作的雇员,执行如下所示的语句:图 3-6请给出运行结果:在谓词中可以有效使用的其他运算符还有:1. IN 运算符:此运算

7、符用于显式规定可以接受的值组。实验3-5 要只显示属于“CLERK”(办事员)或“MANAGER”(经理)的雇员,执行如下命令。图 3-7请给出运行结果:另一方面,NOT IN 运算符将返回与条件不匹配的行。2. BETWEEN 运算符:此运算符与 IN 运算符相似,不过可以指定值的范围而不是匹配的值组。实验3-6要只显示在“03-JAN-82”(1982 年 1 月 1 日)和“33-DEC-87”(1987 年 12 月 31 日)之间加入的雇员,请给出如下命令。图 3-8请给出运行结果:NOT BETWEEN 运算符将获取与条件不匹配的行。3. LIKE 运算符:该运算符用于匹配字符串或

8、字符串的一部分(称为子字符串)。该运算符使用通配符扩展其字符串匹配功能。有两种通配符与 LIKE 运算符一起使用:Ø 下划线 (_):这表示任意单字符。Ø 百分号 (%):这表示多字符的序列。实验3-7 要显示姓名以“J”开头的雇员,请给出如下命令。图3-9请给出运行结果:3.2.4查看汇总数据(使用统计函数)GROUP BY 子句根据字段值对行进行分组。该子句在应用时将与聚合函数联合。有时,也要求对已分组的查询进行条件检索。可以使用“HAVING”子句对已分组查询进行条件检索。“HAVING”子句与“WHERE”子句相似,只不过“WHERE”子句用于行,而“HAVING”

9、子句用于已分组的结果。语法如下:SELECT columnname1, aggregate_function(columnname2)FROM tablenameGROUP BY columnname1;实验3-8要从雇员表中显示付给经理的最高薪金,执行如下所示的语句:图3-10请给出运行结果:聚合函数通常与 Group by 和 Having 子句一起使用。要讨论的聚合函数是:1.Count:此函数对包括 Null 值的查询所返回的行数进行记数。实验3-9要查找每个工作类别的人数,执行如下所示的语句:图 3-11请给出运行结果:2.Max:从查询返回的值中返回最大值。3.Min:从查询返回的

10、值中返回最小值。4.Avg:用来确定某个列中出现的值的平均数。5.Sum:用来获取查询输出的行的算术和。实验3-10要从雇员表中显示付给经理的最高、最低、平均和总薪金,执行如下所示的语句:图3-12请给出运行结果:3.2.5以指定顺序查看数据ORDER BY子句可帮助按照希望出现的顺序检索查询。可以通过指定 DESC 参数或 ASC 参数来按升序顺序或降序顺序进行排序。如果没有指定任何参数,则默认为升序排序。还可对多列进行排序。语法如下:SELECT columnname1, columnname2, ?, columnnameNFROM tablenameWHERE <conditio

11、n>ORDER BY columnname1, columnname2, , columnnameN;实验3-11要以雇员的工作的顺序显示收入大于或等于 3000 的雇员,执行如下所示的语句:图 3-13请给出运行结果:3.2.6使用计算列查看数据除了从数据库表中直接提取的列外,SQL 还可以用于计算多个列中的数据的值。可在查询中使用 SQL 表达式执行所有类型的算术操作。唯一必须注意的是,这些表达式涉及的列应该只属于数字数据类型。语法如下:SELECT columnname1, (columnname2 <arithmetic operator> columnname3)F

12、ROM tablename实验3-12要从雇员表中显示雇员总薪金,执行如下语句:图 3-14请给出运行结果:注意: 在上面的命令中,NVL 函数用来将空值转换为数字值,我们在此将其转换为“0”。我们必须按任意表达式执行此操作,表达式中包含空值,因为操作数返回 NULL。因此,为避免在任何操作中出现这种错误,我们使用 NVL 函数。3.3 退出 SQL在 SQL 提示符下键入 Exit (“退出”)或执行如下步骤:² 从 Main Menu(“主菜单”)中选择 File(“文件”)选项。² 单击 Exit(“退出”)。² 您也可以在命令提示符下输入“Exit”。3.

13、4 实验练习:在scott用户模式下,完成下查询需求,给出相关查询语句和运行结果:(1) 列出各种类别"SALES"工作的雇员的姓名,假定不知道销售部的部门编号.(2) 列出薪金高于公司平均水平的所有雇员.(3) 列出与"SCOTT"从事相同工作的所有雇员.(4) 列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员. (5) 列出各种类别工作的最低工资.(6) 列出各个部门MANAGER的最低薪金.(7) 列出按计算的字段排序的所有雇员的年薪.(8)  选择部门 30 中的雇员。(9) 列出所有办事员的姓名、编号和部门。(10) 找出佣金高于薪金的雇员。(11) 找出佣金高于薪金 60% 的雇员。(12) 找出部门 10 中所有经理和部门 20 中所有办事员的详细资料。(13) 找出部门 10 中所有经理、部门 20 中所有办事员以及既不是经理又不是办事员但其薪金大于或等于 2000 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论