搜档网
当前位置:搜档网 › Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用+++

Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用+++

Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用+++
Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用+++

Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用1.ROLLUP

ROLLUP的作用相当于

SQL> set autotrace on

SQL> select department_id,job_id,count(*)

2 from employees

3 group by department_id,job_id

4 union

5 select department_id,null,count(*)

6 from employees

7 group by department_id

8 union

9 select null,null,count(*)

10 from employees;

最后面的SA_REP表示此jobid没有部门,为null

这里的union系统默认进行了排序

使用ROLLUP能达到上面GROUP BY的功能,但性能开销更小SQL> ed

已写入file afiedt.buf

1 select department_id,job_id,count(*)

2 from employees

3* group by rollup (department_id,job_id)

SQL> /

2.为什么ROLLUP会比GROUP BY性能好

ROLLUP(a,b,c)=a,b,c+a,b+a+All

通过一次全表扫描,得出a,b,c的分组统计信息后;分组统计a,b 相同,c不同的项即可得到a,b;依此类推……,就不用去多次全表扫描

3.ROLLUP的另类用法ROLLUP(a,(b,c))

ROLLUP((a,b))

SQL> ed

已写入file afiedt.buf

1 select department_id,job_id,count(*)

2 from employees

3* group by rollup ((department_id,job_id))

SQL> /

注意面的语句是group by rollup ((department_id,job_id))

不是group by rollup (department_id,job_id)

4.GROUPING函数的作用是放总记

如一个公司有多个部门,一个部门有多个岗位,一个岗位上有多个人

Rollup(部门,工作岗位) sum(每人的工资)

当部门的GROUPING为0,工作岗位的GROUPING也为0时,说明是公司发的总工资,此时放公司总计当部门的GROUPING为0,工作岗位的GROUPING也为1时,说明是部门发的总工资,此时放部门小记当部门的GROUPING为1,工作岗位的GROUPING也为1时,显示的是某部门某职位的工资和计SQL> SELECT department_id DEPTID, job_id JOB,

2 SUM(salary),

3 GROUPING(department_id) GRP_DEPT,

4 GROUPING(job_id) GRP_JOB

5 FROM employees

6 GROUP BY ROLLUP(department_id, job_id);

第一个SA_REP表示此jobid没有部门,为null

5.GROUPING SETS与GROUPING的作用是不同的

Oracle服务器计算GROUPING SETS子句中所有的组并将结果通过UNION ALL组合成一个结果集. GROUPING SETS的效果:1.只需要访问一次基表.2.不需要写很复杂的UNION语句.

SELECT department_id, job_id, null manager_id,avg(salary)

FROM employees

GROUP BY (department_id,job_id)

UNION ALL

SELECT null department_id, job_id, manager_id,avg(salary)

FROM employees

GROUP BY (job_id,manager_id)

等同于

SQL> set autotrace on

SQL> SELECT department_id, job_id,

2 manager_id,avg(salary)

3 FROM employees

4 GROUP BY GROUPING SETS ((department_id,job_id), (job_id,manager_id));

上面得到的是通过job_id,manager_id分组的avg(salary)

下面的是通过department_id,job_id分组的avg(salary)

Oracle中分析函数用法小结

Oracle中分析函数用法小结 一.分析函数适用场景: ○1需要对同样的数据进行不同级别的聚合操作 ○2需要在表内将多条数据和同一条数据进行多次的比较 ○3需要在排序完的结果集上进行额外的过滤操作 二.分析函数语法: FUNCTION_NAME(,...) OVER () 例: sum(sal) over (partition by deptno order by ename) new_alias sum就是函数名 (sal)是分析函数的参数,每个函数有0~3个参数,参数可以是表达式,例如:sum(sal+comm) over 是一个关键字,用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数 partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区 order by ename 是可选的order by 子句,有些函数需要它,有些则不需要.依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD,必须使用,其它函数,如AVG,则不需要.在使用了任何排序的开窗函数时,该子句是强制性的,它指定了在计算分析函数时一组内的数据是如何排序的. 1)FUNCTION子句 ORACLE提供了26个分析函数,按功能分5类 分析函数分类 等级(ranking)函数:用于寻找前N种查询 开窗(windowing)函数:用于计算不同的累计,如SUM,COUNT,AVG,MIN,MAX等,作用于数据的一个窗口上 例: sum(t.sal) over (order by t.deptno,t.ename) running_total, sum(t.sal) over (partition by t.deptno order by t.ename) department_total 制表(reporting)函数:与开窗函数同名,作用于一个分区或一组上的所有列 例: sum(t.sal) over () running_total2, sum(t.sal) over (partition by t.deptno) department_total2 制表函数与开窗函数的关键不同之处在于OVER语句上缺少一个ORDER BY子句! LAG,LEAD函数:这类函数允许在结果集中向前或向后检索值,为了避免数据的自连接,它们是非常有用的. VAR_POP,VAR_SAMP,STDEV_POPE及线性的衰减函数:计算任何未排序分区的统计值 2)PARTITION子句 按照表达式分区(就是分组),如果省略了分区子句,则全部的结果集被看作是一个单一的组 3)ORDER BY子句

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

