文档库 最新最全的文档下载
当前位置:文档库 › ORACLE基础练习(你必须要熟练的)

ORACLE基础练习(你必须要熟练的)

ORACLE基础练习(你必须要熟练的)
ORACLE基础练习(你必须要熟练的)

ORACLE基础练习

1.desc table_name 可以查询表的结构

2.怎么获取有哪些用户在使用数据库

select username from v$session;

3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址? select sys_context('userenv','ip_address') from dual;

如果是登陆本机数据库,只能返回127.0.0.1

4.如何给表、列加注释?

SQL>comment on table 表is '表注释';

注释已创建

SQL>comment on column 表.列is '列注释';

注释已创建。

查询该用户下的注释不为空的表

SQL> select * from user_tab_comments where comments is not null;

5.如何在ORACLE中取毫秒?

select systimestamp from dual;

6.如何在字符串里加回车?

添加一个||chr(10)

select 'Welcome to visit'||chr(10)||'https://www.wendangku.net/doc/3216587572.html,' from dual ;

7.怎样修改oracel数据库的默认日期?

alter session set nls_date_format='yyyymmddhh24miss';

8.怎么可以看到数据库有多少个tablespace?

select * from dba_tablespaces;

9.如何显示当前连接用户?

SHOW USER

10.如何测试SQL语句执行所用的时间?

SQL>set timing on ;

11.怎么把select出来的结果导到一个文本文件中?

SQL>SPOOL F:\ABCD.TXT;

SQL>select * from table;

SQL >spool off;

12.如何在sqlplus下改变字段大小?

alter table table_name modify (field_name varchar2(100));

改大行,改小不行(除非都是空的)

13.如果修改表名?

alter table old_table_name rename to new_table_name;

14.如何搜索出前N条记录?(desc降序)

SELECT * FROM Tablename WHERE ROWNUM < n

ORDER BY column;

15. 如何在给现有的日期加上2年?

select add_months(sysdate,24) from dual;

16.Connect string是指什么?

应该是tnsnames.ora中的服务名后面的内容

17.返回大于等于N的最小整数值?

SELECT CEIL(-10.102) FROM DUAL;

18.返回小于等于N的最大整数值?

SELECT FLOOR(2.3) FROM DUAL;

19.返回行的物理地址

SELECT ROWID, ename FROM tablename WHERE deptno = 20 ;

20.将N秒转换为时分秒格式?

set serverout on

declare

N number := 1000000;

ret varchar2(100);

begin

ret := trunc(n/3600) || '小时' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分"ss"秒"'); dbms_output.put_line(ret);

end;

21.如何监控当前数据库谁在运行什么SQL语句?

SELECT osuser, username, sql_text from v$session a, v$sqltext b

where a.sql_address =b.address order by address, piece;

22.如何知道当前用户的ID号?

SQL>SHOW USER;

OR

SQL>select user from dual;

23.如何知道使用CPU多的用户session?

11是cpu used by this session

select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value from v$session a,v$process b,v$sesstat c

where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;

24.Oracle建立表空间和用户

建立表空间和用户的步骤:

用户

建立:create user 用户名identified by "密码";

授权:grant create session to 用户名;

grant create table to 用户名;

grant create tablespace to 用户名;

grant create view to 用户名;

表空间

建立表空间(一般建N个存数据的表空间和一个索引空间):

create tablespace 表空间名

datafile ' 路径(要先建好路径)\***.dbf ' size *M

tempfile ' 路径\***.dbf ' size *M

autoextend on --自动增长

--还有一些定义大小的命令,看需要

default storage(

initial 100K,

next 100k,

);

用户权限

授予用户使用表空间的权限:

alter user 用户名quota unlimited on 表空间;

或alter user 用户名quota *M on 表空间;

create tablespace zq datafile 'D:\zq\zw.dbf' SIZE 1000M AUTOALLOCATE;

修改用户的默认表空间

alter user username default tablespace tablespacename;

25.在sqlplus 中清屏命令:clear src clear screen; cl scr;

怎样用语句查询表空间里面表的内容?

select table_name from all_tables where tablespace_name='zq';

select table_name from user_tables where tablespace_name='xx'

26.如何查询表在哪个表空间中?(单引号里面的要大写)

SELECT tablespace_name FROM USER_TABLES WHERE table_name = 'YOUR_TABLENAME'

查一下,这个表是哪个用户下的,如果是本用户则可以用上面的sql

如果是别的用户的表你就用

SELECT tablespace_name FROM DBA_TABLES WHERE table_name = 'YOUR_TABLENAME' and owner='表的OWNER'

还有你要确定你查的确实是一个表而不是view 或SYNONYM

而且在引号里面的表名和owner都要用大写字母

27.表的创建

create table aa

(a varchar2(10),

b number(8,2),

c date

) tablespace users;

如果在创建用户时没有指定默认表空间,系统默认表空间为System,在创建表时必须指定tablespace;

28.如何查询一个表空间下的所有表(单引号里面的要大写)

select table_name from user_tables where tablespace_name='表空间名';

29.更改计算机名后会出现Oracle ORA-12541:TNS:no listener错误解决方法

D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

修改为现在的计算机名,再次启动OracleOraHome90TNSListener服务成功

30.创建表时默认表空间是SYSAUX

31.oracle10g em Database Control的启动问题修复

打开http://localhost:1158/em/ 显示数据库状态没有启动,提示用户登录错误ORA-28000: the account is locked,使用PL/SQL或SQL*plus

连接是正常的。到网上搜索一番,没有找到确切的原因。其中一个可能的原因是用户DBSNMP的密码和sys用户的密码不一致,导致

OracleDBConsoleSID服务错误,网上很多朋友说使用emca(EM Configuration Assistant)工

具进行修复。

在命令行里键入下面两个命令就可以修复数据库的em

emca -repos recreate

emca -config dbcontrol db

另外,网上很多朋友给出“emca -r”这样的命令,我试了之后发现10g版本的命令格式已经有所变化,具体的命令格式可以通过命令

的帮助获得。在命令行中键入

emca help=y

可以查看详细的命令格式。

常用的命令语法:

emca -repos create创建一个EM资料库

emca -repos recreate重建一个EM资料库

emca -repos drop删除一个EM资料库

emca -config dbcontrol db配置数据库的Database Control

emca -deconfig dbcontrol db删除数据库的Database Control配置

emca -reconfig ports 重新配置db control的端口,默认端口在1158

emctl start console启动EM console服务,使用前需要先设置ORACLE_SID环境变量

emctl stop console停止EM console服务,使用前需要先设置ORACLE_SID环境变量

32.解决启动Oracle9i的OEM或OMS的常见问题(VTK-1000)

能否正常启动OEM或OMS关键有以下两点:

第一.Oracle的系统服务是否开启;

第二.登录时用的用户名和口令是否正确。

那么先针对第一点谈谈Oracle的系统服务。在完全安装的情况下,Oracle的系统服务共有11项:

1.Oracle OLAP 9.0.1.0.1

2.Oracle OLAP Agent

3.OracleOraHome90Agent

4.OracleOraHome90ClientCache

5.OracleOraHome90HTTPServer

6.OracleOraHome90ManagementServer(0.5M)

7.OracleOraHome90PagingServer

8.OracleOraHome90SNMPPeerEncapsulator

9.OracleOraHome90SNMPPeerMasterAgent

10.OracleOraHome90TNSListener(5.2M)

11.OracleServiceORACLE(70M)

(注:OraHome90是可以在安装时改变的Oracle的主目录名称,是安装时的默认值) 其中最重要的服务有3个,分别是OracleOraHome90ManagementServer、OracleOraHome90TNSListener与

OracleServiceORACLE。下面就来看一下有哪些启动错误与它们有关。

1.Oracle系统提示:Ora-12541:TNS:没有监听器;

2.操作系统提示:在本地计算机无法启动OMS服务

错误:1053:服务并未及时响应来控制请求附带;

