oracle实验以及答案

合集下载

oracle实验报告及答案 用户、权限安全

oracle实验报告及答案   用户、权限安全

实验三用户、权限安全班级:座号:姓名:时间:一、实验目的1.创建用户2.创建角色3.使用GRANT和REVOKE语句授予和撤销对象权限二、实验设备一台PC机,widows操作系统,oracle 10g三、实验内容1. 使用sys身份连接到数据库。

2.创建一个用户TEMPUSER,其口令为oracle,默认表空间为USERS,对表空间没有配额限制,临时表空间为TEMP。

3. 创建一个用户配置文件TEMPPROFILE,包含的资源及口令限制如下:该用户最多可以建立3个并发的会话连接用户执行语句使用的CPU最长时间为20分钟空闲时间超过15分钟后,断开与用户的连接限制用户每次调用SQL语句时,能够读取的数据库块数200限制用户在登录到Oracle数据库时允许失败的次数24. 为用户TEMPUSER指定配置文件5. 向用户授予连接数据库系统权限。

6.向用户授予对对象HR.JOBS的SELECT权限,并以用户TEMPUSER连接到数据库,以查询jobs表。

7.以sys身份登录,撤销向用户TEMPUSER授予的系统权限,向用户授予CONNECT,resource角色。

8. 以tempuser身份登录,在exer_tabspace表空间创建表customer(x number)。

四、实验步骤1.使用sys身份连接到数据库。

Connect sys/oracle as sysdba;(查看表空间信息SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;)2. 创建一个用户TEMPUSERCreate user tempuser identified by oracle default tablespace USERS temporary tablespace temp quota unlimited on users;3.创建一个用户配置文件TEMPPROFILE4.为用户TEMPUSER指定配置文件Alter user tempuser profile tempprfile;5向用户授予连接数据库系统权限6、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH;(启用资源限制,参数立即生效)(再开第二个窗口,第三个窗口,第四个窗口都用TEMPUSER/ORACLE登陆,看看会发生什么情况)7. 向用户授予对对象“HR.JOBS”的SELECT权限,并以用户TEMPUSER连接到数据库,以查询“JOBS”表。

Oracle实验报告及答案 数据库管理与工具使用

Oracle实验报告及答案  数据库管理与工具使用

实验一 Oracle数据库管理与工具使用班级:座号:姓名:时间:一、【实验目的】1.掌握Oracle的启动、关闭、连接和管理初始化参数2.熟悉oem和SQL*Plus的使用3.了解用户和模式的概念,并查询hr模式表的数据二、【实验设备】一台PC机,widows xp操作系统,oracle 10g或11g三、【实验内容】1.启动和关闭window操作系统的Oracle服务2.通过三种方式访问数据库3.使用SQL*Plus启动和关闭Oracle数据库4.使用em和SQL*Plus解锁hr模式,并使用SQL*Plus编写查询该模式中表的SQL命令5.使用em和SQL*Plus显示和设置初始化参数文件四、【实验步骤】1 启动服务(开始,设置,控制面板,管理工具,服务)2通过三种方式连接数据库:方法一:在运行窗口中输入CMD命令,然后在窗口中输入SQLPlus命令以启动SQL*Plus工具方法二:开始/程序/Oracle - OraDb10g_home1/SQL Plus打开登录界面,然后输入相应的用户名称和登录密码。

方法三:打开IE,输入本机IP:5560/isqlplus 或者localhost:5560/isqlplus,启动Oracle Enterprise Manager(OEM),以图形话方式对数据库进行操作。

Select * from hr.employees;3 使用SQL*Plus用sys用户关闭Oracle数据库4通过三种方式启动数据库:1)startup nomount;2) alter database mount;3)ALTER DATABASE OPEN;5确认数据库状态:Select instance_name,status from v$instance;6 解锁hr用户7使用hr用户连接sqlplus,Select * from employees;8用SQL*Plus显示所有初始化参数SHOW PARAMETER;五、【实验小结】通过本次实验学会通过oem和SQL*Plus与数据库建立连接,启动、关闭数据库。

oracle测试试题及答案

oracle测试试题及答案

【例1】创建一个名为IT_EMPLOYEES的表,它由编号EMPLOYEE_ID、名FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY和部门经理编号MANAGER_ID八个属性组成。

create table IT_EMPLOYEES(EMPLOYEE_ID NUMBER(6) not null unique,FIRST_NAME VARCHAR2(20),LAST_NAME VARCHAR2(25) not null,EMAIL VARCHAR2(25),PHONE_NUMBER VARCHAR(20),JOB_ID VARCHAR2(10),SALARY NUMBER(8,2),MANAGER_ID NUMBER(6));【例2】建立程序员的视图PROG_EMPLOYEES(JOB_ID=’IT_PROG’),其中隐含了视图的列名.create view prog_employeesasselect employee_id,first_name,last_name,email,phone_number,salary,manager_id from it_employeeswhere job_id = 'IT_PROG';【例3】执行下面的CREATE INDEX语句,创建索引:CREATE INDEX IT_LASTNAME ON IT_EMPLOYEES(LAST_NAME);【例4】将前文创建的视图PROG_EMPLOYEES删除.DROP VIEW PROG_EMPLOYEES;【例5】向IT_EMPLOYEES表中增加“雇员生日”列,其数据类型为日期型:ALTER TABLE IT_EMPLOYEES ADD BIRTHDATE DATE;【例6】将IT_EMPLOYEES表的MANAGER_ID字段改为8位:ALTER TABLE IT_EMPLOYEES MODIFY MANAGER_ID NUMBER(8);【例7】删除IT_EMPLOYEES表EMPLOYEE_ID字段的UNIQUE约束:ALTER TABLE IT_EMPLOYEES DROP UNIQUE(EMPLOYEE_ID);【例8】创建表COUNTRIES时的列顺序为:COUNTRY_ID、COUNTRY_NAME、REGION_ID。

《Oracle数据库应用与实践》课后习题参考答案

《Oracle数据库应用与实践》课后习题参考答案

第 5 章 Oracle 模式对象
一、填空题
1. 字段级约束 表约束
2. NOT NULL 约束 UNIQUE 约束 PRIMARY KEY 约束

3. CREATE TABLE
CREATE ANY TABLE
4. UNIQUE PRIMARY KEY CHECK
5. 合并索引 重建索引
6. user_updatable_columns
一、 填空题 1. 数据挖掘 隐含的 未知的 2. API-ODM Java API ODM DBMS_DM PL/SQL API
3. Clustering Association Feature Extraction
Oracle 数据库应用与实践
2、某 cc 表数据如下: c1 c2 -------------1西 1安 1的 2天 2气
Oracle 数据库应用与实践
3好 …… 转换为 1 西安的 2 天气 3好 要求:不能改变表结构及数据内容,仅在最后通过 SELECT 显示出这个查询结果
代码为: create or replace function x return varchar2 is type t_array is table of number index by binary_integer; type tarray is table of varchar2(10) index by binary_integer; ta t_array; tar tarray; re varchar2(10); n number; na varchar2(10); begin select id bulk collect into ta from (select id,name from xx order by id) group by id; for i in st loop dbms_output.put(ta(i)||' '); select name bulk collect into tar from xx where id=ta(i); for i in st loop dbms_output.put(tar(i)); end loop; dbms_output.put_line(' '); end loop; return re; end;