Oracle练习题讲解

一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。 4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。 5.Where子句可以接收From子句输出的数据,而HA VING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。 6.在SQL语句中,用于向表中插入数据的语句是Insert。 7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select 语句。 8.使用Describe命令可以显示表的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。 11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。 12.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。 13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID 的主键约束。 ALTER TABLE Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp

Oracle-基本建表语句

--创建用户 create user han identified by han default tablespace users Temporary TABLESPACE Temp; grant connect,resource,dba to han; //授予用户han开发人员的权利 --------------------对表的操作-------------------------- 创建表格语法: create table 表名( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型是否为空 ); -增加主键 alter table 表名 add constraint 主键名 primary key (字段名1); -增加外键: alter table 表名 add constraint 外键名 foreign key (字段名1) references 关联表 (字段名2); 在建立表格时就指定主键和外键 create table T_STU ( STU_ID char(5) not null, STU_NAME varchar2(8) not null, constraint PK_T_STU primary key (STU_ID) ); 主键和外键一起建立: create table T_SCORE ( EXAM_SCORE number(5,2),

EXAM_DATE date, AUTOID number(10) not null, STU_ID char(5), SUB_ID char(3), constraint PK_T_SCORE primary key (AUTOID), constraint FK_T_SCORE_REFE foreign key (STU_ID) references T_STU (STU_ID) ) --创建表 create table classes( id number(9) not null primary key, classname varchar2(40) not null ) --查询表 select * from classes; --删除表 drop table students; --修改表的名称 rename alist_table_copy to alist_table; --显示表结构 describe test --不对没查到 -----------------------对字段的操作 ----------------------------------- --增加列 alter table test add address varchar2(40); --删除列 alter table test drop column address; --修改列的名称 alter table test modify address addresses varchar(40; --修改列的属性 alter table test modi

Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用+++

Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用1.ROLLUP ROLLUP的作用相当于 SQL> set autotrace on SQL> select department_id,job_id,count(*) 2 from employees 3 group by department_id,job_id 4 union 5 select department_id,null,count(*) 6 from employees 7 group by department_id 8 union 9 select null,null,count(*) 10 from employees;

最后面的SA_REP表示此jobid没有部门,为null 这里的union系统默认进行了排序 使用ROLLUP能达到上面GROUP BY的功能,但性能开销更小SQL> ed 已写入file afiedt.buf 1 select department_id,job_id,count(*) 2 from employees 3* group by rollup (department_id,job_id) SQL> /

2.为什么ROLLUP会比GROUP BY性能好 ROLLUP(a,b,c)=a,b,c+a,b+a+All 通过一次全表扫描,得出a,b,c的分组统计信息后;分组统计a,b 相同,c不同的项即可得到a,b;依此类推……,就不用去多次全表扫描 3.ROLLUP的另类用法ROLLUP(a,(b,c)) ROLLUP((a,b)) SQL> ed 已写入file afiedt.buf 1 select department_id,job_id,count(*) 2 from employees 3* group by rollup ((department_id,job_id)) SQL> / 注意面的语句是group by rollup ((department_id,job_id)) 不是group by rollup (department_id,job_id)

Oracle必背选择题

1.( )触发器允许触发操作的语句访问行的列值。(选一项) A、行级 B、语句级 C、模式 D、数据库级 2.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 3.CREATE TABLE 语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 4.imp命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、constranints B、tables C、full D、file 5.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项) A、当phone为字符串0000-0000时显示空值 B、当phone为空值时显示0000-0000 C、判断phone和字符串0000-0000是否相等 D、将phone的全部内容替换为0000-0000 6.ORACLE交集运算符是(选一项) A、intersect B、union C、set D、minus 7.ORACLE使用哪个系统参数设置日期的格式(选一项) A、nls_language B、nls_date C、nls_time_zone D、nls_date_format 8.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键