以上两种错误提示大都是由OracleOraHome90TNSListener监听服务引起的。

解决方法:控制面版->管理工具->服务->右键单击“OracleOraHome90TNSListener”,再单击

“启动”。

3.Oracle系统提示:Ora-12500:TNS:监听程序无法启动专用服务器进程;

该错误是由OracleServiceORACLE专用服务器进程引起的。

解决方法:控制面版->管理工具->服务->右键单击“OracleServiceORACLE”,再单击“启动”。

4.Oracle系统提示:VTK-1000:无法连接到Management Server。

请验证您已输入Oracle Management Server的正确主机名和状态。

该错误引起的原因有两种,一是OracleOraHome90ManagementServer还没启动;二是没有输入主机名。

解决方法:控制面版->管理工具->服务->右键单击“OracleOraHome90ManagementServer”,再单击“启动”,

或是输入您这台计算机的完整名称。

接着针对第二点谈谈登录时用的用户名和口令。

在安装结束后,系统提供了两个默认的数据库系统管理员,其用户名和口令分别是SYS/change_on_install和SYSTEM/manager,同时系统还

提供了登录OMS的用户名和口令:sysman/oem_temp。这里容易出现错误的是在登录OMS 是用SYS或SYSTEM作为用户名进行登录,那么Oracle系统

就回有“登录身份证明不正确”的提示。

小结:这三个服务的启动或关闭还有先后的顺序。一般来讲,启动时必须先启动OracleOraHome90TNSListener再启动

OracleOraHome90ManagementServer或OracleServiceORACLE,在启动OracleOraHome90ManagementServer时,同时也启动了

OracleServiceORACLE。而关闭时必须先关闭OracleOraHome90ManagementServer再关闭OracleOraHome90TNSListener或OracleServiceORACLE,

关闭OracleOraHome90ManagementServer时,若有提示输入用户名和口令,请输入sysman 的用户名和口令,以确保成功的执行。有些其他提示如

:资源已被占用,I/O重复,端口已被使用等等之类的话,那最好与系统管理员联系,再寻求解决办法。

1) 查询数据库名:

SQL> select name from v$database;

(2) 查询数据库实例名:

SQL> select instance_name from v$instance;

(3) 查询数据库服务名:

SQL> select value from v$parameter where name='service_names'; // (小写)

(4) 查询全局数据库名(sys用户):

SQL> select value$ from props$ where name='GLOBAL_DB_NAME'; //字符串区分大小写

监视用户会话:

SQL> select username, sid, serial#, machine from v$session;

删除用户会话:

SQL> alter system kill session 'sid,serail#';

// 使用下面的方法可以重复执行上一条SQL语句(在SQL*Plus中)

SQL> l //小写字母L,显示上一条SQL语句

1* select username, sid, serial#, machine from v$session

SQL> / //正斜杠:重复执行上一条SQL语句

SQL> set linesize 1000 //将SQL*Plus中显示行宽设成1000个字符。

SQL> connect system/manager@orasjz // 在SQL*Plus中直接连接到另一台机器上的数据库,@字符后是另

一台机器的tnsname

4. 手工配置Oracle网络连接:主要是配置"tnsnames.ora"文件。

A. 手工配置Oracle网络连接配置文件:tnsnames.ora

B. 手工配置Oracle监听进程配置文件:listener.ora

UNIX下启动进程命令:

$ lsnrctl start // 启动监听进程

$ lsnrctl status // 显示监听进程状态

$ lsnrctl stop // 停止监听进程

启动进程的命令与UNIX相同。

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 1521))

//注意:上面一行的HOST必须是你的主机名,否则监听会出问题,也可以使用你的机器的IP地址

)

)

(DESCRIPTION =

(PROTOCOL_STACK =

(PRESENTATION = GIOP)

(SESSION = RAW)

)

(ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 2481))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = ..........)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ora54)

(ORACLE_HOME = ..........)

(SID_NAME = ora54) // 注意:ora54为数据库的SID名称,不能更改,否则监听出问题

)

)

5. 将主机字符串(Host String)写入注册表(简化SQL*Plus的登录)

regedit.exe -> HKLM -> Software -> Oracle -> home0

增加关键字: local(字符串),键值:主机字符串名。

/* 将下面的内容复制到一个.reg文件中,在Windows 2000中双击执行,即可实现增加或者修改local键值的

作用

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]

"local"="ora54"

*/

[SVRMGRL: Server Manager的使用方法]

D:\>svrmgrl

SVRMGR> connect internal //使用svrmgrl,进入后使用的第一个命令必须是这个命令。

口令: // 如果要求输入口令,请输入oracle

连接成功。

SVRMGR> select name from v$database; // 检查当前使用的数据库名

NAME

---------

ORA44

已选择1 行。

SVRMGR> shutdown immediate //关闭当前使用的数据库

已关闭数据库。

已卸下数据库。

已关闭ORACLE 实例。

SVRMGR> startup //启动当前使用的数据库,如果无效,请使用startup force

已启动ORACLE 实例。

系统全局区域合计有24433932个字节

Fixed Size 70924个字节

Variable Size 7507968个字节

Database Buffers 16777216个字节

Redo Buffers 77824个字节

ORA-00205: ?????????????????????

SVRMGR>

[另一个启动oracle数据库的例子]

d:\> sqlplus internal/oracle

SQL> startup force //强行重新启动数据库。

[修改口令字]

SQL> grant connect to system identified by NewPassword; //如果用数字作口令,需要使用双引号括起

SQL> grant connect to sys identified by NewPassword;

SQL> alter user system identified by NewPassword;

SQL> alter user sys identified by NewPassword;

SQL>password //需要输入原口令

// 注:以上修改口令的方法等价;sys与system用户可以互相修改口令;如果sys与system 用户的口令都忘

记了,使用如下方法:

D:\>svrmgrl

SVRMGR> connect internal/oracle

连接成功。

SVRMGR> grant connect to system identified by manager;

语句已处理。

SVRMGR> exit

服务器管理程序结束。

、Oracle 产品组成

查询数据库选件产品:

SQL> select * from v$option;

一般都是True, 如果是False, 可以双击激活。

/* cartridges (小产品的)插件,(大产品的)选件(options)*/

[SYS用户是Oracle数据库中权限最大的用户。]

[SQL*Plus登录方法]

1. c:\> sqlplus "/ as sysdba"

2. c:\> sqlplus internal

// 注意:以上两种方法可以类似的使用于SQL*Plus的图形登录界面中

// 用这种登录方法登录进去,所使用的用户均为SYS。

[之所以会出现这种登录方法,是因为在NT的用户组中存在一个ORA_DBA的本地组,凡在此组中的用户使用

操作系统认证,即在此组中的用户登录数据库时不需要密码。]

[orapwd命令:修改internal用户的口令字]

/* orapwd的命令行参数

D:\>orapwd

Usage: orapwd file= password= entries=

where

file - name of password file (mand),

password - password for SYS and INTERNAL (mand),

entries - maximum number of distinct DBA and OPERs (opt),

There are no spaces around the equal-to (=) character. */

修改internal口令字(internal默认口令为oracle)认证方法(A B两个步骤):

A. 修改Oracle登录认证方法:

修改文件SQLNET.ORA文件。

SQLNET.AUTHENTICA TION_SERVICES=(NTS) //将这一行前面加上#号注释掉,即可将

Oracle的认证方法由操作

系统认证改为Oracle认证

SQLNET.ORA文件的位置:

UNIX:/u01/app/oracle/product/8.1.6/network/admin/sqlnet.ora

Windows NT/2000: d:\oracle\ora81\network\admin\sqlnet.ora

B. 修改Internal口令字:

Windows NT/2000:

C:\>ORAPWD file=d:\oracle\ora81\database\pwdora8i.ora

password=YourPassword // YourPassword为你要设置的密码

entries=30