《Oracle技术》实验报告5(答案)1

《Oracle技术》实验报告5(答案)1

《Oracle技术》实验报告实验名称PL/SQL编程(选作10题,程序另加附页)姓名学号日期专业班级实验目的(1)了解PL/SQL块的基本结构和分类。

(2)熟练掌握编写PL/SQL块的方法。

(3)了解PL/SQL存储过程、触发器、游标的作用。

(4)熟练掌握编写PL/SQL存储过工程的方法及维护过程。

(5)熟练掌握创建触发器的方法及维护过程。

(6)孰练掌握显式游标和隐式游标的使用。

实验内容(1)编写一个PL/SQL块,输出所有员工的员工名、员工号、工资和部门号。

BEGINFOR v_emp IN (SELECT * FROM EMP) LOOP DBMS_OUTPUT.PUT_LINE(v_emp.ename||’‘||v_emp.empno|| ’‘||v_emp.sal||’‘|| v_emp.deptno);END LOOP;END;/(2)编写一个PL/SQL块,查询名为“SMITH”的员工信息,并输出其员工号、工资、部门号。

如果该员工不存在,则插入一条新记录,员工号为2007,员工名为“SMITH”,工资为1500,部门号为10。

如果存在多个名为“SMITH”的员工,则输出所有名为“SMITH”的员工号、工资和部门号。

成绩DECLAREV_empno emp.empno%type;V_sal emp.sal%type;V_deptno emp.deptno%type;BEGINSELECT empno,sal,deptno INTOV_empno,v_sal,v_deptno FROM emp WHERE ename=’SMITH’;DBMS_OUTPUT.PUT_LINE(v_empno||’’||v_sal||’’||v_dept no);EXCEPTIONWHEN NO_DATA_FOUND THENINSERT INTO EMP(empno, ename,sal,deptno)V ALUES(2007,’SMITH’,1500,10);WHEN TOO_MANY_ROWS THENFOR v_emp IN (SELECT empno,sal,deptno FROM emp WHERE ename=’SMITH’) LOOPDBMS_OUTPUT.PUT_LINE(v_emp.empno||’‘||v_emp.sal|| ’‘||v_emp.deptno);END LOOP;END;/(3)创建一个存储过程,以员工号为参数,输出该员工的工资。

oracle课后习题答案

oracle课后习题答案

练习62.实训题(2)Create table exer_class(CNO number(2) primary key,CNAME varchar2(20),NUM number(3));Create table exer_student(SNO number(4) primary key,SNAME varchar2(10) unique,SAGE number,SEX char(2),CNO number(2));(3)Alter table exer_student add constraint ck_sage check (sage>0 and sage<=100);(4)Alter table exer_student add constraint ck_stu check(sex='M' or sex='F') modify sex default 'M';(5)Create unique index ind_cname on exer_class(cname);(6)Create view stu_class_view (e_sno,e_sname,e_cno,e_cname) ASselect sno,sname,cno,cnameFrom exer_student;(7)Create sequence exer_student_seqstart with 100000001nocyclenocache;(8)Create table exer_student_range(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by range(sage)(partition part1 values less than(20) tablespace example,partition part2 values less than(30) tablespace orcltbs1,partition part3 values less than(maxvalue) tablespace orcltbs2);(9)Create table exer_student_list(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by list(sex)(partition man values('M') tablespace orcltbs1,partition woman values('F') tablespace orcltbs2);(10)题目修改为“为exer_student_range表的SAGE列上创建本地分区索引。

Oracle实验报告2标准答案

Oracle实验报告2标准答案
(5)创建一个查询显示工资大于2850美元的姓名及工资。将该查询保存成脚本文件p2q1.sql,并执行该文件。
(6)修改脚本文件p2q1.sqll文件重新保存该查询。
(7)修改文件p2q2.sql,显示在10和30部门工作并且工资大于1500美元的雇员的姓名和工资,列标题显示为Employee和MonthlySalary,最后以p2q3.sql重新保存该文件,返回查询结果。
《Oracle数据库技术》
实验指导书2
基本SELECT、WHERE和ORDERBY子句的使用ﻬ
实验要求
1)掌握SQL*PLUS的基本使用.
2)掌握SELECT语句的简单用法.
3)掌握WHERE子句的用法。
4)掌握ORDER BY子句的用法。
实验步骤
(1)登录到SQL*Plus,初始用户名:SCOTT,口令为TIGER。
6.显示在10号和30号部门工作的雇员的姓名及其部门编号,并以字母顺序排列。
7.显示所有受雇于1982年的雇员的姓名和受雇日期。
8.显示没有上级管理员的雇员的姓名及其工作。
9.显示能挣得奖金的雇员的姓名、工资、奖金,并以工资和奖金降序排列。
10.显示姓名中第三个字母为A的雇员的姓名。
11.显示姓名中两次出现字母L并且在30部门工作或者其管理员编号是7782的雇员的姓名。
12.显示工作为clerk或analyst并且工资不等于1000、3000、5000的雇员的姓名、工作及工资。
SQL>SELECT empno,ename
2salary*12ANNUALSLARY
3FROMemp;
3.创建一个查询EMP表中检索出不重复的工作名称
4.创建一个查询显示雇员编号为7566的雇员的姓名和部门编号。

oracle11g管理与应用实践教程(习题及答案)(2)剖析

oracle11g管理与应用实践教程(习题及答案)(2)剖析

1.6习题Oracle数据库基础一.填空题1、关系模型提供了3类完整性规则,分别是_______、_______、_______。

参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则2、RDBMS由两部分组成,即_______、_______两部分。

答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系:_______、_______、_______。

答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如_______、_______、_______和_______等。

目前理论最成熟、使用最普及的是_______。

答案:层次模型、网状模型、关系数据模型、面向对象模型。

关系数据模型二、选择题1、Oracle 11g版本号中字母“g”的含义是()A.产品类型的“代”( generation) B.网格(gridding)C.集成(integration)D.无含义答案:B2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3、消除了部分函数依赖的1NF的关系模式必定是()A.1NF B.2NF C.3NF D.4NF答案:B4、当B属于函数依赖于A属性时,属性B与A 的联系是()A.1对多B.多对1 C.多对多D.以上都不是答案:B5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。

下面“部门”关系中,因哪个属性而使它不满足第一范式?部门(部门号,部门名,部门成员,部门总经理)A.部门总经理B.部门成员C.部门名D.部门号答案:B6、下列不属于Oracle数据库数据类型的是()A.NUMBER B.FLOAT C.CLOB D.BOOLEAN 答案:D三、简答题1、简述数据库与数据库管理系统的区别。

参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。

oracle实验一答案