B、Rowid C、唯一索引 D、整表扫描 9.Oracle数据库中,下面()可以作为有效的列名。(选一项) A、Column B、123_NUM C、NUM_#123 D、#NUM123 10.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、drop B、delete C、truncate D、cascade 11.Oracle中, ( )函数将char或varchar数据类型转换为date数据类型。(选一项) A、date B、to_date C、todate D、ctodate 12.ORACLE中,执行语句:SELECT address1||','||address2||','||address2 "Address" FROM employ; 将会返回()列(选一项) A、0 B、1 C、2 D、3 13.Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、TO_CHAR B、LOWER C、MAX D、CEIL 14.partition by list(msn_id)子句的含义是(选一项) A、按msn_id列进行范围分区 B、按msn_id列进行列表分区 C、按msn_id列进行复合分区 D、按msn_id列进行散列分区 15.比较pagesize和linesize两个命令的特点,正确的是(选两项) A、pagesize命令用于设置屏幕上每一页包含的行数 B、linesize命令用于设置屏幕上每一行的字符数

Oracle 笔试题目带答案

1.( )程序包用于读写操作系统文本文件。(选一项) A、Dbms_output B、Dbms_lob C、Dbms_random D、Utl_file 2.( )触发器允许触发操作的语句访问行的列值。(选一项) A、行级 B、语句级 C、模式 D、数据库级 3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 4.CREATE TABLE 语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 5.imp命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、constranints B、tables C、full D、file 6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项) A、当phone为字符串0000-0000时显示空值 B、当phone为空值时显示0000-0000 C、判断phone和字符串0000-0000是否相等 D、将phone的全部内容替换为0000-0000 7.ORACLE交集运算符是(选一项) A、intersect B、union C、set D、minus 8.ORACLE使用哪个系统参数设置日期的格式(选一项) A、nls_language

B、nls_date C、nls_time_zone D、nls_date_format 9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键 B、Rowid C、唯一索引 D、整表扫描 10.Oracle数据库中,下面()可以作为有效的列名。(选一项) A、Column B、123_NUM C、NUM_#123 D、#NUM123 11.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、drop B、delete C、truncate D、cascade 12.Oracle中, ( )函数将char或varchar数据类型转换为date数据类型。(选一项) A、date B、to_date C、todate D、ctodate 13.ORACLE中,执行语句:SELECT address1||','||address2||','||address2 "Address" FROM employ; 将会返回()列(选一项) A、0 B、1 C、2 D、3 14.Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、TO_CHAR B、LOWER C、MAX D、CEIL 15.partition by list(msn_id)子句的含义是(选一项) A、按msn_id列进行范围分区 B、按msn_id列进行列表分区

Oracle查询语句基本命令一

oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.sodocs.net/doc/232820186.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户SQL> conn a/a

ORACLE基本SQL语句

ORACLE基本定义、操作语句 一、表 1.创建表 CREATE TABLE TAB_NAME ( COL_01 V ARCHAR2(10) NOT NULL, COL_02 NUMBER(8,2), COL_03 DATE ); 2.添加主键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束 ALTER TABLE TAB_NAME ADD CONSTRAINT UK_COL_02 UNIQUE(COL_02); 4.添加外键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT FK_COL0_03 FOREIGN KEY(COL_03) REFERENCES TAB_2(COL_03); 5.添加check约束 ALTER TABLE TAB_NAME ADD CONSTRAINT CHK_COL_03 CHECK(COL_01 <> ‘ABC’); 6.创建索引 ――创建唯一索引 CREATE UNIQUE INDEX IDX_NAME ON TAB_NAME(COL_01); ――创建非唯一索引 CREATE INDEX IDX_NAME ON TAB_NAME(COL_01); 7.给表添加一个新列 ALTER TABLE TAB_NAME ADD COL_04 V ARCHAR2(10); 8.修改列的数据类型 ALTER TABLE TAB_NAME MODIFY COL_04 NUMBER(8); 9.删除一列 ALTER TABLE TAB_NAME DROP COLUMN COL_04; 10.更改表的名称 ALTER TABLE TAB_NAME RENAME TO TAB_NEW_NAME; 11.更改表的列名 ALTER TABLE TAB_NAME RENAME COLUMN COL_04 TO COL_05; 12.给表和列添加注释说明 --add comments to the table COMMENT ON TABLE TAB_NAME IS‘示例表’; --add comments to the column COMMENT ON COLUMN TAB_NAME.COL_01 IS‘列名’; 13.删除表 DROP TABLE TAB_NAME; 14.MERGE merge into tj_test1 tt1