/* ORAPWD file=d:\oracle\ora81\database\pwdora54.ora password=qev entries=30 */

UNIX:

$ orapwd file=$ORACLE_HOME/dbs/orapwSID

password=YourPassword

entries=30

然后重新启动Oracle服务(服务->OracleServiceHOSTNAME)。

/* 在执行上述命令之前,需要先将相应目录的pwdora8i.ora(或orapwSID)文件删除或者改名,因为口令字

文件不能重名。*/

[tkprof 跟踪文件整理工具]

$ tkprof x.trc x.txt

Windows 2000/NT:

d:\oracle\admin\db_name\udump\*.trc

UNIX:/u01/app/oracle/amdin/db_name/udump/*.trc // */

Oracle数据分区技术:8.0以后开始使用

(一)LOB(Large Object)大对象类型数据:

1. BLOB:存储二进制数据,如图象、视频、声音等,用于代替Long raw类型(Oracle7.0以前的数据类型,今

后不再支持)

2. CLOB:存储大字符,如:个人简历,用于代替long字段。

3. NCLOB:其它民族语言的支持

(1) 数据库字符集NLS:

Server端:NLS_CHARACTERSET: (如果为以下的字符集,Oracle的数据库可以用来存储汉字)

ZHS16GBK(Oraclei8, Oracle8)

ZHS16CGB231280(Oracle7.3, 8, 8i)

此参数位置在数据字典中,查询核心字符集(语言、日期、货币等):

SQL>select * from nls_database_parameters;

Client端:NLS_LANG=Simplified Chinese_CHINA.ZHS16GBK (如果没有设置,默认是英文) regedit.exe

UNIX Client中:

$ NLS_LANG="simplified chinese"_china.zhs16gbk

$ export NLS_LANG

//一般将上述环境变量放入.profile文件中。

/***********************************************插入内容

********************************************************

(1) sys是一种用户,internal是一种方式,用来启动关闭数据库,9.0以后不再使用internal,全部是sys

(2) SQL>set com v7 //将8i版本暂时退回到7版

(3) SQL> alter system suspend; // 使用internal用户执行,冻结数据

SQL> alter system resume; // 取消冻结,恢复正常

******************************************************************************* ***************

******************/

(2)Oracle数据库核心字符集修改方法:

[*] 修改数据字典(使用SYS用户):

SQL>update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';

SQL>commit;

然后重新启动数据库。

4. BFILE:外部文件存储,将数据存储在服务器硬盘

5、SQL关键字(命令)

SQL关键字(以下命令为SQL命令,以分号结束)

1. Alter:修改表结构

2. Audit: 审计,NoAudit(取消审计)

3. Commit:数据提交,相反的命令:Rollback(回退)

4. Comment:将oracle的注释写入数据字典

5. Create: 建表、数组、索引、视图等,相反的命令:Drop

6. delete: 删除表中的数据,Drop是把表中的数据包括结构全部删除

7. Grant:授权,Revoke:收权(权限回收)

8. Insert:在表中插入新行

9. Lock: 将表强行锁住

10. Rename:修改表名

11. Select: 数据查询

12. Update:数据更新,修改某一个列

13. Validate:校验,对数据进行校验。

6、SQL命令的输入:

在SQL>提示符后输入命令,可以输入多行,以分号结束

7、SQL*Plus 关键字:以回车结束

1. @: 执行外部命令,格式:@路径\文件名

2. #: 注释

3. /: 执行上一条命令

4. Accept:接收键盘输入的命令

5. Append(简化为a): 在行尾增加字符串

SQL> a t

1* select * from dept

SQL> /

6. Break: 分组,Syntax: break on 分组列skip n//n为每两组之间间隔的空行

/* 例:

SQL> break on job

SQL> select * from emp order by job; // 此处务必按分组列排序

SQL> break on job skip 1

SQL> /

*/

7. Btitle, Ttitle:设置表尾、表头

SQL> Ttitle '表头'

SQL> Btitle '表尾'

SQL> Ttitle off //失效

8. Change: 写错了改正, Syntax: C/old/new

/* 例:

SQL> select * from detp;

select * from detp

SQL> c/tp/pt

1* select * from dept

SQL> /

9. Clear: 清除

SQL> clear break // 清除前面的break设置

SQL> clear buff // 清除SQL*Plus缓冲区中的SQL语句

10. Column: 列定义,用于定义列的显示格式

语法:SQL> column 列名format 格式

例:SQL> Column sal format $99.999999

11. computer: 统计计算

12. connect: 从一个用户退出,直接进入另一个用户

13. disconnect: 中断当前用户的连接

14. copy: 远程复制(用的较少,一般数据链路)

15. define:定义

16. undefine:取消定义

17. del: 删除当前行

18. describe(简写desc): 显示表结构

例:SQL> desc emp

19. document: 文档注释

20. edit(简化ed):调入外部编辑器编辑缓冲区中的SQL语句,保存后,可以直接通过“/”运行编辑过的SQL

语句

21. get: 将外部文件调入不执行,只供显示

例:SQL> get c:\sqlplus.ora

22. host: 执行操作系统命令

例:SQL> host dir

23. input(简化为I): 行插入,在当前行的后面插入。

24. List(简化为L): 列示

25. Pause: 设置屏幕暂停

SQL> set pause on //暂停

SQL> set pause off //不暂停

SQL> set 'more' pause on [???]

26. Quit: 退出

27. Remark: 注释

28. Run(R): 类似“/”

29. Save: 将已经运行过的SQL命令保存到磁盘

例:SQL> save c:\run.sql replace //覆盖保存

append //追加

30. set: 设置

31. show: 显示环境变量的值

32. Spool: 显示跟踪

例:SQL> spool c:\文件名

SQL> spool off //停止记录

33. Start: 类似@,执行外部的SQL文件

33. Timing: 服务器端某一命令的执行时间跟踪

数据字典:描述系统信息的表、视图、同义词等,由系统自动维护。

例:SQL>select * from tabs;

1. 显示当前所登录的用户:select * from all_users;

2. user_xxx:描述用户创建的对象,如:user_tables,user_views,user_indexes

3. dba_XXX:数据库管理员(sys, system)专用数据字典

4. all_XXX: 描述用户创建的对象,其他用户授权可以存取的对象。

all_objects: 全部的数据字典

1. 查询全表的数据:

SQL> select * from emp;

2. 查询某(几)个列:SQL> select ename, sal from emp;

3. DISTINCT 标识:只显示不相同的列

例:

SQL> select job from emp; // 显示结果中有相同的记录

SQL> select distinct job from emp; // 只显示不相同的职业

4. 使用order by将显示结果排序:ASC升序(默认),DESC降序

5. 使用where指出查询条件:

SQL> select * from emp where sal > 2000;

[字符型或日期型用单引号括起来,并区分大小写]

6. 设置日期显示格式:

(1) 确定日历格式:设置参数nls_calendar。

SQL>alter session set nls_calendar='Japanese Imperial'; //设置为日本日历

SQL>alter session set nls_calendar='ROC official'; //设置为台湾日历

SQL>alter session set nls_calendar='Gregorian'; //设置为格林尼治日历,这是我们要设置成的日历。

SQL> select sysdate from dual; //查询系统时间

(2) 确定日期格式:参数nls_date_format

常用的日期格式:

yyyy.mm.dd

yyyy-mm-dd

yyyy/mm/dd

yyyy"年"mm"月"dd"日" //如果要显示汉字,请用双引号括起来yyyy"年"mm"月"dd"日"dy // dy表示星期

命令格式:

SQL>alter session set nls_date_format='格式';

[此命令只修改前端的显示,退出后即失效,要想永久有效,要修改注册表,在注册表中HKLM->Software->Oracle->Home0增加字符串关键字nls_date_format,键值为日期格式,此处的格式不需要

用单引号括起来。]

例:SQL>alter session set nls_date_format='yyyy"年"mm"月"dd"日"dy';

7. Oracle登录自动执行文件glogin.sql:每次用户登录时自动执行该文件,可以将一些环境变量(如

linesize)的设置命令或者其它命令放入该文件中。

glogin.sql文件路径:

Windows下:d:\oracle\ora81\sqlplus\admin\glogin.sql

UNIX: /u01/app/oracle/product/8.1.6/sqlplus/admin/glogin.sql

二、运算符与谓词

1、算术运算符:+, -, *, /

SQL> select sal, sal*12 from emp; //计算工资及年薪。

SQL> select sal, sal+comm from emp; //错误语句,因为comm中存在空值,会使运算结果也会出现空值。

SQL> select sal, sal + NVL(comm,0) from emp; // 正确语句,NVL为空值运算函数,当comm 为空值时,

该函数返回第二个值0。

2、逻辑运算符:NOT, AND, OR,三个运算符的优先级别依次降低。

3、比较运算符:>, <, =, >=, <=, !=

4、谓词:

(1) IN(或NOT IN):等于(不等于)列表中的任意值。

SQL> select * from emp where job in ('MANAGER', 'CLERK')

(2) (NOT) BETWEEN AND : 表示从小到大的一个范围。[必须是从小到大]

SQL> select * from emp where sal not between 2000 and 3000;

(3) LIKE:模式匹配

SQL> select * from emp where ename like 'S%'; //寻找ename为S打头的记录

%: 表示任意字符串

_(下划线): 表示一个任意字符

SQL> select * from emp where ename like '李%'; //可以使用中文

SQL> select * from emp where ename like 'S_I%'; //寻找ename为S打头,第三个字母为I的记录

SQL> select object_name from all_objects where object_name like 'DBA%'; //搜索数据字典中与dba

有关系的对象

(4) (NOT) NULL(空值):

SQL> select * from emp where comm is NULL; //查询哪些人没有资金。

5. 伪列:

(1) rowid: 唯一行标识,行被删除之后,rowid不变。

(2) rownum: 行号,一行被删除之后,后面的行号会随之改变

SQL> select empno, ename, rowid, rownum from emp;

[查询SQL语句的相关数据字典]

(1)SQL> select sql_text from v$sqlarea; //查询以前使用过的SQL语句

(2)查询当前连接用户的SQL语句:

SQL> select user_name,sql_text from v$open_cursor; //需要用sys或system用户执行

三、列名别名

SQL> select ename, sal as Salary from emp;

SQL> select ename 职工姓名, sal 工资from emp;

* # / \ select 都不允许做别名,如果一定要用,用双引号括起来。

数据操纵语言(DML)

一、数据插入:

1. 对于表中全部列插入

语法:SQL> insert into表名values(值表达式);

例:SQL> Insert into dept values(51, '软件开发部', '北京');

[*] 用desc显示表结构、数据类型、顺序SQL> desc dept //注意,不要将linesize设置的太大,否则看不

到表结构,设置成100即可。

[*] 所插数据必须与目标列一致。

[*] 字符与日期数据使用单引号

2. 对于表中部分列插入

语法:SQL> insert into表名(列名1,列名2...) values(值表达式);

[*]对于表中的非空列必须插入数据

SQL> insert into emp(empno, ename, job, hiredate,deptno) values(1234, '李大力', '工程师', sysdate - 30, 10);

/* sys 或system 用户访问其它用户的表的方法

SQL> connect system/ab@ora44

已连接。

SQL> select * from user01.emp */