oracle实验一答案
With the Partitioning, OLAP, Data Mining and Real Application Testing options
2.对scott用户解锁
SQL> alter user scott account unlock
2 ;
用户已更改。
SQL> conn scott/123
20 RESEARCHDALLAS
30 SALESCHICAGO
40 OPERATIONSBOSTON
13.如果要完全卸载Oracle数据库,应该怎么操作?
a.开始-运行-输入“regedit”
b.依次点击HKEY_LOCAL_MACHINE-SOFTWARE-ORACLE点右键删除
c. HKEY_LOCAL_MACHINE-SYSTEM-ControlSet001-Service删除Service中所有以Oracle开头的键值
20 RESEARCHDALLAS
30 SALESCHICAGO
40 OPERATIONSBOSTON
12.以scott用户登录SQL*Plus,查看dept表的结构和记录
SQL> conn scott/123
已连接。
SQL> desc dept;
名称是否为空?类型
----------------------------------------- -------- -------------------------
GROUP# STATUS
---------- -------
3
2
1
6.在SQL*PLUS里利用数据字典查看数据文件、控制文件和日志文件的信息。
$datafile;

oracle实验报告及答案 备份与恢复

oracle实验报告及答案 备份与恢复

实验四备份与恢复班级:座号:姓名:时间:一、实验目的1.了解备份的重要性2.对数据库进行物理备份、恢复与逻辑备份、恢复3.使用RMAN对数据库进行备份与恢复二、实验设备一台PC机,widows操作系统,oracle 10g三、实验内容1.本练习将使用EXPORT工具按用户方式对SCHOOL模式中的对象进行逻辑备份,并使用该备份恢复将被用户删除的表。

1)在命令提示符窗口中输入命令,启动EXP工具按用户方式备份SCHOOL模式中的对象。

2)删除表STUDENT中的所有数据库。

3)使用IMPORT工具按用户方式恢复STUDENT表中的数据。

2.本练习将对数据库进行物理备份(冷备份),并恢复被用户误删除的数据。

1)以SYSDBA身份连接数据库。

2)复制Oracle目录中的所有文件。

3)删除user01.dbf(模拟误删除)。

4)关闭数据库,启动数据库。

3.本练习将对数据库进行物理备份(热备份),并恢复被用户误删除的数据。

1)以SYSDBA身份连接数据库。

2)确定数据库运行在归档模式下。

3)切换表空间USER为脱机状态。

4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。

5)删除数据文件users01.dbf,并归档当前的日志信息。

6)关闭数据库,切换数据库到MOUNT状态。

7)复制备份的文件到数据库目录,并使用RECOVER命令执行完全恢复。

8)打开数据库,并验证是否恢复被误删除的数据。

4.本练习将对数据库进行物理备份(热备份),并执行基于时间的不完全恢复,以恢复被用户误删除的数据。

1)以SYSDBA身份连接数据库。

2)确定数据库运行在归档模式下。

3)切换表空间USER为脱机状态。

4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。

5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。

6)关闭数据库,切换数据库到MOUNT状态。

oracle上机实验1及答案

oracle上机实验1及答案

实验一安装ORACLE及使用数据库管理工具一目的和要求1 学会安装Oracle 10g数据库服务器、Oracle 10g的客户端软件。

2 熟悉Oracle 10g的各项安装成果。

3 熟悉Oracle 10g DBA可以使用的各种工具。

4 掌握OEM的登录方法、主要功能,了解其OEM四个选项卡页面中的信息。

5 会将OEM的管理权限授予其他的Oracle用户。

6 掌握SQL*Plus和iSQL*Plus的连接和使用方法。

7 熟悉OFA,并能够熟悉已使用的一些文件的位置。

二实验内容1 参考PPT及课堂演示,练习安装Oracle 10g database 和Oracle 10g Client。

2 总结Oracle 10g的各项安装成果。

3 总结Oracle 10g DBA可以使用的各种工具。

4 管理工具的使用:(1)企业管理器1)、登录OEM并展示其主要功能。

操作要求:i 打开浏览器,在地址栏里输入地址:http://localhost:1158/emii 在登录页面上,分别用sys和system登录。

密码都是o123注意:用sys 用户登陆,必须是sysdba或sysoper身份。

用system用户登录,必须是normal身份。

察看OEM 的主要功能。

2)、 实现把OEM 的管理权限授予用户scott ,并用scott 用户登录。

(因安装过之后,scott 用户是Locked&Expired ,必须给用户scott 解锁并使密码不过期,即变成正常的OPEN 状态即可 。

)i 用sys 用户登录OEM ,在OEM 的“管理”选项卡上,操作步骤是:安全性——〉用户——〉点击scott ——>编辑scott 用户——〉重新输入口令及选择“未锁定”——〉点击应用和确定。

ii 把OEM 管理权限授予scott 用户。

点击OEM 主界面右上角的“设置“,然后“创建”,依次按提示完成。

iii 用scott用户登录OEM。

oracle的习题及答案

oracle的习题及答案

oracle的习题及答案1. 如何启动实例、如何装载数据库,如何打开数据库。

Startup nomount alter database mount alter database openStartup mountStartup2. 如何禁止用户的操作系统认证修改SQLNET.ora nts为none3. 如何控制用户不可以远程登陆。

Alter system set remote_login_passwordfile=noneScope=spfile;4. sys/sias@orcl as sysdba 中orcl的解析这里将用到sqlnet.ora文件,如果names.directory_path=(tnsnames,hostname),客户端首先会在tnsnames.ora文件中找到orcl的记录,如果没有相应的记录则尝试把orcl当做一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip,如果解析路径中没有hostname,客户端就只从tnsnames.ora查找orcl的记录。

5. 修改服务器端orcl 的监听端口。

可以用net manager修改或直接修改参数文件6. 创建密码文件。

host orapwd file=e:\orapwd.ora Password=nzg entries=30;7. 怎么样从spfile生成pfileCreate pfile=’d:\pfileorcl.ora’ from spfile;Create spfile=’e:\spfileorcl.or a’ from pfile=’d:\pfileorcl.ora’;8. 通过参数文件查看控制文件的位置Show parameter control_file; select name from v$controlfile;(在例程连接数据库后Mount可执行)。

可通过以下几个动态数据字典视图中获得有关控制文件的信息V$controlfile v$database V$controlfile_record_sectionSelect name from v$database; 显示数据库名称。

oracle遇到的问题及答案

oracle遇到的问题及答案

oracle遇到的问题及答案问题⼀:Oracle 11G⽤EXP时,空表不能导出解决⽅法第⼀查询空表到底有多少张,也就是查询为分配分配segment的表有多少张SQL> select table_name from user_tables where NUM_ROWS=0;TABLE_NAME------------------------------DATA_BACKUPEQUIPMENTFEEDBACK_ACCESSORIESSPECIALPICTASK_THIRDTASK_THIRDBATCHTASK_THIRD_DATATASK_THIRD_FEEDBACKTESTDATA_THIRDTHIRD_ACCESSORIES已选择10⾏。