Oracle_D3试题

**学院课程考试试卷 课程名称:《Oracle:使用Oracle管理和查询数据》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 选择题(每题2分,共计100分) 1.以下()内存区不属于SGA(系统全局区 system global area)。见教材P.46 页 A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2.将以下结构从数据库开始按层次顺序排列()。 A.数据库段区块表空间 B.数据库段表空间块区 C.数据库表空间段区块 D.数据库表空间块段区 3.()模式存储数据库中数据字典的表和视图。见教材P.23页 A.DBA B.SCOTT C.SYSTEM D.SYS 4.在oracle中创建用户时,若未提及default tablespace 关键字,则oracle就将() 表空间分配给用户作为默认表空间。见教材P.11页 A.HR B.SCOTT C.SYSTEM D.SYS 5.()服务监听并接受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServerSID C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 6.关于程序全局区PGA的说法正确的是()。[选两项] A.PGA是共享的 B.PGA是非共享的 C.每个服务器进程都有一个私有的PGA D.每个客户端进程都有一个私有的PGA 7.oracle数据库的物理文件不包括()。见教材P.12页 A.数据文件 B.重做日志文件 C.控制文件 D.缓存文件 8.用于在客户端配置网络服务的文件是()。见教材P.26页 A.tnsnames.ora B.listener.ora C.sqlnet.ora D.tnsname(s).ora 9.数据定义语言是用于()的方法。 A.确保数据的准确性 B.定义和修改数据结构 C.查看数据 D.删除和更新数据 10.emp表包含下面这些列,ename varchar2,salary varchar2,hiredate date,管理部门 想要一份在公司工作了5年以上的员工名单,那句sql语可以显示需要的结果()。

Oracle中分组后拼接分组字符串

