Oracle数据库编程

合集下载

oracle 数据库建表语句

oracle 数据库建表语句

oracle 数据库建表语句【1.Oracle数据库简介】Oracle数据库是一款流行的关系型数据库管理系统,它可以处理大量数据并保证数据的高效存储、管理和检索。

Oracle数据库广泛应用于各个行业,为用户提供强大的数据处理能力。

【2.建表语句的基本结构】在Oracle数据库中,创建表的语句使用SQL(Structured Query Language)编写。

基本结构如下:```CREATE TABLE 表名(列名1 数据类型,列名2 数据类型,...,列名n 数据类型,PRIMARY KEY (列名1, 列名2,...),约束条件);```其中,表名、列名、数据类型和约束条件等可根据实际需求进行替换。

【3.实例:创建一个简单的用户表】以下是一个创建简单用户表的示例:```sqlCREATE TABLE users (id NUMBER PRIMARY KEY,username VARCHAR2(20) NOT NULL,password VARCHAR2(20) NOT NULL,email VARCHAR2(50),create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);```这个表包含了用户ID、用户名、密码、邮箱等字段,同时设置了主键、默认值和更新时间等约束。

【4.注意事项】在创建表时,请注意以下几点:1.表名、列名和数据类型需遵循命名规范,如使用英文字母、数字和下划线,避免使用特殊字符。

2.数据类型要根据实际需求选择,如字符串类型可以选择VARCHAR2、CHAR等。

3.设置主键和约束条件可以保证数据完整性,防止无效数据插入。

4.合理规划字段顺序,将经常一起查询的字段放在相邻位置,有利于提高查询效率。

oracle数据库菜鸟教程

oracle数据库菜鸟教程

oracle数据库菜鸟教程Oracle数据库是一种关系型数据库管理系统,被广泛应用于企业级数据管理和处理领域。

对于初学者而言,了解Oracle数据库以及如何使用它可能会感到有些困惑。

因此,本文将为初学者提供一个简明扼要的Oracle数据库菜鸟教程,旨在帮助他们快速入门。

第一部分:Oracle数据库概述首先,让我们来了解一下Oracle数据库的基本概念。

Oracle数据库是一种关系数据库管理系统(RDBMS),它基于集中式数据模型,其中数据存储在多个表中,并通过关系连接进行检索和操作。

Oracle数据库具有高度的可扩展性、可靠性和安全性,并可适用于各种规模的应用程序。

Oracle数据库使用结构化查询语言(SQL)作为其主要查询和操纵语言。

SQL是一种标准化的语言,用于在关系数据库中完成各种操作,包括数据检索、插入、更新和删除。

Oracle数据库还提供了一个图形用户界面(GUI)工具,称为Oracle SQL开发人员。

该工具可用于编写、执行SQL语句以及管理数据库对象,如表、视图、索引等。

第二部分:Oracle数据库安装和配置在使用Oracle数据库之前,首先需要安装和配置它。

下面是一些简单的步骤,可以帮助您完成这个过程:1. 下载Oracle数据库软件:您可以从Oracle官方网站上下载适合您操作系统的Oracle数据库软件。

2. 安装Oracle数据库软件:打开下载的软件包,并按照向导中的说明进行安装。

在安装过程中,您需要选择一些配置选项,如数据库实例名称、监听器端口等。

3. 创建Oracle数据库实例:在安装完成后,您需要创建一个数据库实例来存储和管理您的数据。

通过运行配置助手或使用命令行实用程序可以进行此操作。

4. 配置网络连接:如果您希望从远程计算机连接到Oracle数据库,需要配置网络连接设置。

这包括设置监听器以侦听来自客户端的连接请求。

5. 测试连接:最后,您可以使用Oracle SQL开发人员或其他SQL客户端工具来测试您的数据库连接是否正常工作。

JAVA连接ORACLE数据库步骤

JAVA连接ORACLE数据库步骤

JAVA连接ORACLE数据库步骤Java是一种跨平台的编程语言,可以用于连接和操作各种类型的数据库,包括Oracle数据库。

连接Oracle数据库的步骤如下:3. 加载驱动:在Java程序中加载Oracle数据库的驱动程序。