/******************** commit及Rollback用法:下例是Rollback的一个例子。

SQL> delete dept where deptno = 51;

已删除1 行。

SQL> select * from dept;

SQL> rollback;

SQL> select * from dept;

DEPTNO DNAME LOC

---------- -------------- -------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

50 COMPUTER BEIJING

51 软件开发部北京

已选择6行。

*************************************************/

3. 使用参数(变量),临时输入值

SQL> insert into 表名(列名1,列名2, ...) values(&x1, &x2, ...);

SQL> insert dept(deptno, dname, loc) values(&x1, '&x2', '&x3')

SQL> insert into dept values(&x1, '&x2', '&x3'); // 在命令行中给字符或日期型参数加上单引号,则

下面输入时不再需要输入单引号

输入x1 的值: 53

输入x2 的值: dd

输入x3 的值: ee

原值1: insert into dept values(&x1, '&x2', '&x3')

新值1: insert into dept values(53, 'dd', 'ee')

// define x = 7788

// 也可以这样用:select &x1, &x2 from emp;

4. 使用子查询从另一个表中复制数据

语法:Insert into 表名select 子句;

SQL> insert to emp(empno, hiredate, deptno)

select deptno+7300, sysdate, deptno from dept;

SQL> insert to emp(empno, hiredate, deptno)

select deptno+7300, sysdate, deptno from dept@数据库链路名; //表示dept这个表在网络上的其它服务

器中,注意:@之后不是连接串。

SQL> create table pay as select ename, sal from emp; // 用复制的方法创建表

SQL> insert into pay select * from pay; //自己复制自己,可以使一个表飞速扩大。

二、数据更新

语法:SQL> Update 表名set 列名=值表达式where 条件;

例:

SQL> update emp set sal = sal + 100 where sal < 2000;

SQL>update emp set sal = 5000, job='MANAGER' where ename = 'SMITH';

SQL> update emp set comm = 100 where comm is null;

三、数据删除

语法:SQL> Delete from 表名where 条件; //删除数据保留结构,可以回退

SQL>Truncate table 表名; //删除数据保留结构,不可以回退,效率高

SQL>Drop table 表名; //删除数据及结构,不可以回退

数据控制语言(DCL)

一、事务提交:对于数据的插入、更新、删除,只有提交后,数据才真正改变,在提交之前,只有修改了数

据的用户才可以看到数据的改变,而其他用户看不到数据的改变。

1. 显式数据提交语法:SQL> commit;

/* 某一个用户对表进行更新等写操作之后,如果没有commit,那么其它用户不能对表进行更新操作,否则

就会死掉。

查锁方法:

SQL> select username, sid, serial# from v$session;

解锁方法:

SQL> alter system kill session 'sid, serial#';

******************************************************************************* ***************

*******/

2. 隐式数据提交:

下列命令是隐式提交命令:

Create, Alter, Drop, Connect, Disconnect, Grant, Revoke, Rename, Exit, Quit, Audit, NoAudit 3. 自动数据提交:

SQL> set autocommit on //打开自动数据提交开关

SQL> set autocommit off //关闭自动数据提交开关(默认)

二、事务回退

语法:SQL>Rollback; //使数据库回退到最近一次提交后状态,如果一次也没有提交过,回到最原始状态

SQL>Rollbac;

SQL>Rollba;

SQL>Rollb;

SQL>Roll;

//以上的用法都是正确的。

三、设置保存点:

SQL> SavePoint a;

回退到保存点:

SQL> Rollback to a; //此处的Rollback不能再简写。

数据定义语言(DDL)

包括:创建基表、视图、同义词、索引、数据库链路、序列等

一、创建基表

语法:

SQL> Create Table 表名(

列名1数据类型,

列名2数据类型,

...); //最多可以到1000个字段

例:SQL> Create Table product(

p_name, varchar2(20),

p_id_number number(7),

p_date date);

1. 数据类型

(1)字符型

char(n): n<=2000,固定长度,如果实际长度不够,前面用空格补齐。

varchar2(n): n<=4000,可变长度,不用空格补齐。

(2) 数字型number(n):整数,number(n,d):小数

(3) 日期型

(4) 二进制raw(8i以前的,现在不支持了)

(5) 大字符long:建议不要使用,现在不支持了

(6) blob:存储二进制

(7) CLOB:存储大字符

SQL> Create table employee(

name varchar2(30),

salary number(7,2),

b_date date,

phote blob,

resume clob);

[*]修改数据库兼容性参数(如果在执行上面的SQL语句时,提示clob字段“默认字符集具有不同的宽度”,

则需要修改数据库兼容性。):

