SQL作业与答案.docx

上传人:b****7 文档编号:8808990 上传时间:2023-02-01 格式:DOCX 页数:11 大小:23.18KB
下载 相关 举报
SQL作业与答案.docx_第1页
第1页 / 共11页
SQL作业与答案.docx_第2页
第2页 / 共11页
SQL作业与答案.docx_第3页
第3页 / 共11页
SQL作业与答案.docx_第4页
第4页 / 共11页
SQL作业与答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

SQL作业与答案.docx

《SQL作业与答案.docx》由会员分享,可在线阅读,更多相关《SQL作业与答案.docx(11页珍藏版)》请在冰豆网上搜索。

SQL作业与答案.docx

SQL作业与答案

第一部分背景知识

1、请描述当代数据库技术的主流模型有哪些

关系、关系对象、XML以及现代基于key-value为特点基于列的非关系模型的海量数据处理等

2、数据库查询语言SQL的标准的体系组成及其发展状况

SQL标准其完整的框架包含了14个部分内容分别为part1-part14,但是随着版本的变化,其中有些部分进行了调整(合并或者取消)。

主要内容包括:

3、罗列当代最为关键的数据库服务器系统产品名称>=6

oracle、sqlserver、db2、sybase、postgreSQL、mysql

4、数据库中触发器对象有什么价值?

用户自定义完整性

帮助实现特定的事件记录或者业务处理的目的

主动数据库的基础技术之一

5、请说明现代数据库管理系统产品所基于的主流模型是什么,如sqlserver/oracle/db2

主要是以关系模型为基础上,增加了关系对象的支持,具体反映在对SQL99版本的支持

包括目前最新的Oracle11g/SQLServer2008和DB9都支持了关系-对象模型。

6、什么是嵌入式数据库?

有两重含义

1)可以直接内嵌到其他软件中的小型数据库,例如word软件中内嵌的spell

2)能在嵌入式类的小型计算机系统上运行的数据库产品,例如手机中的字典

7、什么是数据库的容灾技术

容灾主要分为哪几种级别,分别代表什么含义

无备份

定期备份,介质本地存储

介质异地存储

备份介质电子传送

8、为什么说数据库的事务日志的工作机理是什么

数据库的日志通常用于数据库的恢复使用,是事务不一致情况下主要的修复依据,工作机理是数据库日志通常记录数据修改的具体行为,必需要先于对应日志行为所涉及的数据缓冲区修改部分的数据写入数据文件的,简称WAL

第二部分oracle基本概念

1、oracle—RDBMS产品的公司?

2、oracle10g和11g中的g代表什么?

网格技术

3、在windows环境安装完成oracle数据库管理系统后,如何进入sqlplus,并且以dba的角色登陆

4、oracle服务器工作所需启动的基本服务有哪几个?

5、Oracle服务器的组成

1.Oracle实例(instance)

2.Oracle数据库(database)

6、Oracle实例由哪些部分组成,每一部分的组成。

7、Oracle数据库由哪几种文件组成。

8、如何使用命令启动数据库服务器,几种命令的不同。

9、如何使用命令关闭数据库服务器

10、查看当前使用的参数文件(二进制还是文本),参数文件的位置、名称。

pfile是文本,spfile是二进制文件

showparameterspfile命令,显示spfile的位置,如果显示的位置为空,则表示的是pfile.

altersystemsetremote_login_passwordfile=nonescope=spfilescope表示应用范围scope=memory修改只对内存有效,即对当前实例有效,且立即生效,但不会保存到spfile文件中,数据库重启后此配置丢失scope=spfile修改只对spfile有效,不影响当前实例,需要重启数据库后才能生效scope=both包含memory和spfile两种,修改后立即有效,并且永久有效。

11、如何由当前的二进制参数文件生成文本的参数文件。

(了解一下)

12、参数文件中参数的种类,如何修改这些不同的参数

13、系统管理员的验证方法有哪两种?

操作系统认证和口令文件认证

14、如何创建口令文件?

在未连接时

