基本查询答案.docx
- 文档编号:10216544
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:12
- 大小:139.52KB
基本查询答案.docx
《基本查询答案.docx》由会员分享,可在线阅读,更多相关《基本查询答案.docx(12页珍藏版)》请在冰点文库上搜索。
基本查询答案
1.1.3实训内容
实例1SQL*Plus命令的使用
在本实例中,主要针对SQL*Plus命令的使用进行实训。
1.在SQL*Plus中输入示例语句(注,语句在后续章节将进行具体介绍,此处主要掌握SQL*Plus命令的使用)
参考步骤:
(1)登录数据库(注:
以后的查询均按照此步骤进行)。
从菜单中依次选择“开始”→“所有程序”→“Oracle-OraHome92”→“ApplicationDevelopment”→“SQL*Plus”,打开登录对话框,在该对话框中的“用户名称”文本框中输入用户名“hr”,在“口令”文本框中输入设定的口令,如图1-1-7所示。
在该对话框中单击“确定”按钮,即弹出如图1-1-8所示的已连接的SQL*Plus环境。
(注:
用户名和口令要自行进行修改设定,在以后的查询请按照给定的用户名以相应的口令登录。
此处以hr的用户登录,注意在使用该用户之前,一般要对该帐户进行解锁和密码设定。
)
图1-1-7登录对话框
图1-1-8SQL*Plus环境
(2)在已经连接到数据库的SQL*Plus环境中(以hr用户登录),输入语句并执行,如图1-1-9所示。
图1-1-9在SQL*Plus环境中输入语句并执行
2.先查看缓冲区的内容,然后在语句的第一行增加hire_date字段并查看语句,最后执行语句。
在之前运行了命令的SQL*Plus环境中,继续输入语句完成要求,首先查看缓冲区的内容,如图1-1-10所示;然后在语句的第一行增加hire_date字段,如图1-1-11所示;然后查看内容,如图1-1-12所示;最后执行语句,如图1-1-13所示。
图1-1-10查看缓冲区内容
分析:
使用L命令可以查看缓冲区中的所有命令行,加了星号(*)的行为当前行。
图1-1-11SQL*Plus环境下增加字段
分析:
直接输入数字1,表示指定数字行(第1行)为当前行,然后再使用A[PPEND]命令将要增加的内容添加到当前行的末尾。
图1-1-12SQL*Plus环境下查看内容
图1-1-13SQL*Plus环境下执行语句
分析:
使用R[UN]命令显示并运行缓冲区中的命令行。
实例2简单查询
在本实例中,主要针对简单查询进行实训。
主要完成以下查询:
1.查询jobs表中的全部数据
得到查询结果如下所示:
JOB_IDJOB_TITLEMIN_SALARYMAX_SALARY
--------------------------------------------------------------------------------------------
AD_PRESPresident2000040000
AD_VPAdministrationVicePresident1500030000
…
MK_REPMarketingRepresentative40009000
HR_REPHumanResourcesRepresentative40009000
PR_REPPublicRelationsRepresentative450010500已选择19行。
分析:
SELECT子句中的星号(*)表示从表中查询全部列。
2.查询雇员的雇员编号、名字、工资和部门编号
得到查询结果如下所示:
EMPLOYEE_IDLAST_NAMESALARYDEPARTMENT_ID
--------------------------------------------------------------------------
100King2400090
101Kochhar1700090
…
204Baer1000070
205Higgins12000110
206Gietz8300110
已选择107行。
分析:
如果想要查询具体的某些列,则在SELECT子句中给出所有要查询的列,用逗号隔开,查询结果中列的顺序与SELECT子句中给定的列的顺序一致。
3.查询departments表中所有部门的位置编号(要求去掉重复值)
得到查询结果如下所示:
LOCATION_ID
-------------------
1400
1500
…
2400
2500
2700
已选择7行。
分析:
在SELECT子句中使用DISTINCT关键字可以将重复行去掉。
在上例中,在DISTINCT关键字的后面有一个列:
location_id,则在查询结果中将location_id取值相同的行都去掉了。
在departments表中有27行数据,但是表中只有7个不同的location_id。
如果在DISTINCT关键字后面有多个列,在会去掉多个列取值都完全相同的数据行。
实例3列别名和算术运算符
在本实例中,主要针对LIKE条件子句进行实训。
完成以下查询:
1.查询雇员的雇员编号、名字、工资以及将工资涨了10%后的工资情况,将涨工资的列的列标签显示(别名给定)为NewSalary。
得到查询结果如下所示:
EMPLOYEE_IDLAST_NAMESALARYNewSalary
----------------------------------------------------------------------------
100King2400026400
101Kochhar1700018700
…
204Baer1000011000
205Higgins1200013200
206Gietz83009130
已选择107行。
分析:
算术运算符中乘法和除法的优先级高于加法和减法,乘法和除法的优先级相同,加法和减法的优先级相同。
所以在上例中先进行乘法运算(salary*0.1),乘法得到的结果再进行加法运算。
为了改变列名,或者给计算列定义一个列名,则可以使用列别名。
当列别名中有空格,特殊字符或者要求区分大小写时,则必须使用双引号将列别名括起来。
在上例中,将涨了10%的工资作为一个新列,该列的列别名为NewSalary,该列别名中包含空格,并且要求区分大小写,所以需要使用双引号将列别名括起来。
2.查询雇员的雇员编号、名字、工资以及将每个月的工资增加1000后的年薪,将计算的年薪的结果给定别名为AnnualSalary。
得到查询结果如下所示:
EMPLOYEE_IDLAST_NAMESALARYAnnualSalary
----------------------------------------------------------------------------------
100King24000300000
101Kochhar17000216000
…
204Baer10000132000
205Higgins12000156000
206Gietz8300111600
已选择107行。
分析:
在算术运算中使用圆括号可以强制优先级。
所以在上例中先进行括号中的加法运算,得到的结果再进行乘法运算。
在列名和列别名之间可以使用as来增强可读性。
实例4连字运算符
在本实例中,主要针对LIKE条件子句进行实训。
完成以下查询:
1.查询1996年雇用的员工的姓名(last_name和first_name)和雇用日期,其中,last_name和first_name要进行连接,作为一列输出,别名为Name。
得到查询结果如下所示:
NameHIRE_DATE
-------------------------------------------------------
KingSteven17-6月-87
KochharNeena21-9月-89
…
BaerHermann07-6月-94
HigginsShelley07-6月-94
GietzWilliam07-6月-94
已选择107行。
分析:
通过连字运算符(||)可以将列和列、列和算术表达式,列和常量进行连接,创建字符表达式,连接的结果合并成一个单个输出列。
在上例中,使用连字运算符将列last_name和列first_name进行连接,连接的结果作为一个列输出。
2.查询员工的姓名和受雇日期,要求结果显示为一列,别名为“employee'shire_date”,每行数据的格式类似“employeeKingSteven'shire_dateis17-6月-87”。
得到查询结果如下所示:
employee'shire_date
--------------------------------------------------------------------------------
employeeKingSteven'shire_dateis17-6月-87
employeeKochharNeena'shire_dateis21-9月-89
…
employeeBaerHermann'shire_dateis07-6月-94
employeeHigginsShelley'shire_dateis07-6月-94
employeeGietzWilliam'shire_dateis07-6月-94
已选择107行。
分析:
在上例中,将列和文字字符串通过连字运算符进行连接,文字字符串包含在查询结果中,对每个返回行都输出一次。
二、操作题
1.从employees表中查询雇员的工作代码(job_id),要求去掉重复值。
2.从departments表中查询全部数据。
3.从departments表中查询部门编号、部门名称以及部门的位置编号。
4.显示jobs表的结构。
5.从jobs表中查询工作代码,工作名称,该工作的最高工资和最低工资,要求列名显示分别为:
JobId,JobName,MaxSalary,MinSalary。
6.查询每个雇员的年薪,要求将last_name、first_name和计算所的年薪进行连接,每行数据的显示格式类似“TomHel’sannualsalaryis567000”,别名为“TheTotal”。
7.查询每个雇员的名字以及一年的佣金收入(列名显示为Comm)。
二、操作题
1.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECTDISTINCTjob_id
FROMemployees;
2.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECT*
FROMdepartments;
3.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECTdepartment_id,department_name,locatio_id
FROMdepartments;
4.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
DESCjobs;
5.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECTjob_id"JobId",job_title"JobName",max_salary"MaxSalary",
min_salary"MinSalary";
FROMjobs
6.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECTlast_name||first_name||'''sannualsalaryis'||salary*12AS"TheTotal"
FROMemployees;
7.[参考步骤]
以用户名hr和相应的口令登录SQL*Plus,然后输入以下语句:
SELECTlast_name,salary*12*commission_pctAS"Comm"
FROMemployees;
注:
操作题的答案不唯一,此处答案仅供参考。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 查询 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)