D:\oracle\amdin\db_name\pfile\init.ora

compatible=8.0.5 =改为=> 8.1.0或8.1.5

改完后重新启动数据库使修改生效。

/**********************************************

修改前:

SQL> Create table employee(

2 name varchar2(30),

3 salary number(7,2),

4 b_date date,

5 phote blob,

6 resume clob);

resume clob)

*

ERROR 位于第6 行:

ORA-22866: 默认字符集具有不同的宽度

修改后:

SQL> Create table employee(

2 name varchar2(30),

3 salary number(7,2),

4 b_date date,

5 phote blob,

6 resume clob);

表已创建。

************************************************/

2. 约束条件:数据完整性约束条件(Data Integrity Constaints)

Oracle 常用约束条件:

(1) 非空约束:NOT NULL

(2) 唯一性约束:UNIQUE

(3) 主键:PRIMARY KEY,主键同时具有上面两个约束条件,一个表中只允许有一个主键。

(4) 外键:FOREIGN KEY,这一列值从其它表中取出,允许重复,但不允许修改。

(5) 检查:CHECK (e.g. check (sal > 200)

(6) 引用(参考):REFERENCES,只能用其它表或者本表的某一列列值,不能随便修改。

(7) 缺省值:DEFAULT,如果没有输入,自动使用DEFAULT值。

3. 约束条件的定义方法:

可以定义为列的一部分,也可以定义为表的一部分。

(1)定义为列的一部分:

SQL> Create Table product(

p_name varchar2(20) unique,

p_id number(7) primary key,

p_date date not null);

[*] Check、Default约束条件:

SQL> Create table employee(

name varchar2(20),

id number(7) primary key,

sal number(11) check(sal > 200 and sal < 2000),

h_date date default sysdate);

一个列具有多个约束条件的写法:

SQL> Create Table product(

p_name varchar2(20) unique,

p_id number(7) primary key,

check(p_id >= 111 and p_id <= 999),

p_date date not null);

例:

SQL> insert into employee(name, id, sal) values('Smith', 2, 201);

SQL> select * from employee;

(2)定义为表的一部分(不能用在Default 和Not NUll的定义上):

SQL> Create Table Product(

p_name varchar2(20),

p_id number(7),

p_date date not null,

constraint p_id_pk primary key(p_id),

constraint p_name_uk unique(p_name));

[*] 查询约束条件:

SQL> select * from user_constraints where table_name = 'PRODUCT';

(3) 另一种约束定义方法:

SQL> Create Table Product(

p_name varchar2(20),

p_id number(7) constraint pk_p_id primary key,

p_date date constraint fk_p_date not null);

4. 使用外键创建主从基表

(1) 创建主表(定义主表):

SQL> Create Table product(

p_name varchar2(20),

p_id number(7) primary key,

p_date date not null);

(2)创建子表,定义外键

SQL> create table sales_list(

sales_name varchar2(20),

sales_id number(7) primary key,

p_id number(7),

constraint p_id_fk foreign key (p_id) references product(p_id));

5. 数据完整性约束条件的修改

(1) 删除约束条件:

A. 删除主键约束:

SQL> Alter table product drop primary key;

SQL> Alter table product drop constraint p_id_pk;

// 以上两种方法等价

B. 删除唯一性约束:

SQL> Alter table product drop unique(p_name);

SQL> Alter table product drop constraint p_id_uk;

C. 删除非空约束

SQL> Alter table product modify(p_date NULL);

D. 删除缺省值:

SQL> Alter table product modify(p_date default null);

(2) 增加约束条件

A. 增加主键约束:

SQL> Alter table product add primary key(p_id);

SQL> Alter table product add constraint p_id_pk primary key (p_id);

B. 增加非空约束

SQL> alter table product modify ( p_date not null);

C. 增加缺省值

SQL> Alter table product modify (p_date default sysdate-1);

[*]查询缺省值:

SQL> select table_name, column_name, data_default from user_tab_columns;

二、修改表结构

1. 在表中增加新列:

SQL> Alter table product add (p_list number(7), p_loc varchar2(20));

2. 删除一个列(只适用于Oracle8i以后的版本):

SQL> Alter table product drop(p_list, p_loc); //删除多个列

SQL> Alter table product drop column p_list; //删除一个列

3. 修改列宽:

SQL> Alter table product modify (p_name varchar2(40));

//增加列宽没有约束,但减小列宽要求列中数据为空。使用此命令也可以修改列的数据类型。

三、视图(View):视图是虚表。

[*]视图不存储数据

[*]数据来源于基表

[*]不是数据的复制

[*]在同一个表上可以创建多个视图

1. 创建视图的语法:

SQL> Create or Replace view 视图名

as select 语句;

例:SQL> create view manager

as

select * from emp where job='MANAGER'; // select * from tab; 检查

SQL> select * from manager; // 查询视图如果查询表

// 第二次创建视图,可以使用or replace参数,不需要再删除而直接覆盖同名视图。SQL> create or replace view manager

as

select * from emp where job='MANAGER';

[几点说明:]

(1) 在创建视图时,不得使用order by排序。

(2) 在视图中插入数据,则数据被插入到基表中,所以,如果要向视图插入数据,则创建视图时,必须包含

表中全部非空列。

(3) 用户视图数据字典:

SQL> select view_name,text from user_views;

2. 视图列别名:

错误语句:

SQL> create view payment as

select sal, sal*12, nul(comm,0)/sal from emp; // 错误原因:视图可以视同为表,所以列名也要符合

规定,而sal*12则是不符合规矩的列名。

正确语句:

SQL> create view payment(c1, c2, c3) as // c1, c2, c3即为视图列别名

select sal, sal*12, nvl(comm,0)/sal from emp;

3. 创建视图时增加约束条件:WITH CHECK OPTION

SQL> Create or replace view deptno20 as

select empno, ename, deptno from emp where deptno=20;

SQL> Insert into deptno20 values(1236, '李力', 30);

SQL> select * from deptno20;

// 上面的语句会出现能够通过视图入基表中插入数据,但却不能通过视图看到插入的数据的问题,解决办

法:

SQL> Create or replace view deptno20 as

select empno, ename, deptno from emp where deptno=20

WITH CHECK OPTION;

4. 创建Oracle8i的实体化视图(Materialized View):视图不依赖于基表,基表被删除后,视图仍然正常。

一般用于两个远程数据库之间的访问,通过数据链路来实现。

(1) 以DBA用户登录,为用户授予创建实体化视图的权限:

SQL> Grant Create Materialized View to 用户名;

(2)以获权用户登录,创建实体化视图:

SQL> Create Materialized View manager as

Oracle数据库基础

Oracle 数据库基础 数据库是我们安装完产品后建立的,可以在同一台主机上存在8i,9i,10g,11g等多个数据库产品,一套产品可以建立多个数据库,每个数据库是独立的。每个数据库都有自己的全套相关文件,有各自的控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件等等。 其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件; 参数文件(parameter file)口令文件(password file)是非数据库文件 我们的表存储在数据库中 数据库不能直接读取 我们通过实例(instance)来访问数据库 数据库实例 实例由内存和后台进程组成 实例是访问数据库的方法 初始化参数控制实例的行为 一个实例只能连接一个数据库

启动实例不需要数据库 产品安装好 有初始化参数文件 就可以启动实例 与是否存在数据库无关 实例内存分为SGA 和PGA SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。 PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收. 后台进程是实例和数据库的联系纽带 分为核心进程和非核心进程 当前后台进程的查看 SQL> select name,description from v$bgprocess where paddr<>'00'; NAME DESCRIPTION

Oracle数据库试题及答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。(A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。 ?(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (A)select*from scott.wz where wunit is null and rownum<5; (B)select*from myuser.wz where wunit = null and rownum<5; (C) select*from myuser.wz where wunit is null and rownum<6; (D)select*form scott.wz where wunit is null and rownum<6; ?4、若当前日期为’25-5月-06’,以下( D? )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5)) 5、下列叙述中正确的是_C_。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 6、SQL语句中修改表结构的命令是 ???C?? ?。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 7、数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是__ A___。 A、DBS包括DB和DBMS B、DBMS包括DB和DBS C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS 8、要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_A___。 A、是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个是数据库表另一个是自由表 9、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__B_ __。 A、候选键 B、主键 C、外键 D、超键 10、索引字段值不唯一,应该选择的索引类型为___ B__。 A、主索引 B、普通索引 C、候选索引 D、唯一索引 11、从数据库中删除表的命令是___C __。 A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE 12、 DELETE FROM S WHERE 年龄>60语句的功能是___B___。 A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记

最新Oracle期末考试复习题2资料

复习题 一、填空题: 1. Oracle EnterpriseManager是一个基于 B/S的框架系统。 2.Oracle数据库的存储结构分为物理结构和逻辑结构。 3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。 4. 在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。 5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE. 6.索引的主要目标是提高访问的速度。 7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种方式创建数据库。 8. 命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。 9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip地址和端口 号。 10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为normal 和sysdba。 二、选择题: 1.当Oracle服务器启动时,下列哪种文件不是必须装入内存的()。D A. 数据文件 B. 控制文件 C. 日志文件 D. 归档日志文件 2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据()。B A.用户进程 B. 服务器进程 C. 日志写入进程(LGWR) D. 检查点进程(CKPT)3. 在Oracle数据库的逻辑结构中有以下组件:A 表空间;B 数据块;C 区;D段;这些组件从大到小依次是()。B A. A→B→C→D B. A→D→C→B C. A→C→B→D D. D→A→C→B 4. (B )可以从过程返回多个值。 A. 使用IN参数 B. 使用OUT参数 C. 使用指针 D. 不能 5.PL/SQL为内存耗尽时,预定义了(C )异常。 A. NO_DA TA_FOUND B. MEMORY_ERROR C. STORAGE_ERROR D. NO_MEMEORY_FOUND 6. 一下是同义词不具有的用途是(D )。 A. 简化SQL语句 B. 隐藏对象的名称和所有者 C. 提供对对象的公共访问 D. 显示对象的名称和所有者 7. 在Windows操作系统中,Oracle的( A )服务监听并接受来自客户端应用程序的连接请求。 A. OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent D. OracleHOME_NAMEHTTPServer 8. 在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(B )表 空间分配给用户作为默认表空间。

ORACLE数据库期末考试题目及答案

期末考试卷(卷) 课程名称:数据库考试方式:开卷()闭卷(√) 、本试卷共4 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸带出考场。 1、以下(a )内存区不属于SGA。 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、d )模式存储数据库中数据字典的表和视图。 (A.DBA B.SCOTT C.SYSTEM D.SYS 3、Oracle 中创建用户时,在若未提及DEFAULT TABLESPACE 关键字,Oracle 就将 c )则(表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS

4、a )服务监听并按受来自客户端应用程序的连接请求。(A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 5、b )函数通常用来计算累计排名、移动平均数和报表聚合等。(A.汇总B.分析C.分组D.单行 6、b)SQL 语句将为计算列SAL*12 生成别名Annual Salary (A.SELECT ename,sal*12 …Annual Salary? FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供(b )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 8、( c )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 9、带有( b )子句的SELECT 语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH

Oracle试题(含答案)

_C++_CSD/ESD1405 1. 把工资大于1000的first_name,salary 显示出来,按工资排序,工资相同按first_name降序的SQL语句是? A. select first_name,salary from s_emp order by salary,first_name B. select first_name,salary from s_emp order by salary,first_name asc C. select first_name,salary from s_emp order by salary desc,first_name D. select first_name,salary from s_emp order by salary,first_name desc 正确答案:D 2. 已知数据库中有员工表s_emp和部门表s_dept,具体字段如下: 员工表字段介绍: ID 员工编号 LAST_NAME 员工姓 FIRST_NAME 员工名 USERID 用户编号 START_DATE 入职日期 COMMENTS 员工备注信息 MANAGER_ID 员工的领导ID TITLE 员工的职位 DEPT_ID 部门的编号 SALARY 员工的月薪 COMMISSION_PCT 提成 部门表的字段介绍: ID 部门编号 NAME 部门名 REGION_ID 地区编号 注:以下所有数据库相关题目,均使用这两个表 把s_emp表中的每个人的全名和工资列出来的SQL语句是? A. select first_name|last_name ,salary from s_emp

oracle数据库期末考试试题及复习资料

oracle数据库期末考试试题及答案 A1、以下()内存区不属于SGA。 A.PGA B.日志缓冲区C.数据缓冲区D.共享池 D2、()模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS C3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle就将()表空间分配给用户作为默认表空间。A.HR B.SCOTT C.SYSTEM D.SYS A4、()服务监听并按受来自客户端应用程序的连接请求。A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer B5、()函数通常用来计算累计排名、移动平均数和报表聚合等。A.汇总B.分析C.分组D.单行 B6、()SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary' FROM emp; B.SELECT ename,sal*12 “Annual Salary”FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp; D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM

12 / 1 emp; B7、锁用于提供( )。 A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 C8、( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。 A.行共享B.行排他C.共享D.排他 B9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH C10、使用( )命令可以在已分区表的第一个分区之前添加新分区。A.添加分区B.截断分区 C.拆分分区D.不能在第一个分区前添加分区 C11、( )分区允许用户明确地控制无序行到分区的映射。 A.散列B.范围C.列表D.复合 C12、可以使用()伪列来访问序列。 A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE

Oracle数据库基本知识点

1、数据库基本语句 (1)表结构处理 创建一个表:cteate table 表名(列1 类型,列2 类型); 修改表的名字 alter table 旧表名 rename to 新表名 查看表结构 desc 表名(cmd) 添加一个字段 alter table 表名 add(列类型); 修改字段类型 alter table 表名 modify(列类型); 删除一个字段 alter table 表名 drop column列名; 删除表 drop table 表名 修改列名 alter table 表名 rename column 旧列名 to 新列名; (2)表数据处理 增加数据:insert into 表名 values(所有列的值); insert into 表名(列)values(对应的值); 更新语句:update 表 set 列=新的值,…[where 条件] 删除数据:delete from 表名 where 条件 删除所有数据,不会影响表结构,不会记录日志, 数据不能恢复--》删除很快: truncate table 表名 删除所有数据,包括表结构一并删除: drop table 表名 去除重复的显示:select distinct 列 from 表名 日期类型:to_date(字符串1,字符串2)字符串1是日期的字 符串,字符串2是格式 to_date('1990-1-1','yyyy-mm-dd')-->返回日期的 类型是1990-1-1 (3)查询语句 1)内连接 select a.*,b.* from a inner join b on a.id=b.parent_id

Oracle数据库试题及答案word版本

O r a c l e数据库试题及 答案

Oracle数据库试题 一、选择题 1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。 (A)索引段(B)临时段(C)回滚段(D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。(A)系统文件(B)日志文件(C)数据文件(D)控制文件 3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C ) (A)select*from scott.wz where wunit is null and rownum<5; (B)select*from myuser.wz where wunit = null and rownum<5; (C) select*from myuser.wz where wunit is null and rownum<6; (D)select*form scott.wz where wunit is null and rownum<6; 4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。 (A)NEXT_DAY(ADD_MONTHS(28-5月-06,5)) (B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5)) (C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5)) (D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5))