第⼆查询在当前⽤户下有总的有多少张表SQL> select count(*) FROM USER_TABLES;COUNT(*)----------32第三导出当前⽤户下的数据C:\Users\Administrator>exp lcpt/lcpt file=E:\0702bj\lcpt.dmp wner=lcpt log=E 702bj\lcpt.logExport: Release 11.2.0.1.0 - Production on 星期⼀ 7⽉ 2 10:42:07 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Productio With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的⽤户.... 正在导出 pre-schema 过程对象和操作. 正在导出⽤户 LCPT 的外部函数库名. 导出 PUBLIC 类型同义词. 正在导出专⽤类型同义词. 正在导出⽤户 LCPT 的对象类型定义即将导出 LCPT 的对象.... 正在导出数据库链接. 正在导出序号. 正在导出簇定义. 即将导出 LCPT 的表通过常规路径.... . 正在导出表 ACCESSORIES导出了 18 ⾏. . 正在导出表 AUTH导出了 240 ⾏. . 正在导出表 DATA_TEMP导出了 1 ⾏. . 正在导出表 FEEDBACK导出了 1 ⾏. . 正在导出表 FUNCTION导出了 112 ⾏. . 正在导出表 LIMIT导出了 1 ⾏. . 正在导出表MODULE导出了 37 ⾏. . 正在导出表 READ_ACCESSORIES导出了 2 ⾏. . 正在导出表 REGIONINFO导出了 19 ⾏. . 正在导出表 REPORT_EVENT导出了 8 ⾏. . 正在导出表 ROLE导出了 5 ⾏. . 正在导出表 ROLEAUTH导出了 606 ⾏. . 正在导出表STAFFLOG导出了 512 ⾏. . 正在导出表 STAFFROLE导出了 56 ⾏. . 正在导出表 STAFFS导出了 7 ⾏. . 正在导出表TASKINFO导出了 51 ⾏. . 正在导出表 TASK_FILIALE导出了 2 ⾏. . 正在导出表 TASK_FILIALE_FEEDBACK导出了 2 ⾏. . 正在导出表 TASK_SWARAJ_READ导出了 49 ⾏. . 正在导出表 TESTDATA导出了 407 ⾏. . 正在导出表 THIRDFACTURER导出了 3 ⾏. . 正在导出表 USESSION导出了 1 ⾏. 正在导出同义词. 正在导出视图. 正在导出存储过程. 正在导出运算符. 正在导出引⽤完整性约束条件. 正在导出触发器. 正在导出索引类型. 正在导出位图, 功能性索引和可扩展索引. 正在导出后期表活动. 正在导出实体化视图. 正在导出快照⽇志. 正在导出作业队列. 正在导出刷新组和⼦组. 正在导出维. 正在导出 post-schema 过程对象和操作. 正在导出统计信息成功终⽌导出, 没有出现警告。

(仅供参考)ORACLE习题答案 SQL PLUS常用命令与用户管理 实验一

(仅供参考)ORACLE习题答案 SQL PLUS常用命令与用户管理 实验一

实验一SQL Plus常用命令与用户管理一、实验目的1.熟悉SQL Plus常用命令。

2.PL/SQL的应用。

3.掌握用户管理与表管理的相关操作。

二、实验要求1.整理上机步骤,总结经验和体会。

2.完成实验日志和上交程序。

三、作业提交1.建立以自己名字命名的文件夹,文件夹中包含两个文件夹,名字各为:实验成果,实验流程。

2.实验成果文件夹中保存实验过程中的解决方案、项目等文件。

3.实验流程中存放撰写实验流程的word文档。

四、实验内容1、启动SQL Plus以system登陆,创建用户xiaoming,密码为m123;2、应用conn命令将当前SQL Plus窗口中的用户改为scott登陆(如果提示账户锁定,如何解锁?);3、为xiaoming赋予能够连接数据库和查询表emp的权限,并让xiaoming具有能够为其他用户赋予该类权限的权限;4、在Oracle Enterprise Manager中创建用户xiaohong,密码为m123;5、以xiaoming用户登陆PL/SQL,新建命令窗口,为xiaohong赋予能够连接数据库和查询表emp的权限。

6、以xiaohong用户登陆PL/SQL,新建SQL命令窗口,查询显示emp表中的ename 和sal两列信息;7、在emp表中将工资比平均工资多的员工姓名(emp)和工资(sal)查出;8、将题目7中的SQL程序写到一脚本文件中,运行该脚本文件;9、在xiaohong用户下创建表stu(name nvarchar2(10),age integer)。

提示:SQL>connect system/orclSQL>grant connect to xiaohong;SQL>grant create table to xiaohong;SQL>alter user daqing quota unlimited on users;SQL>connect xiaohong/m123SQL>create table stue(name nvarchar2(10),age integer);。

Oracle习题答案(课后题)

Oracle习题答案(课后题)

/articles/330494.html 第一章略第二章5、已知一个关系数据库的模式如下:S (SNO,SNAME,SCITY)P (PNO,PNAME,COLOR,WEIGHT)J (JNO,JNAME,JCITY)SPJ (SNO,PNO,JNO,QTY)供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR 、重量WEIGHT 组成;工程项目J 由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY 组成。

用关系代数表达式表示下面的查询要求:(1)求供应工程J1 零件的供应商代码SNO(2)求供应工程J1 零件P1 的供应上代码SNO(3)求供应工程J1 零件为红色的供应商代码SNO(4)求没有使用天津供应商生产的红色零件的工程项目代码JNO(5)求至少用了供应商S1 所供应的全部零件的工程项目代码JNO(4)JNO (J )— JNO (「CITY-天津'(S) SPJ 「COLOR-红色'(P))(5) PNO,JNO (SPJ) 71PNO e SN0='S1' (SPJ))第三章 22 .建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:学号、姓名、出生年月、系名、班号、宿舍区。

班级:班号、专业名、系名、人数、入校年份。

系:系名、系号、系办公地点、人数。

学会:学会名、成立年份、办公地点、人数。

语义如下:一个系有若干专业,每个专业每年只招一个班, 每个班有若干学生。

一个系的学生住在同一宿舍区。

每个学生可 参加若干学会,每个学会有若干学生。

学生参加某学会有一个入 会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集, 指 出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨答: (1)SNOI JI⑵SNO (3) n (\ SNO\JNO'JI' (SPJ))JNO'JI' PNO'PI' (SPJ)) JNO (JT COLORS 红色’(P SPJ)) 71 CJ论函数依赖是完全函数依赖,还是部分函数依赖。

oracle实验内容2(共40题)

oracle实验内容2(共40题)