Orapwdfile=c:

\oracle\product\10.2.0\db_2\database\pwdorcl.orapassword=newzhengentries=4(14,15,16了解)

15、如何禁用操作系统认证,而使用口令文件验证。

将sqlnet.ora中的设置Sqlnet.authentication.services=nts表示使用操作系统认证

将sqlnet.authentication.services=none表示禁用操作系统认证

Showparameterremote_login_passwordfile;(exclusive)

16、如何禁用口令文件认证,而使用操作系统认证。

1.首先设定操作系统验证Sqlnet.authentication.services=nts

2.altersystemsetremote_login_passwordfile=nonescope=spfile;

设定该参数后,必须将实例关闭,然后启动,才会有效

17、熟悉sql*plus的命令,重点执行外部文件中的命令。

Setsqlblanklineson

Select*fromtestwhereaa=&m;

“/”表示执行缓冲区中的内容

L1列出第一行

Append追加在上一个命令的当前行追加

Change命令可以替换当前行的一部分,也可以全部替换c/aa=2/aa=3

?

Input简写为I该命令可以在当前行的后面插入一个新行

Delete简写delDelete用来删除一行,如果不加参数,删除当前行

Del3

Save命令

编辑好的sql命令,可以将命令存盘,以备以后使用或进一步编辑

Savec:

\aa.sql

Get命令

与save命令正好相反,将文件中的内容放到缓冲区中,以便执行或进一步编辑getc:

\aa.sql

Start命令(也可以用@)

Start命令为执行命令文件,可以是SAVE保存的文件,也可以是其他的编辑器编写的文件@c:

\aa.sql;

Editc:

\aa.sql

column(简写col)

给列一个标签ColnameHEADING姓名

Colnameformata10格式化,显示10个字符

指定数值类型的格式

colsalformat999.99

colbytesformat999,999,999

取消格式Colaaclear

设计报表

?

Setlinesize50

?

Ttitlecenter‘我的报表’skip1–

?

Left“测试报表”right“页”–

?

Format999sql.pnoskip2

?

查询语句

?

去掉标签:

ttitleoff

Sqlplus环境参数

?

环境参数的设置用set

例如:

屏幕的宽度默认为100,若改为1000,则

Setlinesize1000

?

默认情况下,屏幕不会暂停,若要设置为等待按下enter键才会继续显示下一页,执行如下语句

?

Setpauseon

?

当对环境进行设置后,在本次使用中一直保存该设置,但退出再进入,则环境设置又回到了默认值,则用简单的命令store来保存环境参数

?

Storesete:

\myset.sqlcreate

?

然后

?

@e:

\myset.sql

假脱机输出

?

所谓假脱机输出,就是将输出信息保存在一个文件中

Spoolc:

\ss.sqlspooloff关闭并输出文件spoolout关闭并打印输出文件

Help命令helplist

Describedesctest

18、Oracle逻辑空间的层次结构。

Oracle的逻辑结构是一种层次结构。

主要由:

表空间、段、区和数据块等概念组成

19、创建表空间,包括一个数据文件,文件大小指定,能够自动扩展,并且限制文件的最大大小,盘区使用本地管理,段的空间使用自动管理。

Createtablespacemywzu

datafile'd:

\wzu.dbf'size10m

autoextendonnext20mmaxsize30m

extentmanagementlocal

segmentspacemanagementauto;

20、查看当前的日志文件。

Selectgroup#,memberfromv$logfile;

21、向文件组1添加日志文件。

Alterdatabaseaddlogfilemember‘c:

\newlog.log’togroup1;

22、查看当前的控制文件。

Showparametercontrol_files;(selectnamefromv$controlfile;)

23、如何查看控制文件的内容。

Alterdatabasebackupcontrolfiletotrace;

Showparameteruser_dump_dest;

24、修改数据库的归档模式为归档模式。

查看Selectname,log_modefromv$database;

Archiveloglist;

改变数据库归档模式数据库在open状态下不能够进行归档模式的修改shutdownimmediate;startupmount;alterdatabasearchivelog;