oracle考试试题及答案

试题一 一、填空题(每小题4分,共20分) 1、数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段 2、数据库三级数据结构是外模式、模式、内模式 3、Oracle数据库中,SGA由数据库缓冲区,重做日志缓冲区,共享池组成 4、在Oracle数据库中,完正性约束类型有Primay key约束。Foreign key约束,Unique约束,check约束,not need约束 5、PL/SQL中游标操作包括声明游标,打开游标,提取游标,关闭游标 二、正误判断题(每小题2分,共20分) 1、数据库中存储的基本对象是数据(T) 2、数据库系统的核心是DBMS(T) 3、关系操作的特点是集合操作(T) 4、关系代数中五种基本运算是并、差、选择、投影、连接(F) 5、Oracle进程就是服务器进程(F) 6、oraclet系统中SGA所有用户进程和服务器进程所共享(T) 7、oracle数据库系统中数据块的大小与操作系统有关(T) 8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T) 9、PL/SQL中游标的数据是可以改变的(F) 10、数据库概念模型主要用于数据库概念结构设计() 三、简答题(每小题7分,共35分) 1、何谓数据与程序的逻辑独立性和物理独立性? 2、试述关系代数中等值连接与自然连接的区别与联系? 3、何谓数据库,数据库设计一般分为哪些阶段? 4、简述Oracle逻辑数据库的组成?