Part 11.Write a query to display the current date. Label the column Date.select to_char(sysdate,'year-mon-day')“D ate”from dual2. The HR department needs a report to display the employee number, last name, salary, and salary increased by 15.5% (expressed as a whole number) for each employee. Label the column New Salary. Place your SQL statement in a text file named lab_03_02.sql.select employee_id,last_name,salary,salary*1.155 new_salaryfrom employees3. Run your query in the file lab_03_02.sql.4. Modify your query lab_03_02.sql to add a column that subtracts the old salary fromthe new salary. Label the column Increase. Save the contents of the file as lab_03_04.sql. Run the revised query.select employee_id,last_name,salary,salary*1.155new_salary,salary*0.155 increasefrom employees……5.Write a query that displays the last name (with the first letter uppercase and all other letterslowercase) and the length of the last name for all employees whose name starts with the letters J, A, or M. Give each column an appropriate label. Sort the results by the employees’ last names.select last_name,length(last_name) lengthfrom employeeswhere last_name like'A%'or last_name like'J%'or last_name like'M%' order by last_nameRewrite the query so that the user is prompted to enter a letter that starts the last name. For example, if the user enters H when prompted for a letter, then the output should show all employees whose last name starts with the letter H.6. The HR department wants to find the length of employment for each employee. For each employee, display the last name and calculate the number of months between today and the date on which the employee was hired. Label the column MONTHS_WORKED. Order your results by the number of months employed. Round the number of months up to the closest whole number.Note: Your results will differ.select last_name,round(months_between(sysdate,hire_date))"MONTHS_WORKED"from employeesorder by hire_date desc7. Create a report that produces the following for each employee:<employee last name> earns <salary> monthly but wants <3 times salary>. Label the column Dream Salaries.select last_name||' earns'||to_char(salary,'$999,999.99')||' monthly but wants'||to_char(3*salary,'$999,999.99')from employees8.Create a query to display the last name and salary for all employees. Format the salary to be15 characters long, left-padded with the $ symbol. Label the column SALARY.select last_name,lpad(salary,15,'$')"SALARY"from employees9.Display ea ch employee’s last name, hire date, and salary review date, which is the firstMonday after six months of service. Label the column REVIEW. Format the dates to appear in the format similar to “Monday, the Thirty-First of July, 2000.”Select last_name,to_char(hire_date,'dd-mm-yy')"hire_date",to_char(next_day(add_months(hire_date,’星期一'),'day,"the" ddspth "of" month,yyyy') "REVIEW"from employees10.Display the last name, hire date, and day of the week on which the employee started. Labelthe column DAY. Order the results by the day of the week, starting with Monday.select last_name,hire_date,to_char(hire_date,'day')"DAY"from employeesorder by to_char(hire_date-1,'d')11.Create a query that displays the employees’ last names and commission amounts. If anemployee does not earn commission, show “No Commission.” Label the column COMM. Select last_name,nvl(to_char(commission_pct),' No Commission')"COMM"From employees12.Create a query that displays the first eight characters of the employees’ last names andindicates the amounts of their salaries with asterisks. Each asterisk signifies a thousand dollars. Sort the data in descending order of salary. Label the column EMPLOYEES_AND_THEIR_SALARIES.Select rpad(substr(last_name,1,8),8)|| lpad(' ',salary/1000,'*')from employeesorder by salary desc13. Using the DECODE function, write a query that displays the grade of all employees based on the value of the column JOB_ID, using the following data:Job GradeAD_PRES AST_MAN BIT_PROG CSA_REP DST_CLERK ENone of the above 0select job_id,decode(job_id,'AD_PRES','A','ST_MAN','B','IT_PROG','C','SA_REP','D','ST_CLERK','E',0)"GRA"from employees14. Rewrite the statement in the preceding exercise using the CASE syntax.select job_id,case job_id when'AD_PRES'then'A'when'ST_MAN'then'B'when'IT_PROG'then'C'when'SA_REP'then'D'when'ST_CLERK'then'E'else'0'end"GRA"from employees15.Group functions work across many rows to produce one result per group.True/False T16.Group functions includee nulls in calculations.True/False F17.The WHERE clause restricts rows before inclusion in a group calculation.True/False TThe HR department needs the following reports:18.Find the highest, lowest, sum, and average salary of all employees. Label the columns Maximum, Minimum, Sum, and Average, respectively. Round your results to the nearest whole number. Place your SQL statement in a text file named lab_04_04.sql.select max(salary)"maximum",min(salary)"minimum",sum(salary) "Sum", round(avg(salary))"Average"from employees19,Modify the query in lab_04_04.sql to display the minimum, maximum, sum, and average salary for each job type. Resave lab_04_04.sql as lab_04_05.sql. Run the statement in lab_04_05.sql.select job_id,max(salary)"maximum",min(salary)"minimum",sum(salary)"Sum", round(avg(salary))"Average"from employeesgroup by job_id20.Write a query to display the number of people with the same job.select job_id,count(*)from employeesgroup by job_id21. Determine the number of managers without listing them. Label the column Number of Managers. Hint: Use the MANAGER_ID column to determine the number of managers.select count(distinct manager_id) "Number of Managers"from employees22.Find the difference between the highest and lowest salaries. Label the column DIFFERENCE. select max(salary)-min(salary)"Difference"from employees23.Create a report to display the manager number and the salary of the lowest-paid employeefor that manager. Exclude anyone whose manager is not known. Exclude any groups where the minimum salary is $6,000 or less. Sort the output in descending order of salary.select manager_id,min(salary)from employeeswhere manager_id is not nullgroup by manager_idhaving min(salary)>600024.Create a query to display the total number of employees and, of that total, the number of employees hired in 1995, 1996, 1997, and 1998. Create appropriate column headings.select count(*) total,sum(decode(to_char(hire_date,'yyyy'),'1995',1,0))"1995",sum(decode(to_char(hire_date,'yyyy'),'1996',1,0))"1996",sum(decode(to_char(hire_date,'yyyy'),'1997',1,0))"1997",sum(decode(to_char(hire_date,'yyyy'),'1998',1,0))"1998"from employees25. Create a matrix query to display the job, the salary for that job based on department number, and the total salary for that job, for departments 20, 50, 80, and 90, giving each column an appropriate heading.select job_id "JOB",sum(decode(department_id,20,salary,0))"Dept 20",sum(decode(department_id,50,salary,0))"Dept 50",sum(decode(department_id,80,salary,0))"Dept 80",sum(decode(department_id,90,salary,0))"Dept 90",sum(salary)"Total" from employeesgroup by job_id26.Write a query for the HR department to produce the addresses of all the departments. Use the LOCATIONS and COUNTRIES tables. Show the location ID, street address, city, state or province, and country in the output. Use a NATURAL JOIN to produce the results.select LOCATION_ID,STREET_ADDRESS,CITY,STATE_PROVINCE,COUNTRY_NAMEfrom LOCATIONS natural join COUNTRIES27.The HR department needs a report of all employees. Write a query to display the last name, department number, and department name for all employees.select last_name,department_id,department_namefrom employees natural join departments28.The HR department needs a report of employees in Toronto. Display the last name, job, department number, and department name for all employees who work in Toronto.select last_name,job_id,department_id,department_name,cityfrom employees join departments using(department_id)join locations using(location_id)where city='Toronto'29.Create a report to display employees’ last name and employee number along with theirmanager’s last name and manager number. Label the columns Em ployee, Emp#, Manager,and Mgr#, respectively. Place your SQL statement in a text file named lab_05_04.sql. Select st_name,e1.employee_id,st_name,e1.manager_idFrom employees e1 join employees e2 on e1.manager_id=e2.employee_id30.Modify lab_05_04.sql to display all employees including King, who has no manager. Orderthe results by the employee number. Place your SQL statement in a text file named lab_05_05.sql. Run the query in lab_05_05.sql.Select st_name,e1.employee_id,st_name,e1.manager_idFrom employees e1 left join employees e2 on e1.manager_id=e2.employee_idOrder by e1.employee_id31.Create a report for the HR department that displays employee last names, departmentnumbers, and all the employees who work in the same department as a given employee.Give each column an appropriate label. Save the script to a file named lab_05_06.sqlselect e1.department_id,st_name EMPLOYEE,st_name COLLEAGUE from employees e1 join employees e2 on e1.DEPARTMENT_ID =e2.DEPARTMENT_ID and ST_NAME<>ST_NAMEorder by e1.department_id32.The HR department needs a report on job grades and salaries. To familiarize yourself withthe JOB_GRADES table, first show the structure of the table. Then create a query that displays the name, job, department name, salary, and grade for all employees.select last_name,job_id,department_name,salary,GRADE_LEVELfrom employees join departments using(department_id)join JOB_GRADES on salary>LOWEST_SAL and salary<HIGHEST_SAL33.The HR department wants to determine the names of all employees who were hired afterDavies. Create a query to display the name and hire date of any employee hired after employee Davies.select last_name,hire_datefrom employeeswhere hire_date>(select hire_date from employees where last_name ='Davies')34.The HR department needs to find the names and hire dates for all employees who werehired before their managers, along with their managers’ names and hire dates. Save the script to a file named lab5_09.sql.select ST_NAME,e1.HIRE_DATE,st_name,e2.hire_datefrom employees e1 join employees e2 on e1.MANAGER_ID = e2.employee_idwhere e1.hire_date<e2.hire_date35.The HR department needs a query that prompts the user for an employee last name. Thequery then displays the last name and hire date of any employee in the same department as the employee whose name they supply (excluding that employee). For example, if the user enters Zlotkey, find all employees who work with Zlotkey (excluding Zlotkey).select last_name,hire_datefrom employeeswhere department_id =(select department_idfrom employeeswhere last_name='&name')and last_name!='&name'36 .Create a report that displays the employee number, last name, and salary of all employees who earn more than the average salary. Sort the results in order of ascending salary.select department_id,last_name,salaryfrom employeeswhere salary>(select avg(salary)from employees)order by salary37.Write a query that displays the employee number and last name of all employees who work in a department with any employee whose last name contains a u. Place your SQL statement in a text file named lab_06_03.sql. Run your query.select employee_id,last_namefrom employeeswhere department_id in(select department_idfrom employeeswhere last_name like'%u%')38.The HR department needs a report that displays the last name, department number, and job ID of all employees whose department location ID is 1700.select last_name,department_id,job_idfrom employees join departments using(department_id)join locations using(LOCATION_ID )where LOCATION_ID =1700order by department_idModify the query so that the user is prompted for a location ID. Save this to a file named lab_06_04.sql.39.Create a report for HR that displays the last name and salary of every employee who reportsto King.select last_name,salaryfrom employeeswhere manager_id =(select employee_idfrom employeeswhere last_name ='King')40. Create a report for HR that displays the department number, last name, and job ID for every employee in the Executive department.select department_id,last_name,job_idfrom employees join departments using(department_id)where department_name='Executive'If you have time, complete the following exercise:40.Modify the query in lab_06_03.sql to display the employee number, last name, and salary ofall employees who earn more than the average salary and who work in a department withany employee whose last name contains a u. Resave lab_06_03.sql as lab_06_07.sql. Run the statement in lab_06_07.sql.select employee_id,last_name,salaryfrom employeeswhere department_id in(select department_idfrom employeeswhere last_name like'%u%')and salary >(select avg(salary)from employees)。

oracle实验以及答案

oracle实验以及答案

实验1SQL*Plus的使用和基本SELECT语句实验目的通过该实验使学员掌握简单查询语句的基本使用方法以及别名的指定方法,能够创建和执行SQL脚本。

实验要求(1)掌握SQL*Plus的基本使用(2)掌握SELECT语句的简单用法。

实验步骤(1)登录到SQL*Plus,初始用户名为:SCOTT,口令为TIGER。

答:打开sql plus,输入用户名和密码登陆;也可以从dos窗口输入命令sqlplus Scott/tiger 连接数据库(2)分别显示EMP、DETP、SALGRADE表结构,并察看表中的数据。

答:DESC emp;DESC dept;DESC salgrade;(3)创建一个查询显示每个雇员的姓名、工作、受雇日期及雇员编号,并且要将雇员编号作为第一列显示。

最后将该SQL语句保存成文件p1q1.sql,并执行该脚本文件。

答:SELECT empno,ename,job,hiredate FROM emp;(4)将脚本文件p1q1.sql调取到SQL缓冲区,并将列标题设置为Emp #,Employee,Job及Hire Date,将该SQL语句保存成文件p1q2.sql,最后返回查询结果。

答:SELECT empno "Emp #",ename "Employee",job "Job",hiredate "Hire Date" FROMemp;思考练习题1.SQL*Plus命令是用于访问数据库的吗?答:可以访问数据库。

2.下面的SELECT语句能成功执行吗?SQL>SELECT ename,job,sal Salary2FROM emp;答:可以成功执行。

3.下面的语句有3处错误,请纠正它们。

SQL>SELECT empno,ename2Salary x 12 ANNUAL SALARY3FROM emp;答:A.表中没有Salary项,改为sal;B.ename后缺少逗号。

Oracle 数据库上机试验指导1(答案)

Oracle 数据库上机试验指导1(答案)

Oracle 数据库上机试验指导实验一试验1 DDL & DML试验目的:熟悉Oracle下数据库基表的创建&修改&删除熟悉Oracle下数对数据的插入&修改&删除试验步骤:运行给定脚本(该脚步是创建一个用户,并赋予该用户一定的权限!)启动Oracle数据库Dos控制台下运行sqlplus /nolog命令Conn stud/stud as sysdba;---stud是一个不存在账户,主要用sysdba来登录,可以show user 来查看一下当前用户@ c:\createUser.sql; --该文件在实验材料文件夹里,请将其考入到C:\根目录下conn csj/csj ---------------完成用户CSJ的创建二在CSJ用户模式下完成以下工作(自己写sql脚本,然后调试运行)创建一张学生表创建一张课程表创建一张选课表分别向学生表,课程表,选课表插入下面数据思考以下问题:如何得到所有男生/女生人数?如何得到某一门课程(如数学)的选课人员清单?如何得到某一门课程(如数学)的选课人员总数?如何得到某一门课程(如数学)的选课人员的平均成绩?三. 上交脚本,并且以”姓名学号.sql”上交脚本(当场上交,逾期不收).选课表(courSelc)参考脚本:-- 创建学生表create table student(studid char(6) primary key,studname varchar2(16) not null,gender char(4) check(gender in('男','女')),addr varchar2(256));-- 创建课程表create table course(courseid char(6) primary key,coursename varchar2(32) not null unique,teacher varchar2(16) ,score number check(score in (1,3,5)));-- 创建选课表create table courSelc(recid number(4) primary key,studid char(6),courseid char(6),score number(2) check(score >=0 and score <=100),constraint fk_stud foreign key(studid) references student(studid), constraint fk_cour foreign key(courseid) references course(courseid) );-- 插入数据insert into student values('100001','李白','男','和平区');insert into student values('100002','杜甫','男','河西区');insert into student values('100003','李清照','女','河北区');insert into student values('100004','蔡琰','女','红桥区');insert into course values('M1001','数学','奥巴马','3');insert into course values('J2002','军事理论','拿破仑','5');insert into course values('S3003','摔跤','普京','1');insert into courSelc values(1,'100001','M1001',70);insert into courSelc values(2,'100001','J2002',60);insert into courSelc values(3,'100001','S3003',80);insert into courSelc values(4,'100002','M1001',75);insert into courSelc values(5,'100002','J2002',85);insert into courSelc values(6,'100002','S3003',95);insert into courSelc values(7,'100003','M1001',50);insert into courSelc values(8,'100003','J2002',55);insert into courSelc values(9,'100003','S3003',45);insert into courSelc values(10,'100004','M1001',10);insert into courSelc values(11,'100004','J2002',15);insert into courSelc values(12,'100004','S3003',25);select count(*) from student where gender='男';select count(*) from student where gender='女';select s.studid,s.studname,c.coursename,cs.score from student s,course c,courSelc cs where s.studid=cs.studid and c.courseid=cs.courseid and c.coursename='数学'; select count(*) from courSelc cs join course c on c.courseid=cs.courseidwhere c.coursename='数学';select avg(cs.score) from courSelc cs join course c on c.courseid=cs.courseid where c.coursename='数学';。

Oracle在线自测_答案

Oracle在线自测_答案

Oracle应用_第1题. 由于软硬件问题导致的读写数据库文件失败,属于()故障A. A 实例B. B 语句C. C 用户进程D. D 介质你选择的答案为:正确答案为:D第2题. 游标有哪几种类型A. 静态游标、动态游标B. 隐式游标、显示游标C. 变量游标、常量游标D. 参数游标、ref 游标你选择的答案为:正确答案为:B第3题. 在Oracle中,下列()语句不能用于控制游标。

A. A. OpenB. B. CreateC. C. FetchD. D. Close你选择的答案为:正确答案为:B第4题. 哪中类型的约束只能定义在列级A. CHECKB. UNIQUEC. NOT NULLD. PRIMART KEY你选择的答案为:正确答案为:C第5题. 用SQLPLUS的_____命令可以查看表的结构信息,包括列的名称和数据类型A. DESCRIPTIONB. DESCC. SHOW TABLED. SHOW USER你选择的答案为:正确答案为:B第6题. 在Oracle中有表"cd",它包含属性"cdcode","category"和"cdname",要查询category 取值为"CLASSIC"或"ROCK"的行,应采用语句()。

A. A. SELECT * FROM cd WHERE category IN ('CLASEIC','ROCK');B. B. SELECT * FROM cd WHERE category BETWEEN 'CLASSIC' AND 'ROCK';C. C. SELECT * FROM cd WHERE category='CLASSIC' AND category='ROCK';D. D. SELECT * FROM cd WHERE category='CLASSIC' OR category='ROCK';你选择的答案为:正确答案为:undefined第7题. 在Oracle中,语句()将ORDER_DA TE日期值'2000年3月18日'显示为‘2000年1月1日’。

oracle课后习题答案

oracle课后习题答案

oracle课后习题答案Oracle课后习题答案在学习Oracle数据库时,完成课后习题是巩固知识的重要方式。

本文将为大家提供一些常见Oracle课后习题的答案,帮助读者更好地理解和应用数据库知识。

一、基本概念题1. 什么是数据库?答:数据库是一个组织和存储数据的系统。

它是一个结构化的集合,用于存储、管理和操纵数据,并提供对数据的安全性和完整性的保证。

2. 什么是表?答:表是数据库中的一个基本组成部分,用于存储数据。

它由行和列组成,行表示记录,列表示记录中的字段。

3. 什么是SQL?答:SQL(Structured Query Language)是一种用于访问和管理关系型数据库的语言。

它可以用于查询、插入、更新和删除数据,以及创建和管理数据库对象。

二、SQL查询题1. 查询员工表中所有员工的姓名和工资。

答:SELECT 姓名, 工资 FROM 员工表;2. 查询订单表中订单金额大于1000的订单号和金额。

答:SELECT 订单号, 订单金额 FROM 订单表 WHERE 订单金额 > 1000;3. 查询客户表中所有客户的姓名和地址,按照地址降序排列。

答:SELECT 姓名, 地址 FROM 客户表 ORDER BY 地址 DESC;三、SQL插入题1. 向员工表中插入一条记录,姓名为"张三",工资为5000。

答:INSERT INTO 员工表 (姓名, 工资) VALUES ('张三', 5000);2. 向订单表中插入一条记录,订单号为"2021001",金额为2000。

答:INSERT INTO 订单表 (订单号, 订单金额) VALUES ('2021001', 2000);四、SQL更新题1. 将员工表中工资低于3000的员工工资增加1000。

答:UPDATE 员工表 SET 工资 = 工资 + 1000 WHERE 工资 < 3000;2. 将客户表中地址为"北京市"的客户地址改为"上海市"。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1SQL*Plus的使用和基本SELECT语句实验目的通过该实验使学员掌握简单查询语句的基本使用方法以及别名的指定方法,能够创建和执行SQL脚本。

实验要求(1)掌握SQL*Plus的基本使用(2)掌握SELECT语句的简单用法。

实验步骤(1)登录到SQL*Plus,初始用户名为:SCOTT,口令为TIGER。

答:打开sql plus,输入用户名和密码登陆;也可以从dos窗口输入命令sqlplus Scott/tiger 连接数据库(2)分别显示EMP、DETP、SALGRADE表结构,并察看表中的数据。

答:DESC emp;DESC dept;DESC salgrade;(3)创建一个查询显示每个雇员的姓名、工作、受雇日期及雇员编号,并且要将雇员编号作为第一列显示。

最后将该SQL语句保存成文件p1q1.sql,并执行该脚本文件。

答:SELECT empno,ename,job,hiredate FROM emp;(4)将脚本文件p1q1.sql调取到SQL缓冲区,并将列标题设置为Emp #,Employee,Job及Hire Date,将该SQL语句保存成文件p1q2.sql,最后返回查询结果。

答:SELECT empno "Emp #",ename "Employee",job "Job",hiredate "Hire Date" FROMemp;思考练习题1.SQL*Plus命令是用于访问数据库的吗?答:可以访问数据库。

2.下面的SELECT语句能成功执行吗?SQL>SELECT ename,job,sal Salary2FROM emp;答:可以成功执行。

3.下面的语句有3处错误,请纠正它们。

SQL>SELECT empno,ename2Salary x 12 ANNUAL SALARY3FROM emp;答:A.表中没有Salary项,改为sal;B.ename后缺少逗号。

C.别名中含有大写字母和空格,需加双引号,改为“ANNUAL SALARY”4.创建一个查询从EMP表中检索出不重复的工作名称。

答:SELECT DISTINCT job FROM emp;5.用一个逗号和一个空格将姓名和工作连接后作为一个整体输出,显示的列标题为Employee and Title。

答:SELECT ename||', '||job "Employee and Title" From emp;6.创建一个查询,用逗号将表中所有字段的信息连接作为一个整体输出,输出的列标题为THE_OUTPUT。

答:SELECT empno||ename||job||mgr||hiredate||sal||comm||deptno "THE_OUTPUT" FROM emp; 实验2使用WHERE和ORDER BY子句实验要求(1)掌握WHERE子句的用法。

(2)掌握ORDER BY子句的用法。

实验条件自我实践实验时间大约60分钟1.练习1FOLLOW ME●时间20分钟●实验步骤(1)观看第2章教学视频。

(2)实践视频中的实例。

2.练习2●时间40分钟●实验步骤(1)创建一个查询显示工资大于2850美元的雇员的姓名及工资。

将该查询保存成脚本文件p2q1.sql,并执行该文件。

答:SELECT ename,sal FROM emp WHERE sal>2850;(2)修改脚本文件p2q1.sql,显示工资不在1500到2850美元之间的雇员的姓名及工资,并以q2q2.sql文件重新保存该查询。

答:SELECT ename,sal FROM emp WHERE sal NOT BETWEEN 1500 AND 2850;(3)修改文件p2q2.sql,显示在10和30部门工作并且工资大于1500美元的雇员的姓名和工资,列标题显示为Employee和Monthly Salary,最后以p2p3.sql重新保存该文件,返回查询结果。

答:SELECT ename,sal FROM emp WHERE sal>1500 AND deptno IN(10,30);(4)修改脚本文件p2q3.sql显示奖金比工资多10%以上的雇员的姓名、工资及奖金。

将该查询保存成p2q4.sql脚本文件,并返回查询结果。

答:SELECT ename,sal,comm FROM emp WHERE sal*1.1<comm;思考练习题1.创建一个查询显示雇员编号为7566的雇员的姓名和部门编号。

答:SELECT ename,deptno FROM emp WHERE empno=7566;2.显示受雇时间在February 20,1981和May 1,1981之间的雇员的姓名、工资、及受雇时间,并以受雇时间升序排列。

答:SELECT ename,sal,hiredate FROM emp WHERE hiredate BETWEEN '20-2月-1981' AND '1-3月-1981' ORDER BY hiredate DESC;3.显示在10号和30号部门工作的雇员的姓名及其部门编号,并以字母顺序排列。

答:SELECT ename,deptno FROM emp WHERE deptno IN (10,30) ORDER BY ename; 4.显示所有受雇于1982年的雇员的姓名和受雇时间。

答:SELECT ename,hiredate FROM emp WHERE TO_CHAR(hiredate,'YYYY')=1982; 5.显示没有上级管理员的雇员的姓名及其工作。

答:SELECT ename,job FROM emp WHERE mgr IS NULL;6.显示能挣得奖金的雇员的姓名、工资、奖金,并以工资和奖金降序排列。

答:SELECT ename,sal,comm FROM emp WHERE comm>0 ORDER BY sal DESC, comm DESC;7.显示姓名中第三个字母为A的雇员的姓名。

答:SELECT ename FROM emp WHERE ename LIKE '__A%';8.显示姓名中两次出现字母L并且在30部门工作或者其管理员编号是7782的雇员的姓名。

答:SELECT ename FROM emp WHERE ename LIKE '%L%L%' AND (deptno=30 ORmgr=7782);9.显示工作为Clerk或Analyst并且工资不等于$1000、$3000、$5000的雇员的姓名、工资及工资。

答:SELECT ename,job,sal FROM emp WHERE LOWER(job) IN ('clerk','analyst') ANDsal NOT IN (1000,3000,5000);实验3在SELECT语句中使用单行函数实验要求掌握常用的单行函数的用法。

实验条件自我实践实验时间大约60分钟1.练习1FOLLOW ME●时间20分钟●实验步骤(1)观看第3章教学视频。

(2)实践视频中的实例。

2.练习2●时间40分钟●实验步骤(1)显示雇员的编号、姓名、工资以及工资增长15%后的整数值(以New Salary作为列标题),将该查询保存为脚本文件p3q1.sql,并执行该脚本文件。

答:SELECT empno,ename,sal,sal*1.15 "New Salary" FROM emp;(2)修改p3q1.sql,增加一个列Increase显示new salary和salary的差值,另存为p3q2.sql,并返回查询结果。

答:SELECT empno,ename,sal,sal*1.15 "New Salary",sal*0.15 "Increase" FROM emp; (3)创建一个脚本文件p3q3.sql,显示雇员姓名并以*为指示符代表工资数额(列标题为EMPLOYEE_AND_THEIR_SALARIES),一个指示符代表一百美元,并以工资数额降序排列。

答:SELECT ename||RPAD('*',TRUNC(sal/100),'*')AS "EMPLOYEE_AND_THEIR_SALARIES" FROM emp;思考练习题1.编写一个显示当期日期的查询,列标题为Date。

答:SELECT sysdate "Date" FROM dual;2.显示雇员姓名、受雇日期及工资复审日期(复审日期为受雇后6个月后的第一个星期一),复审日期以列标题REVIEW显示,并且显示的日期形式为“Sunday,the Seventh of September,1981.”。

答:SELECT ename,hiredate,TO_CHAR(NEXT_DAY(ADD_MONTHS(hiredate,6),'星期一') ,'DAY","DDSPTH" of "MONTH","YYYY','nls_date_language=american')AS "REVIEW" FROM emp;3.显示每个雇员的姓名并计算出从受雇日期起到目前一共工作了多少个月,以列标题MONTHS_WORKED显示月数(四舍五入),输出以月数升序排列。

答:SELECT ename,ROUND(MONTHS_BETWEEN(sysdate,hiredate) )"MONTHS_WORKED" FROM emp ORDER BY "MONTHS_WORKED";4.编写一个以下面的形式输出的查询:<employee name> earns <salary> monthly but wants <3 times salary>.列标题为Dream Salaries。

答:SELECT ename ||' earns '||sal||' monthly but wants '||sal*3 AS "Dream Salaries"FROM emp;5.创建一个查询显示每个雇员的姓名及工资(列标题为SALARY),工资的显示模式为:占15个字符的宽度,对于不够位数的以$填充。

相关文档
最新文档