Archiveloglist

25、创建客户端的数据库的连接串tnsnames,了解客户端的sqlnet.ora和服务器端的listener.ora,了解客户端和服务器端通讯的过程。

(sqlnet.ora文件和listener.ora文件要能够读懂)。

26、创建用户,默认的表空间为users,默认的临时表空间为temp,能够使用2m的users表空间的空间。

Createuserzhengidentifiedbyzhengdefaulttablespaceusers

Quota2monusers

Alteruserzhengtemporarytablespacetemp

27、创建配置文件newprofile,限制用户尝试登陆的失败次数为3.

Createprofilenewprofilelimitfailed_login_attempts3;

28、启动配置文件。

Altersystemsetresource_limit=true;

29、为用户指定配置(概要)文件。

Createusermyuseridentifiedbymypasswdprofilenewprofile;

Alterusermyuserprofilenewprofile;

30、以sys身份创建表test,创建角色r1,授予角色r1查看和修改test的权限

Createtabletest

(aaint,

bbint);

createroler1identifiedbymypass;

grantselectonsys.testtor1;

grantupdateonsys.testtor2;

31、创建用户testuser,授权该用户角色r1。

Createusertestuseridentifiedbytestpass;

Grantr1totestuser;

32、启动审计功能。

33、审计对sys模式下表test的插入数据的动作。

Auditinsertontestbyaccess

34、创建表,输入重复数据,如何实现只留一行,而将重复数据删除。

Createtablenew(aaint,bbint);

Insertintotestvalues(1,3)

Insertintotestvalues(1,3)

Insertintotestvalues(1,3)

Selectrowid,aa,bbfromtest

Deletefromtestwhererowid<>(selectmin(rowid)fromtest);Deletefromtestawhererowid<>(selectmax(rowid)fromnewbwherea.aa=b.aaanda.bb=b.bb)35、创建分区表

36、通过闪回恢复删除的数据。

Createuserkkidentifiedbykk

Defaulttablespaceusers

Quota2monusers;

Grantconnect,createtabletokk;

Connectkk/kk

Createtabletest(aaint.bbint);

Insertintotestvalues(1,23);

Droptabletest;

Flashbacktabletesttobeforedrop;

37、创建表,包含date和interval数据类型,输入输入。

Createtabletest(aadate,bbintervalyear(3)tomonth,ccintervalday

(2)tosecond);

Insertintotestvalues(to_date(‘6/3/2009’,’dd/mm/yyyy’),interval‘3’month,interval‘2’day);

使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

工资=薪金+佣金

简单查询

1.列出至少有一个员工的所有部门

select*fromdept

wheredeptnoin

(selectdeptnofromempgroupbydeptnohavingcount(*)>1);

2.列出薪金比“SMITH”多的所有员工。

select*fromemp

wheresal>(selectsalfromempwhereename='SMITH');

3.列出所有员工的姓名及其直接上级的姓名。

selectename,(selectenamefromempwhereempno=a.mgr)fromempa;

selectename,(selectenamefromempwhereempno=a.mgr)asmgrnamefromempa;

自连接

selecta.ename,b.enamefromempa,empb

wherea.mgr=b.empno(+);外连接

4.列出受雇日期晚于其直接上级的所有员工。

selectenamefromempa

wherehiredate>(selecthiredatefromempwhereempno=a.mgr);

列出受雇日期早于其直接上级的所有员工。

selectenamefromempawhere

hiredate<(selecthiredatefromempwhereempno=a.mgr);

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

selectdname,enamefromdeptleftouterjoinemp

ondept.deptno=emp.deptno;

selectdname,enamefromdepta,empb

wherea.deptno=b.deptno(+);

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

selectdname,enamefromdepta,empb

wherea.deptno=b.deptnoandjob='CLERK';

select(selectdnamefromdeptwheredeptno=a.deptno)asdname,ename

fromempa

wherejob='CLERK';

7.列出最低薪金大于1500的各种工作。