5、试任举一例说明游标的使用方法? 五、设有雇员表emp(empno,ename,age,sal,tel,deptno), 其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话 deptno-----部门号。 请按下列要求分别晨SQL*PLUS下编程。(每小题3分,共15分)?1、查询家有电话的职工信息。 ?2、查询工资在500至800元之间的雇员信息 ?3、按年龄递增顺序显示雇员编号、姓名、年龄、工资 ?4、求部门号为D_01的平均工资 ?5、查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; ? 试题一答案 一、填空题 1、人工管理、文件系统、数据库系统 2、外模式、模式、内模式 3、数据库缓冲区,重做日志缓冲区,共享池 4、Primay key约束。Foreign key约束,Unique约束,check约束,not need 约束 5、声明游标,打开游标,提取游标,关闭游标 二、正误判断题 1、T 2、T 3、T 4、F 5、F 6、T 7、T 8、T 9、F 三、(略) 五、 1、SQL>SELECT * FROM emp WHERE tel NOT NULL; 2、SQL>SELECT * FROM emp WHERE BETWEEN 500 AND 800; 3、SQL>SELECT empno,ename,age,sal FROM emp ORDER BY age ASC; 4、SQL>SELECT AVG(sal) FROM emp WHERE deptno='D_01'; 5、SQL>SELECT ename FROM emp WHERE deptno='D_01' AND age>40 AND Sal<400; 试题二

Oracle数据库基础题库【含答案】

1、判断题,正确请写写"T",错误请写写"F", 1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。( T ) 2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。( F) 3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。( T) 4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。( F ) 5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。( F ) 8、数据字典中的内容都被保存在SYSTEM表空间中。( T ) 9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。( F ) 10、"上海西北京" 可以通过like ‘%上海_’查出来。( F ) 11、表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多个表空间组成。一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。( T ) 12、表空间分为永久表空间和临时表空间两种类型。( T ) 13、truncate是DDL操作,不能 rollback。( T ) 14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE语句。( F ) 15、Oracle数据库中字符串和日期必须使用双引号标识。( F ) 16、Oracle数据库中字符串数据是区分大小写的。( T ) 17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。( F ) 18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。( T ) 20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接将失去意义。( T ) 23、PL/SQL代码块声明区可有可无。( T ) 24、隐式游标与显式游标的不同在于显式游标仅仅访问一行,隐式的可以访问多行。( F )

ORACLE数据库习题

1.0RACLE数据库物理结构包括以下三种文件,以下不属于的是() A .系统文件 B.日志文件 C.数据文件 D.控制文件 2?下列哪个命令是用于ORACLE中数据导出的() A.exp B. imp C . in put D . output 3.()是用于控制数据访问的语言。 A.DML B . DDL C . DCL D . DLL 4.NULL表示什么() A . 0 B.空格 C .值D .没有值 5?下面四个语句中哪一个是正确的?() A . SELECT * , ENAME FROM EMP; B . DELETE * FROM EMP; C . SELECT DISTINCT EMPNO ,HIREDATE FROM EMP; D . SELECT ENAME|SAL AS “ namS FROM EMP ; 6?假定有一张表用户表users,其中一身份证字段ID_card。为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束() A . primary key B . check C . default D . notnull 7?下面哪一个like命令会返回名字象HOTKA的行?() A . where en ame like ‘ _HOT%' B . where ename like ‘ H_T%' C . where ename like ‘ %TKA_' D . where ename like ‘ %TOK%' 8.()操作符只返回由第一个查询选定但是没有被第二个查询选定的行。 A.UNION B.UNION ALL C.IN TERSECT D.MINUS 9 . EMPLOYEES表的结构如下: EMPLOYEE_ID NUMBER PRIMARY KEY FIRST_NAME VARCHAR2(25) LAST_NAME VARCHAR2(25) HIRE_DATE DATE 考虑下面的语句。 1.CREATE table n ew_emp (employee_id NUMBER, name VARCHAR2(30)); 2.IN SERT INTO n ew_emp SELECT employee_id,last_ name from employees; 3.Savepo int s2; 4.DELETE from n ew_emp; 5.ROLLBACK to s2; 6.DELETE from n ew_emp where employee_id=180; 7.UPDATE new_emp set name= ' James'; 8.R0LLBACK to s2;

Oracle试题(含答案)

正确答案:D 2.已知数据库中有员工表 员工表字段介绍: ID LAST_NAME FIRST_NAME USERID START_DATE COMMENTS MANAGER_ID TITLE DEPT_ID SALARY COMMISSION_PCT 部门表的字段介绍: ID 部门编号 NAME 部门名 REGION_ID 地区编号 注:以下所有数据库相关题目,均使用这两个表 把s_emp 表中的每个人的全名和工资列出来的 A. select first_ name|last_ name ,salary from s_emp C++CSD/ESD1405 1.把工资大于 1000 的 first_name,salary SQL 语句是? select A. first_ name,salary from s_emp tdJ B. select first_ name,salary from s_emp L C. select first_ name,salary from s_emp order by salary,first_ name order by salary,first_ name asc order by salary desc,first_ name 显示出来,按工资排序,工资相同按 first 」ame 降序的 D. select first_ name,salary from s_emp order by salary,first_ name desc s_emp 和部门表s_dept ,具体字段如下 员工编号 员工姓 员工名 用户编号 入职日期 员工备注信息 员工的领导ID 员工的职位 部门的编号 员工的月薪 提成 SQL 语句是?

Mysql-Oracle数据库测试题 -带答案

Oralce mysql 1、当你执行以下查询语句: SELECT empno,ename FROM emp WHERE empno =7782 or empno =7876; 在WHERE语句中,以下哪个操作符可以取代or?[参考答案:A] A、IN B、BETWEEN ……AND... C、<= D、>= 2、PL/SQL块中可以使用下列()命令。(选择两项)[参考答案:B,C] A、TRUNCATE B、DELETE C、SAVEPOINT D、ALTER TABLE 3、Oracle数据库的物理文件不包括[参考答案:D] A、数据文件(.dbf) B、重做日志文件(.log) C、控制文件(.ctl) D、缓存文件

4、哪个命令用来创建一个primary key constraint pk_books 在表BOOKS, 列ISBN上? 请选择一个[参考答案:C] A、create primary key on books(ISBN) B、create constraint pk_books primary key on books(ISBN) C、alter table books add constraint pk_books primary key (ISBN); D、alter table books add primary key (ISBN) 5、下列那个()不是Oracle默认的用户[参考答案:D] A、system B、sys C、scott D、sa 6、当创建过程时,可以实现输出数据的参数有[参考答案:B] A、IN参数 B、OUT参数 C、TEST参数 D、任何参数都不能输出 7、下面的case语句 DECLARE V_sal NUMBER:=1200; V_result NUMBER;

Oracle11g数据库基础教程-参考答案资料

第1章Oracle 11g数据库安装与配置 1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对 具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据 库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的 对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速 访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据 库都属于远程访问)。(必须启动) OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非必须启动) OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非必须启动) OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务。