可以使用Class.forName(方法来加载驱动,如下所示:```Class.forName("oracle.jdbc.OracleDriver");```4. 创建连接:使用DriverManager类中的getConnection(方法创建与Oracle数据库的连接。

在连接方法中,需要传递数据库的URL、用户名和密码等参数。

例如:```String username = "your-username";String password = "your-password";Connection conn = DriverManager.getConnection(url, username, password);```5. 执行SQL语句:通过创建的连接对象,可以执行各种SQL语句来对数据库进行操作。

可以使用Statement或PreparedStatement对象来执行SQL语句。

例如,查询所有的表格:```Statement stmt = conn.createStatement(;ResultSet rs = stmt.executeQuery("SELECT * FROM ALL_TABLES");while (rs.next()String tableName = rs.getString("TABLE_NAME");System.out.println(tableName);```6. 关闭连接:在完成对Oracle数据库的操作后,需要关闭连接以释放资源。

可以调用Connection对象的close(方法来关闭连接,如下所示:```conn.close(;```以上是连接Oracle数据库的基本步骤。

Oracle数据库语法总结

Oracle数据库语法总结

Oracle数据库语法总结一、DDL(数据定义语言)1、创建、删除表(1)CREATE TABLE 语句用于在Oracle数据库中创建新表:CREATETABLE表名(列1数据类型(大小/长度)[NOTNULL][CONSTRAINT约束名]列2数据类型(大小/长度)[NOTNULL][CONSTRAINT约束名]……(2)DROP TABLE 语句用于从Oracle数据库中删除表:DROPTABLE表名2、更改表(1)ALTERTABLE语句用于更改现有的表:ALTERTABLE表名ADD(添加新的列),MODIFY(修改现有的列),DROP(删除现有的列)(2)RENAME语句用于更改表名:RENAME表名1TO表名23、创建索引(1)CREATEINDEX语句用于在表中创建索引:CREATEINDEX索引名ON表名(列1,列2,...)(2)DROPINDEX语句用于从表中删除索引:DROPINDEX索引名4、创建约束(1)Primary Key 约束:ALTERTABLE表名ADDCONSTRAINT主键名PRIMARYKEY(列名)(2)Foreign Key约束:ALTERTABLE表名ADDCONSTRAINT外键名FOREIGNKEY(列名)REFERENCES参照表名(参照列);(3)Unique 约束:ALTERTABLE表名ADDCONSTRAINT唯一约束名UNIQUE(列1,列2,...);(4)NOTNULL约束:ALTERTABLE表名ADDCONSTRAINT非空约束名NOTNULL(列1,列2,...);5、删除约束(1)Primary Key 约束:ALTERTABLE表名DROPCONSTRAINT主键名PRIMARYKEY;(2)Foreign Key约束:ALTERTABLE表名DROPCONSTRAINT外键名FOREIGNKEY;(3)Unique 约束:。

01 Oracle数据库PROC编程介绍

01 Oracle数据库PROC编程介绍

PROC是ORACLE数据库提供的编程接口之一,其应用十分的广泛,本文通过一个具体的例子,介绍PROC 编程的一些经验及应注意的地方。

例子程序:#include#include#include#include#includeEXEC SQL INCLUDE sqlca;/*RELEASE_CURSOR=YES 使PROC 在执行完后释放与嵌入SQL有关资源*/EXEC ORACLE OPTION (RELEASE_CURSOR = YES);EXEC SQL BEGIN DECLARE SECTION;varchar vc_user[20];long al_empno=0;char ac_ename[11]="";char ac_hiredate[20]="";double af_sal=0;EXEC SQL V AR ac_ename IS STRING(11);EXEC SQL V AR ac_hiredate IS STRING(20);EXEC SQL END DECLARE SECTION;/*错误处理函数*/void sql_error(char *msg){printf("\n%s,%ld,%s\n", msg,sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);EXEC SQL ROLLBACK RELEASE;exit(-1);}main(){EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE ERROR: ");/*连接数据库*/strcpy(vc_user.arr,"scott/tiger@DEMO");vc_user.len=16;exec sql connect :vc_user;EXEC SQL DECLARE cur_emp CURSOR FORSELECT EMPNO, ENAME,to_char(HIREDA TE,'yyyy/mm/dd hh24:mi:ss'),SAL FROM EMP;EXEC SQL OPEN cur_emp;while(1){al_empno=0;strcpy(ac_ename,"");strcpy(ac_hiredate,"");af_sal=0;EXEC SQL FETCH cur_emp INTO :al_empno, :ac_ename:ename_ind, :ac_hiredate:hiredate_ind, :af_sal:sal_ind;if( sqlca.sqlcode == 1403){break;}printf("empno=%ld,ename=%s,hiredate=%s,sal=%lf\n",al_empno,ac_ename,ac_hiredate,af_sal);}EXEC SQL CLOSE cur_emp;EXEC SQL ROLLBACK WORK RELEASE;}1、宿主变量的声明在PROC中,在SQL语句中用到的变量称为宿主变量。

plsql连接oracle配置

plsql连接oracle配置

PL/SQL连接Oracle配置
介绍
PL/SQL是一种针对Oracle数据库开发的过程性编程语言,可以用于创建存储
过程、函数和触发器等对象。

要使用PL/SQL连接Oracle数据库,需要进行一些
配置。

本文将介绍如何配置PL/SQL连接Oracle数据库。

步骤
步骤1:安装Oracle客户端
在连接Oracle数据库之前,需要先安装Oracle客户端。

Oracle客户端是连接Oracle数据库的驱动程序,在连接数据库时需要使用。

首先,从Oracle官方网站
下载合适的Oracle客户端版本,然后按照安装向导进行安装。

步骤2:配置Oracle客户端
安装完Oracle客户端后,需要进行一些配置以确保连接能够成功。

以下是必要的配置项:
•ORACLE_HOME:指定Oracle客户端的安装目录。

需要将ORACLE_HOME设置为安装目录的路径,以便PL/SQL可以找到需要的文件。

•PATH:将Oracle客户端的bin目录添加到系统的PATH环境变量中,以便PL/SQL能够找到Oracle客户端的可执行文件。

•TNS_ADMIN:设置TNS_ADMIN环境变量为一个目录的路径,在该目录下应该包含一个名为tnsnames.ora的文件,该文件包含了要连接的
Oracle数据库的连接信息。

步骤3:创建数据库连接
在PL/SQL中,可以通过创建一个数据库连接来连接Oracle数据库。

以下是创
建数据库连接的步骤:
1.打开PL/SQL开发工具,如PL/SQL Developer或SQL Developer。

2.单击工具栏上的。

oracle 循环造数 技巧

oracle 循环造数 技巧

oracle 循环造数技巧Oracle是一种功能强大的关系型数据库管理系统,它支持使用循环来生成和处理数据。

在本文中,我们将探讨一些Oracle中循环造数的技巧,以帮助您更好地利用这个强大的功能。

在Oracle中,使用循环生成数据的常见方法是使用PL/SQL中的循环结构。

PL/SQL是Oracle提供的一种过程化编程语言,可以与数据库进行交互。

下面我们将介绍一些常用的技巧。

1. 使用FOR循环生成连续数字序列在Oracle中,可以使用FOR循环生成连续的数字序列。

例如,要生成从1到10的数字序列,可以使用以下代码:```sqlBEGINFOR i IN 1..10 LOOPDBMS_OUTPUT.PUT_LINE(i);END LOOP;END;```上述代码中,FOR循环从1到10循环遍历,每次迭代都会将当前的数字打印出来。

2. 使用WHILE循环生成满足条件的数据除了使用FOR循环生成连续的数字序列外,还可以使用WHILE循环生成满足条件的数据。

例如,要生成小于100的偶数序列,可以使用以下代码:```sqlDECLAREi NUMBER := 0;BEGINWHILE i < 100 LOOPi := i + 2;DBMS_OUTPUT.PUT_LINE(i);END LOOP;END;```上述代码中,WHILE循环在i小于100的条件下循环遍历,每次迭代都会将当前的偶数打印出来。

3. 使用循环生成日期序列在Oracle中,可以使用循环生成日期序列。

例如,要生成从2022年1月1日到2022年12月31日的日期序列,可以使用以下代码:```sqlDECLAREstart_date DATE := TO_DATE('2022-01-01', 'YYYY-MM-DD');end_date DATE := TO_DATE('2022-12-31', 'YYYY-MM-DD');current_date DATE := start_date;BEGINWHILE current_date <= end_date LOOPDBMS_OUTPUT.PUT_LINE(current_date);current_date := current_date + 1;END LOOP;END;```上述代码中,使用WHILE循环遍历从开始日期到结束日期的每一天,并将其打印出来。

plsql 安装教程

plsql 安装教程

plsql 安装教程PL/SQL是Oracle数据库的编程语言,它基于SQL语言,用于开发和管理存储过程、触发器、函数等数据库对象。

下面是PL/SQL的安装教程:1. 首先,确保你已经安装了Oracle数据库。

PL/SQL是Oracle的一部分,所以你需要先安装Oracle数据库。

2. 下载Oracle SQL Developer。

Oracle SQL Developer是一个免费的集成开发环境,用于编写和调试PL/SQL代码。

你可以从Oracle官方网站下载最新版本的Oracle SQL Developer。

3. 打开Oracle SQL Developer,如果是第一次打开,会要求你设置JDK的路径。

选择你已经安装的JDK的路径,并点击确认。

4. 在Oracle SQL Developer的菜单中,选择“工具”>“首选项”>“数据库”>“PL/SQL编译器”。

5. 在“PL/SQL编译器”选项卡中,将“编译器类型”设置为“本地”。

6. 在同一个选项卡中,将“日志级别”设置为“带有错误”的选项。

7. 点击“应用”按钮,然后点击“确定”按钮。

8. 现在,你可以编写和执行PL/SQL代码了。

在SQLDeveloper的编辑器中,输入你的PL/SQL代码,然后点击绿色的运行按钮或按下Ctrl+Enter来执行代码。

注意:在执行PL/SQL代码之前,你需要连接到一个Oracle数据库实例。

在SQL Developer的连接向导中,输入你要连接的数据库实例的详细信息,然后点击测试连接按钮来测试连接是否成功。

这就是PL/SQL的安装教程。

安装完成后,你就可以开始使用PL/SQL开发和管理Oracle数据库对象了。

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

《Oracle数据库编程》练习一、选择题(未标明多选的均为单选题)1.关于Oracle中的实例描述,下列说法正确的是(多选):(cd )A.实例是保存在硬盘上的文件,它不会随着数据库的启动/关闭而存在或消失。

B.实例是内存中的结构,是一种访问数据库的方式。

C.可以用语句Select instance_name FROM v$instance获得实例名。

D.一个实例可以访问多个数据库。

2.关于数据类型Char和Varchar2的描述,下列说法正确的是(多选):(bd )A.Char和varchar2都是字符型数据,Char是变长字符型,Varchar2是定长字符型。

B.某个字段类型为Char(200),那么对于这个字段的任何记录来说,所占的实际长度都为200个字符。

C.某个字段类型为Varchar2(200),那么对于这个字段的任何记录来说,所占的实际长度都为200个字符。

D.对于相同长度的Char和Varchar2类型数据,char的性能通常要比varchar2高。

3.关于对空值的描述,下列说法正确的是:( a )A.包含空值的任何算术表达式结果都等于空。

B.包含空值的连接字符串|| 等于与空字符串连接,结果还是空值。

(实践过,不是空值) C.空值做为判断条件是写法是:判断字段=null。

(is null / is not null )D.表Emp中有5条记录,empID分别为1,2,3,4,5,那么查询语句Select * from Emp where empID not in (2,3,4,null)的执行后结果是2条记录。

(实践过,为0条记录)4.已知05年7月25日是星期一,那么函数TO_CHAR(NEXT_DAY(TO_DATE(’25-JUL-05’,’DD-MON-RR’),’MONDAY’),’DD-Month-YY YY’)结果是:( B )A.25-JULY-2005 B.01-August-2005C.25-JULY-2005 D.26-JULY-2005验证:select TO_CHAR(NEXT_DAY(TO_DATE('25-7月-05','DD-MON-RR'),'星期一'),'DD-Month-YYYY') from dual; (验证的时候注意数据库的字符集问题)5.如果EMPID所选的值是60494,下列函数执行后,结果是哪一项:(b )SELECT DECODE(empid,38475, 'Terminated',60494, 'LOA', 'ACTIVE') FROM EMP;A.60494 B.LOAC.Terminated D.ACTIVE6.查询语句SELECT SUBSTR(‘HelloWorld’,4,5) FROM DUAL;返回结果,正确的是:(a )A.loWor B.WorldC.lloWo D.lo Wo7.查询语句SELECT ROUND(13.57),ROUND(13.57,1),ROUND(13.57,-1),TRUNC (13.57,-2)FROM DUAL 返回结果,正确的是:( c )A.13.57,13.6,10,13B.13,13.5,14,0C.14,13.6,10,0D.13.6,13.5,11,138.语句WHERE SAL BETWEEN 1000 AND 4000 与下列哪个子句等价:( a )A.WHERE SAL>=1000 AND SAL<=4000B.WHERE SAL>1000 AND SAL<4000C.WHERE SAL>=1000 OR SAL<=4000D.WHERE SAL>=1000 AND SAL <40009.关于对UNION和UNION ALL的描述,下列描述正确的是(多选):(ac )A.UNION操作符返回两个查询结果集的并集,并去掉重复行。

B.UNION ALL操作符返回两个查询结果集的并集,并去掉重复行。

C.UNION操作符返回两个查询结果集的并集,并缺省按照第一列升序排序。

D.UNION ALL操作符返回两个查询结果集的并集,并缺省按照第一列升序排序。

10.数据库中有两张表,employees(雇员表),departments(部门表),如下图所示, 如果想要获得全部雇员的信息,不管这个雇员是否被分配了部门,以下答案正确的是:(d )A.SELECT last_name,department_name FROM employees JOIN departments(+)B.SELECT last_name,department_name FROM employees(+) JOIN departmentsC.SELECT last_name, department_name FROM employees e RIGHT JOIN departments d ON (e.department_id = d.department_id)D.SELECT last_name, department_name FROM employees e LEFT JOIN departments d ON (e.department_id = d.department_id)11.SQL语句SELECT department_id,job_id,avg(salary) FROM employees WHERE department_id = 100 GROUP BY job_id Having avg(salary)>2000中有错误的是哪一个子句:( a )A.SELECT子句B.WHERE子句C.GROUP BY子句D.Having子句12.关于子查询的描述,下列说法正确的是(多选):(abd )A.子查询必须要写在括号内。

B.子查询可以写在FROM,WHERE,HAVING子句中。

C.<ALL主要应用于多行子查询中,表示要小于子查询结果集的任意一个值即可。

D.子查询可以用在UPDATE的SET子句中。

13.关于模糊查询中通配符“_”描述正确的是:( b )A.“_”代表多个字符B.“_”代表一个字符C.“_”不能与“%”一同使用D.“_”代表代表零个或多个字符14.下列哪个约束只能定义在列级定义上:( b )A.UNIQUE B.NOT NULLC.CHECK D.PRIMARY KEYE.FOREIGN KEY15.关于约束PRIMARY KEY和UNIQUE描述正确的是:(b )A.PRIMARY KEY和UNIQUE都可以定义在一个或多个列上。

B.UNIQUE可以定义在多个列上,PRIMARY KEY不可以。

C.PRIMARY KEY和UNIQUE约束的列都可以为空值。

D.PRIMARY KEY 和UNIQUE约束在一个表中都可以有任意个。

16.关于对索引的描述,下列正确的是:(a )A.在一个表上可以建立多个索引。

B.索引可以增加查询的速度,所以建立索引越多越好。

C.索引通常建立在欲查询的表的数据量很大,并且查询最终得到的结果集也很大的情况下。

D.索引删除之后,索引所基于的表中的数据也被删除了。

17.SQL语句的执行顺序是:(c )○1select ○2from ○3where ○4group by ○5having ○6order byA.123456 B.234561C.234516 D.12456318.查看序列S1的当前值,应该使用下列的哪一项:( b )A.S1.NEXTVAL B.S1.CURRVALC.S1.MAXVAL D.S1.MINVAL19.关于ROWNUM的描述,下列正确的是:(d )A.ROWNUM是每个表中实际存在的列。

B.ROWNUM是每条查询语句执行完成之后,给每行数据填充的行号,行号从0开始。

(从1开始)C.ROWNUM做为条件表达式时,可以使用任何算术运算符。

D.ROWNUM经常用来做为分页查询。

20.关于TRUNCATE和DELETE命令,下列描述正确的是:(c )A.两者都属于DML语句。

B.两者都不属于DML语句。

C.执行TRUNCATE命令之后,该会话中先前未提交的事务自动提交。

D.执行TRUNCATE命令之后,该会话中先前未提交的事务自动回滚。

21.关于使用AlTER TABLE进行修改表的定义,下列描述正确的是(多选):(bcd )A.使用该命令可以修改表的名称B.使用该命令可以修改列的名称C.使用该命令可以修改列的数据类型D.使用该命令可以修改列的精度22.关于Oracle中对锁的描述正确的是:( d )A.修改某个表中的某行数据,Oracle会自动锁住整个表。

(验证过,只是锁住一行)B.执行查询语句,Oracle会自动对要查询的结果加上锁。

(没有锁上)C.锁在被相关操作申请并持有后,该操作执行结束后,会马上释放。

(事务结束后才释放)D.会话A在时间T1修改资源X,未提交;会话B在时间T2修改资源Y,未提交;会话A在时间T3修改资源Y,未提交;会话B在时间T4修改资源X;会产生死锁。

23.关于事务的描述,下列说法正确的是:( b )A.执行一个DDL或DCL语句后,事务自动开始。

B.执行一个DDL或DCL语句后,事务自动提交。

C.执行一个DDL或DCL语句后,事务自动回滚。

D.执行一个DDL或DCL语句后,对当前事务没有影响。

24.关于Oracle中用户的描述,下列选项正确的是(多选):(cd )A.Oracle中的所有用户都可以执行Create User命令。

(错)B.使用Create User命令新建一个用户之后,该用户自动拥有了登录权限。

(错)C.使用“Drop User 用户名cascade”命令执行删除用户之后,该用户下的所有对象也自动被删除。

D.用户的授权可以通过直接授权,也可以通过角色来间接授权。

25.对于权限的授予,下列说法正确的是:( d )A.WITH GRANT OPTION 选项可以实现系统权限的传递。

(对象权限)B.WITH ADMIN OPTION 选项可以实现对象权限的传递。

(系统权限)C.以上两种说法都正确。

D.以上两种说法都不正确。

26.下面哪个SQL语句可以查询出名字当中有’A_B’这样的员工?(单选) (d)A.select * from emp where ename like '%A\_B%' escape '\\';B.select * from emp where ename like '%A_B%' escape;C.select * from emp where ename like 'A_B%' escape '%';D、select * from emp where ename like '%A\_B%' escape '\';27.在SQL Plus当中,在命令提示行可以输入哪些命令(多选)?(abcd) A.pl/sql程序块B.SQL*Plus命令C.安全命令D.SQL命令28.在A、B两张表当中使用外连接A OUTER JOIN B,如果期望返回记录中包含B 表当中所有的记录,那么你在问号出需要写:(单选) dA.任何一种外连接B.左外连接C.交叉连接D.右外连接E.内连接29.下列语句当中对于日期型数据使用trunc语句正确的是(单选) c A.SELECT TRUNC(TO_DATE(12-Feb-99,DD-MON-YY, 'YEAR')) "Date " FROM DUAL;B.TRUNC = TO_DATE('12-Feb-99','DD-MON-YY'), 'YEAR', "Date " FROM DUAL;C.SELECT TRUNC(TO_DATE('12-Feb-99','DD-MON-YY'), 'YEAR') "Date " FROM DUAL;D.date = TRUNC(TO_DATE('12-Feb-99','DD-MON-YY'), 'YEAR') "Date " FROM DUAL; 30.预使用grant语句授予权限,你必须(多选):bdA.被授予GRANT ROLE PRIVILEGE系统权限B.被授予带有ADMIN OPTION的系统权限C.被授予GRANT ANY PRIVILEGE的系统权限D.被授予带有GRANT OPTION 的系统权限31.下列SQL是什么含义?(单选) bSELECT employee_id FROM employees WHERE commission_pct = .5 OR salary > 23000;A.返回那些工资的50%大于23000的员工信息B.返回那些佣金比率为50%或者工资大于23000的员工信息C.运行时错误D.语法错误32.下列哪个语句能够返回-33的绝对值并且显示别名为Absolute (单选)cA.SELECT ABS("-33") Absolute FROM DUAL;B.SELECT ABS('-33') "Absolute" FROM DUAL;C.SELECT ABS(-33) "Absolute" FROM DUAL;D.SELECT ABS(-33), Absolute FROM DUAL;33.学生表结构如下STD_ID NUMBER (4)COURSE_ID VARCHAR2 (10)START_DATE DATEEND_DATE DATE下列子句中哪些是正确的?ceA.SUM(start_date) (number类型)B.AVG(start_date) (number类型)C.COUNT(start_date)D.AVG(start_date, end_date) (参数无效)E.MIN(start_date)F.MAXIMUM(start_date) (没有这个函数)34.视图emp_dept_vu结构如下,哪些语句是错误的?(单选) eColumn Name Type RemarksFrom the EMPLOYEES table:EMP_NAME VARCHAR2 (30)JOB_ID VARCHAR2 (20)SALARY NUMBERDEPARTMENT_ID NUMBERFrom the DEPARTMENTS table:DEPT_NAME VARCHAR2 (30)A.SELECT * FROM emp_dept_vu;B.SELECT department_id, SUM(salary) FROM emp_dept_vu GROUP BY department_id;C.SELECT department_id, job_id, AVG(salary) FROM emp_dept_vu GROUP BY department_id, job_id;D.SELECT job_id, SUM(salary) FROM emp_dept_vu WHERE department_id IN (10,20)GROUP BY job_id HAVING SUM(salary) > 20000;E.全对,没有错误。

相关文档
最新文档