selectjob,min(sal)msalfromemp

groupbyjobhavingmin(sal)>1500;

8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

selectenamefromempwheredeptno=(selectdeptnofromdeptwheredname='SALES');

9.列出薪金高于公司平均薪金的所有员工。

selectenamefromempwheresal>(selectavg(sal)fromemp);

10.列出与“SCOTT”从事相同工作的所有员工。

select*fromempwherejob=(selectjobfromempwhereename='SCOTT');

11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

select*fromempwheresalin

(selectsalfromempwheredeptno=30);

select*fromempwheresal=any

(selectsalfromempwheredeptno=30);

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

--最大值>all

select*fromempwheresal>all

(selectsalfromempwheredeptno=30);

--最小值

selectdeptno,count(*),trunc(avg(sal+nvl(comm,0)))avgsal,to_char(to_date('0001-01-01','yyyy-mm-dd')+avg(sysdate-hiredate)-366-31,'yy"年"mm"月"dd')avgdayfromempgroupbydeptno;14.列出所有员工的姓名、部门名称和工资。

selectename,dname,sal+nvl(comm,0)fromemp,deptwhereemp.deptno=dept.deptno;15.列出从事同一种工作但属于不同部门的员工的一种组合。

selectemp.ename,emp.job,emp.deptnofromemp,(selectdistincta.job,a.deptnofromempa,empbwhere(a.job=b.job)and(a.deptno!

=b.deptno)orderbya.job)cwhereempno=(selectmax(empno)fromempwherejob=c.jobanddeptno=c.deptno)andemp.job=c.jobandemp.deptno=c.deptnoselectemp.ename,emp.job,emp.deptnofromemp,(selectdistincta.job,a.deptnofromempa,empbwhere(a.job=b.job)and(a.deptno!

=b.deptno)orderbya.job)cwhereempno=(selectmin(empno)fromempwherejob=c.jobanddeptno=c.deptno)andemp.job=c.jobandemp.deptno=c.deptnoselect*from(selectdistincta.*fromempa,empbwherea.deptno<>b.deptnoanda.job=b.job)cwhereempnoin(selectmin(empno)from(selectdistincta.*fromempa,empbwherea.deptno<>b.deptnoanda.job=b.job)groupbydeptno,job);16.列出所有部门的详细信息和部门人数。

selecta.*,(selectcount(*)fromempwheredeptno=a.deptno)totfromdepta;17.列出各种工作的最低工资。

selectjob,min(sal+nvl(comm,0))fromempgroupbyjob;这样写有问题selectjob,min(nvl(sal+comm,0))fromempgroupbyjob;18.列出MANAGER(经理)的最低薪金。

selectmin(sal)fromempwherejob='MANAGER';19.列出所有员工的年工资,按年薪从低到高排序。

selectename,(sal+nvl(comm,0))*12totfromemporderbytot;-----orcle的等连接SELECTd.*FROMEMPE,DEPTDWHEREE.DEPTNO=D.DEPTNO;-----orcla的外连接SELECTd.*FROMEMPE,DEPTDWHEREE.DEPTNO(+)=D.DEPTNO;+放在没有匹配行的表一侧,所以dept表的记录完全显示--标准等联结selectdept.*fromempjoindeptonemp.deptno=dept.deptno;--标准的右外联结selectdept.*fromemprightouterjoindeptonemp.deptno=dept.deptno;selectdept.*fromdeptleftouterjoinemponemp.deptno=dept.deptno;现代数据库技术复习和考试提要(chapter1)4、oracle数据库的物理结构包括哪些内容?

5、请描述oracle数据库的逻辑结构,它和oracle的物理结构有什么关系6、oracle的总体的内存包括哪几个部分?

7、Oracle实例(instance)的组成和含义8、Oracle的SGA有哪几个部分组成,分别说出其大致的作用9、Oracle实例的主要后台进程有哪些,说出其作用10、oracle的数据库的块11、查看数据库的各种层次的结构和数据库系统运行状态等信息的12、数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1