oracle模拟试题答案汇总

备注:题号相同的题目或者增加的一些题目是11级网络的模拟试题 第 1 题,选择题(2分): ORACLE中,游标可以分为三类,下面不是Oracle游标的是( 1 )。 (1) 系统游标 (2) 显式游标 (3)隐式游标 (4) REF游标 第 2 题,选择题(2分):PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) IS SELECT sal,comm FROM emp WHERE deptno=dnum; 那么正确打开此游标的语句是(1) (1) OPEN emp_cursor(20); (2) OPEN emp_cursor FOR 20; (3) OPEN emp_cursor USING 20; (4) FOR rmp_rec IN emp_cursor[20] LOOP ... END LOOP; 第 3 题,选择题(2分): 有关ORACLE索引说法正确的是(A ) (1) 索引的数据和表的数据分开存储,但索引组织表除外 (2) 所有索引中的数据是顺序排序 (3) 分区表的索引必须统一存储 (4) 只能对分区表的索引进行分区 第 4 题,选择题(2分): 下列有关包的使用说法错误的是( A) (1) 必须先创建包头,然后创建包体 (2) 在不同的包内模块可以重名 (3) 包的私有过程不能被外部程序调用 (4) 包体中的全局过程和函数必须在包 第 5 题,选择题(2分): 以下定义的哪个变量是非法的?( A) (1) var_ab number default:=1; var_ab number default 1; (2) var_ab number not null :='0'; (3) var_ab number; (4) var_ab number:=3; 第 6 题,选择题(2分): PL/SQL块中不能直接使用的SQL命令是(A) (1) drop (2) insert (3) update

Oracle数据库技术课程学习大纲详细

《现代数据库技术》教学大纲 课程名称:《现代数据库技术》 课程编号:学时数:56 学分数:3.5 适应专业:计算机与信息学院所有专业 一、本课程的地位、任务和作用 现代数据库技术是计算机在数据处理应用领域中的主要内容和坚实基础;也是今后若干年内研究和应用的最活跃的分支之一。因此,信息管理、软件开发、计算机等专业的学生,特别是以应用为目标的学生都必须学习和具备数据库原理与应用的知识。本课程通过介绍Oracle数据库基本操作、体系结构与数据库基本管理使学生初步掌握大型数据库的基本原理,了解大型数据库的管理方法。了解大型数据库的管理方法,使学生熟练掌握Oracle数据库系统下的SQL语言运用及PL/SQL程序设计。 本课程是一门理论和实践相结合的课程,要求学生在完成本课程的学习以后,能够结合自己所熟悉的某一门高级语言和Oracle,开发出一个小型的数据库应用系统。 二、本课程的相关课程 本课程的先修课程为《计算机组成原理》,《离散数学》,《数据结构》,《计算机网络》及《数据库原理》等课程。 三、本课程的基本内容及要求 教学内容: 第一章数据库概述(2学时) 1、教学内容: 1.1数据库基础知识 1.2关系数据库系统 1.3 Oracle基础知识 (1)Oracle的发展历史 (2)Oracle的特点 第二章O racle体系结构(6学时) 1、教学内容: 2.1 Oracle 体系结构概述 2.2Oracle的存储结构 (1)物理存储结构 (2)逻辑存储结构 2.3Oracle的实例 (1)Oracle内存结构

(2)Oracle进程 2.4数据字典 2、教学重点:Oracle的物理结构、oracle实例、Oracle的逻辑结构 3、教学难点:数据库实例与进程 第三章O racle11g的安装(2学时) 1、教学内容: 3.1 Oracle 11g环境介绍 3.2Oracle 11g for Windows的安装 (1)安装Oracle 11g服务器 (2)Oracle 11g与Windows (3)安装Oracle 11g客户端 3.3 Oracle 11g 的卸载 2、教学重点:学会Oracle的安装 第四章O RACLE数据库管理工具及网络配置(2学时) 1、教学内容: 4.1 SQL*Plus命令 (1)设置SQL*Plus 运行环境 (2)常用SQL*Plus命令 (3)格式化查询结果 4.2 Oracle企业管理器 4.3 数据库配置助手 4.4 启动与关闭oracle实例 2、教学重点:学会使用SQL*Plus 第五章S QL语言基础(5学时) 1、教学内容: 5.1SQL简介 5.2SQL的基本语法 5.3数据查询语言 5.4数据操纵语言 5.5数据定义语言 5.6数据控制语言 5.7常用函数 5.8 事务处理 2、教学重点:数据查询语言、数据操纵语言、数据定义语言、数据控 制语言 3、教学难点:SQL的基本语法 第六章P L/SQL编程(8学时)(课本第6,7章) 1、教学内容: 6.1PL/SQL基础 (1)变量及声明 (2)数据类型 (3)表达式 (4)PL/SQL程序块结构 6.2PL/SQL控制结构

Oracle数据库基本数据类型

oracle基本数据类型

oracle 数据库中讨论char ,varchar ,varchar2 数据类型! 这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了? 首先我们先来分析3个数据类型的说明: 1。char CHAR的长度是固定的,最长2000个字符。 2。varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。 其次也有人认为varchar是最大长度为2000的可变字符串(和sql server中的varchar一致),而varchar2最大长度为4000。 知道了他们的特点我们就来讨论下使用区别 1.char和varchar、varchar2 由于varchar和varchar2用途类似,我们先来讨论char和他们的使用区别: varchar和varchar2比char节省空间,在效率上比char会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的

‘以空间换效率’。 varchar和varchar2虽然比char节省空间,但是如果一个varchar和varchar2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用char代替varchar和varchar2会更好一些。 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用char,以获得更高的效率。 2。varchar和varchar2 这里就进入重点了,前面的区别我们在sql server中我们已经基本了解了,大家可能都知道,最多也就是复习下,但oracle增加了一个varchar2类型,是大家以前所没有用到过的。 因为oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,还有其他数据中一般都有varchar这个数据类型。 所以我得出了以下结论: 如果想在oracle新版本的数据库兼容就不要用varchar,如果想和oracle 之外其他数据库兼容就不要用varchar2。 ORACLE中的数据类型分类 ORACLE中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1、字符数据类型:包括我CHAR,VARCHAR2,LONG。 CHAR型可以存储字母数字值,这种数据类型的 列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

ORACLE数据库基础测试题oracle数据库复习题

ORACLE数据库基础测试题 提示:本题为ORACLE数据库基础测试题,适合初学者对基础知识进行测试,以便查漏补缺。 1、 DDL指得就是:()。 A、数据定义语言 B、数据操作语言 C、数据查询语言 D、数据控制语言 正确答案:A解析: 2、 下列创建表语句正确得就是:(). A、create table emp(id number(4),); B、createtable emp(id number(4)); C、alter table emp(id number(4)) ; D、alter tableemp(id number(4),) ;

正确答案:B解析: 3、 下列Oracle函数中能够返回两个字符串连接后得结果得就是:()。 A、initcap B、instr C、trim D、concat 正确答案:D解析: 4、 下列SQL语句得查询结果就是:()。selectround(45、925,0),trunc(45、925)fromdual; A、4545 B、4645 C、4546 D、46 46 正确答案:B解析:

5、 关于函数nvl(d1,d2)得用法说法正确得就是:()。 A、表示如果d1为null则d2必须为null B、表示如果d1为null则忽略d2 C、表示如果d1不为null则用d2替代 D、表示如果d1为null则用d2替代 正确答案:D解析: 6、 显示emp表得所有行,所有列,下列SQL语句正确得就是:()。 A、select*fromemp; B、select all、*from emp; C、selectallfromemp; D、select/* from emp; 正确答案:A解析: 7、 查询职员得姓名及其直接领导,如果没有直接领导得职员,则显示为“NoManager",下列SQL语句正确得就是:()。

相关文档
相关文档 最新文档