Oracle中分组后拼接分组字符串 先分组,再把分组后的属于某组的多条记录的某字段进行拼接。 实现方式如下: /* --创建表 test*/ create table test ( NO NUMBER, VALUE VARCHAR2(100), NAME VARCHAR2(100) ); /* ----插入数据*/ insert into test select * from ( select '1','a','测试1' from dual union all select '1','b','测试2' from dual union all select '1','c','测试3' from dual union all select '1','d','测试4' from dual union all select '2','e','测试5' from dual union all select '4','f','测试6' from dual union all select '4','g','测试7' from dual ); /*--Sql语句:*/ select No, ltrim(max(sys_connect_by_path(Value, ';')), ';') as Value, ltrim(max(sys_connect_by_path(Name, ';')), ';') as Name from (select No, Value, Name, rnFirst, lead(rnFirst) over(partition by No order by rnFirst) rnNext from (select a.No, a.Value, https://www.sodocs.net/doc/232820186.html,, row_number() over(order by a.No, a.Value desc) rnFirst from Test a) tmpTable1) tmpTable2 start with rnNext is null connect by rnNext = prior rnFirst group by No; /*--检索结果如下:*/ /*

Oracle复习

1.当Oracle服务器启动时,下列哪种文件不是必须的(D) A.数据文件 B.控制文件 C.日志文件 D.归档日志文件 2.在Oracle数据库的逻辑结构中有以下组件 A表空间B数据块C区D段 这些组件从大到小依次是(B) A.ABCD B.ADCB C.ACBD D.DACB 3.在Oracle中,下面用于限制分组函数的返回值的子句是(B)A.WHERE B.HAVING C.ORDER BY D.无法限定分组函数的返回值 4.在ORACLE中,游标都具有下列属性,除了(B) A.%NOTFOUND B.%ROWTYPE C.%ISOPEN D.ROWCOUNT 5.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句(C) A.OPEN B.CLOSE C.FETCH D.CURSOR 6.PL/SQL块中不能直接使用的SQL命令是(D)

B.INSERT C.UPDATE D.DROP 7.以下不属于数据更新的SQL动词是(C) A.INSERT B.UPDATE C.CREATE D.DELETE 8.查询"Staff"表中所有李姓员工的编号、姓名信息,可用(A)语句 A.SELECT sno,sname FROM staff WHERE sname LIKE '李%' B.SELECT sno,sname FROM staff WHERE sname LIKE '李_' C.SELECT sno,sname FROM staff WHERE sname IN '李%' D.SELECT sno,sname FROM staff WHERE sname IN '李_' 9.处理用户算定义的异常需要3个步骤,以下不属于其中步骤的是(B) A.定义异常 B.声明异常 C.触发异常 D.处理异常 10.存储过程中有3种类型参数,若没有为参数指定类型,则默认是(A)类型 A.IN B.OUT C.IN OUT D.OFF 11.段是表空间中一种逻辑存储结构,以下(D)不是ORACLE数据库使用的段类型 A.牵引段 B.临时段 C.回滚段 D.代码段

oracle9i常用操作

ORACLE9I日常操作 获取数据库日期 select sysdate from dual; 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C SQL> startup ORACLE instance started. 2、在双机环境下 要想启动或关闭ORACLE系统必须首先切换到root用户,如下 su -root a、启动ORACLE系统 hareg -y oracle b、关闭ORACLE系统 hareg -n oracle Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

Oracle数据库语句大全

Oracle数据库语句大全 一.入门部分 1.创建表空间 create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on; 2.删除表空间 drop tablespace schooltbs[including contents and datafiles]; 3.查询表空间基本信息 select *||tablespace_name from DBA_TABLESPACES; 4.创建用户 create user lihua identified by lihua default tablespace schooltbs temporary tablespace temp; 5.更改用户 alter user lihua identified by 123 default tablespace users; 6.锁定用户 alter user lihua account lock|unlock; 7.删除用户 drop user lihua cascade;--删除用户模式 8.oracle数据库中的角色 connect,dba,select_catalog_role,delete_catalog_role,execute_catalo g_role,exp_full_database,imp_full_database,resource 9.授予连接服务器的角色 grant connect to lihua; 10.授予使用表空间的角色 grant resource to lihua with grant option;--该用户也有授权的权限 11.授予操作表的权限 grant select,insert on user_tbl to scott;--当前用户 grant delete,update on https://www.sodocs.net/doc/232820186.html,er_tbl to scott;--系统管理员 二.SQL查询和SQL函数 1.SQl支持的命令: 数据定义语言(DDL):create,alter,drop 数据操纵语言(DML):insert,delete,update,select 数据控制语言(DCL):grant,revoke 事务控制语言(TCL):commit,savepoint,rollback 2.Oracle数据类型 字符,数值,日期,RAW,LOB 字符型 char:1-2000字节的定长字符

Oracle数据库常用的Sql语句

Oracle数据库常用的Sql语句 今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案. select table_name from all_tables;//所有的表明 select table_name from user_all_tables;//用户的所有的表 一下是转贴的sql语句的帖子. select * from user_objects; //查询所有的表 select * from dba_tables; //查询所有的表 select * from all_tables; //查询所有的表 select * from user_users //查出一个用户 select * from all_users //查询所有用户 select * from dba_users //查询所有用户 select name,dbid from v$database; //查询数据库名和它的ID select * from https://www.sodocs.net/doc/232820186.html,er_tab_columns; //查询表名,并显示列名 describe 表名//查询表结构 2: 查询数据库参数 show parameter db; 3:查询数据库的实例名 select instance_name from v$instance; 4: 数据库域名 数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用select value from v$parameter where name='db_domain' show parameter domain 5:数据库服务名 如果数据库有域名,则数据库服务名就是全局数据库名,如果该数据库没有定义域名,则数据库服务名与数据库名相同 show parameter service_name 6:显示当前用户 show user 7:直接登陆 sqlplus "/as sysdba" 8:当前ORACLE系统时间 select sysdate from dual; 9:查询数据库字典v$nls_parameter产看字符集相关参数 select * from v$nls_parameters; //************* oracle基本操作语句(适合初学者) oracle操作语句:

Oracle自测题-第1,2,3章

第1章Oracle数据库系统的结构与安装 选择题 1、下列有关ORACLE实例的说法哪个是错误的?(B) A. ORACLE实例主要由内存结构和迚程结构两部分组成 B. 每一数据库至少有一个与之对应的实例,一个实例可以打开和使用多个数据库 C. 每一个数据库可以由多个实例使用,但一个实例只能打开和使用一个数据库 D. 实例就是运行状态下的ORACLE软件,主要是由内存结构和一些迚程组成 2、以下哪些内存区域不是SGA的一部分?(B) A. 数据库缓冲区高速缓存 B.PGA C.重做日志缓冲区 D. 共享池 3、DBWR迚程是(C) A. 从Shared Pool读出被更新的数据写入DataFiles B. 从Shared Pool读出被更新的数据写入LogFiles C. 从Database Buffer Cache读出被更新的数据写入DataFiles D. 从Database Buffer Cache读出被更新的数据写入LogFiles 4、下面的描述中错误的是:(A) A. Oracle表的存储结构为:一个表就是一个物理文件,物理文件和表之间存在着绝对的一一对应关系。 B. 表空间由一个或多个数据文件组成。 C. 系统全局区(SGA)可由所有的服务器和用户迚程共享。 D. 段、区间、数据块是Oracle数据库的基本逻辑组织单位。 5、下面的描述中错误的是:(B )

A. 表空间由一个或多个数据文件组成。 B. 表中的数据存储在数据文件,索引等其他模式对象的数据不存储在数据文件中。 C. 数据块是Oracle I/O操作的最小单位。 D. 区间是由数据块组成的。 6、下面的描述中错误的是:(A) A. 程序全局区(PGA)可由所有的用户迚程共享。 B. Oracle使用表空间组织数据库,每个数据库至少有一个System表空间。 C. 数据块是Oracle I/O操作的最小单位。 D. 区间是由连续的数据块组成的。 7、下面的描述中错误的是:(C) A. 每个数据库必须至少有一个控制文件。 B. Oracle使用表空间组织数据库,每个数据库至少有一个System表空间。 C. 区间是Oracle I/O操作的最小单位。 D. 程序全局区(PGA)是由单个迚程使用的内存区域,它是不共享的;系统全局区(SGA)为所有数据库迚程所共享,是ORACLE的通信中心。 8、Oracle系统非正常关闭后,重新启动数据库时,执行一些数据库恢复操作的后台迚程是:(C) A. 恢复迚程 B. 检查点迚程 C. 系统监控迚程 D. 调度迚程 9、在用户迚程失败时迚行迚程恢复,释放用户迚程资源的后台迚程是:(C ) A. 系统监控迚程 B. 恢复迚程 C. 迚程监控迚程 D. 调度迚程 10、当某一个后台迚程出现时,Oracle将内存中的数据写回到磁盘的数据文件中,幵同时修改控制文件,这个后台迚程是:( B )

oracle基本操作语句(适合初学者)

1. select * from table_name where rownum>begin and rownum< end 2.sql = "select * from table" con.prepareCall("SELECT * FROM(SELECT A.*, rownum r FROM("+sql+") A WHERE rownum <= "+intPage*intPageSize+") B WHERE r > "+(intPage-1) *intPageSize); 今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案. select table_name from all_tables;//所有的表明 select table_name from user_all_tables;//用户的所有的表 一下是转贴的sql语句的帖子. select * from user_objects; //查询所有的表 select * from dba_tables; //查询所有的表 select * from all_tables; //查询所有的表 select * from user_users //查出一个用户 select * from all_users //查询所有用户 select * from dba_users //查询所有用户 select name,dbid from v$database; //查询数据库名和它的ID select * from https://www.sodocs.net/doc/232820186.html,er_tab_columns; //查询表名,并显示列名 describe 表名//查询表结构 select * from https://www.sodocs.net/doc/232820186.html,er_tab_columns where table_name=表名//查询指定表名的字段 2: 查询数据库参数 show parameter db;

相关主题