SQL PLSQL测验

合集下载

sql语句模拟测试题

sql语句模拟测试题

SQL语句真题模拟测试姓名__________分数___________有如下四个表:查询测试:1、查询出在2号仓库工作的所有员工的工资,并且去掉重复值2、查询出工资在1230到1250之间的所有员工信息3、查询出供应商名中所有包含“子”字的供应商信息4、找出工资为1250元的职工号和城市5、查询出wh1仓库中共有多有个员工6、计算出每个仓库的人数,总工资和最高工资,字段分别显示为仓库号,人数,总工资和最高工资7、在订购单表中查询出还没有完成订单的订单信息8、找出和职工E4挣同样工资的职工号和工资9、找出还没有员工的仓库信息10、查询出工资大于或等于2号仓库中其中一名职工工资的的员工信息11、显示工资最高的30% 的员工信息操作测试:1、用SQL语句在职工表中插入记录(“WH4”,”E8”,1111)2、把所有面积小于500的仓库,面积在原来的基础之上扩大20%3、删除所有还没有完成订单的记录定义功能:1、在数据库中创建表的CREATE TABLE命令中定义主索引、实现实体完整性规则的短语是( )。

A) FOREIGN KEYB) DEFAULTC) PRIMARY KEYD) CHECK2、在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是( )。

A) 可以定义一个新的基本表结构B) 可以定义表中的主关键字C) 可以定义表的域完整性、字段有效性规则等D) 对自由表,同样可以实现其完整性、有效性规则等信息的设置3、"教师表"中有"职工号"、"姓名"和"工龄"等字段,其中"职工号"为主关键字,建立"教师表"的SQL命令是( )。

A) CREATE TABLE 教师表(职工号 C(10)PRIMARY,姓名 C(20),工龄I)B) CREATE TABLE 教师表(职工号 C(10)FOREIGN,姓名 C(20),工龄I)C) CREATE TABLE 教师表(职工号 C(10)FOREIGN KEY,姓名 C(20),工龄I)D) CREATE TABLE 教师表(职工号 C(10)PRIMARY KEY,姓名 C(20),工龄I)4、表名为Employee的表结构是(职工号,姓名,工资),建立表Employee的SQL命令是A) CREATE TABLE Employee(职工号 C(10),姓名 C(20), 工资 Y)B) CREATE Employee TABLE(职工号 C(10),姓名 C(20), 工资 Y)C) CREATE DATABASE Employee(职工号 C(10),姓名 C(20), 工资 Y)D) CREATE Employee DATABASE(职工号 C(10),姓名 C(20), 工资 Y5、从产品表中删除生产日期为2013年1月1日之前(含)的记录,正确的SQL语句是A) DROP FROM 产品 WHERE 生产日期<={^2013-1-1}B) DROP FROM 产品 FOR 生产日期<={^2013-1-1}C) DELETE FROM 产品 WHERE 生产日期<={^2013-1-1}D) DELETE FROM 产品 FOR 生产日期<={^2013-1-1}6、为"评分"表的"分数"字段添加有效性规则:"分数必须大于等于0并且小于等于10",正确的SQL语句是( )。

软件测试sql面试题

软件测试sql面试题

软件测试sql面试题在进行软件测试SQL面试之前,我们先来了解一下什么是软件测试和SQL。

软件测试是指通过执行特定的测试用例来检验软件的正确性、完整性、可用性等方面的过程。

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

在软件测试中,SQL通常用于检验和验证软件与数据库之间的数据交互和操作是否正常。

在面试中,面试官可能会提出一些关于SQL的问题,以考察你对SQL的理解和应用能力。

下面就是一些常见的软件测试SQL面试题及其解答,希望对你有所帮助。

问题一:请解释什么是SQL注入漏洞?答:SQL注入漏洞是指攻击者通过在应用程序的输入框中插入恶意数据库查询语句,从而实现对数据库的非授权访问或者执行不受控制的操作。

攻击者可以通过SQL注入漏洞获取敏感信息、修改数据或者执行其他恶意操作。

为防止SQL注入漏洞,应该对输入的数据进行合法性检查和过滤,并使用参数化查询或预编译语句来执行数据库操作。

问题二:请解释什么是数据库事务,并举例说明事务的使用场景。

答:数据库事务是指一组数据库操作,这些操作要么全部成功执行,要么全部回滚。

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

其中,隔离性是指多个事务并发执行时,每个事务都感觉不到其他事务的存在。

举例来说,假设一个银行系统中,用户从一个账户转账到另一个账户,这个操作可以看作是一个事务。

首先,系统会检查转账的两个账户是否存在,并验证转账金额是否合法;然后,系统会在数据库中扣除一个账户的金额并增加另一个账户的金额;最后,系统会确认转账操作是否成功,并更新账户余额。

问题三:请解释什么是数据库索引,并说明索引在软件测试中的作用。

答:数据库索引是一种数据结构,用于提高数据库查询的速度和效率。

它通过对特定列或组合列创建索引,可以加快数据库的检索速度,减少查询的时间复杂度。

常见sql测试用例

常见sql测试用例

常见sql测试用例
标题,常见SQL测试用例。

在软件开发过程中,SQL测试是非常重要的一环。

SQL测试用例是用来验证数据库系统是否按照预期的方式工作。

下面列举了一些常见的SQL测试用例,以供参考:
1. 数据库连接测试,确保数据库连接正常,能够成功连接到数据库服务器。

2. 数据库创建测试,验证数据库是否能够成功创建,并且包含了所需的表和字段。

3. 数据插入测试,测试数据是否能够成功插入到数据库中,并且插入的数据是否符合预期。

4. 数据查询测试,验证数据库查询功能是否正常工作,包括简单查询、复杂查询、嵌套查询等。

5. 数据更新测试,测试数据是否能够成功更新,并且更新后的
数据是否正确。

6. 数据删除测试,验证数据是否能够成功删除,并且删除后数
据库状态是否符合预期。

7. 数据完整性测试,测试数据库的完整性约束是否正常工作,
包括主键约束、外键约束、唯一约束等。

8. 数据性能测试,验证数据库的性能是否符合要求,包括查询
响应时间、并发访问能力等。

9. 存储过程和触发器测试,测试存储过程和触发器是否按照预
期工作,并且能够正确处理数据。

10. 数据备份和恢复测试,验证数据库备份和恢复功能是否正常,能够成功备份和恢复数据。

以上是一些常见的SQL测试用例,通过对这些测试用例的执行,可以有效地验证数据库系统的功能和性能,确保数据库系统能够按
照预期的方式工作。

PLSQL练习题一

PLSQL练习题一

PLSQL练习题一PL/SQL练习题在Oracle中所有的过程都是以PL/SQL块开始的,掌握PL/SQL 对于过程的开发是非常用用处的。

PL/SQL块的定义格式:范例:使用以上的语句,创建一个简单的程序块以上一个基本的语句块已经写完了,但是里面并没有任何的输出,之所以这样,主要原因在于SQLPLUSW中的系统输出没有打开,需要通过以下的命令完成:以上是一个简单的语句块,但是在PLSQL块中也可以直接进行数据库的查询操作。

范例:要求输入一个雇员的编号,之后显示出此编号雇员的姓名·如果要想输入雇员编号的话,第八章存在一个替代变量“&”此时已经可以查询出来了,但是以上的代码是否会存在其他问题呢?如果现在输入的编号不存在则有可能返回错误信息,那么为了让代码在出现错误之后依然可以正确的使用,则可以加入异常处理的操作机制。

但是,从以上的程序中可以发现,在SQLPLUSW中输出实际上并没有真正的意义,所以显示的格式也就没有必要做任何的调整。

在PL/SQL块中也可以编写循环、判断等语句。

可以使用循环操作:LOOP,循环这个时候一个循环语句就已经编写完成了。

此循环属于先执行后判断,所以可以使用另外一种循环语句:WHILE…LOOP。

那么,此种循环操作属于先判断后执行。

在PL/SQL中也可以使用FOR循环方式PLSQL中同样存在IF语句,执行条件的分支操作。

范例:给定一个值,要求判断其是否大于10,如果大于,则显示记录大于10条但是,以上的内容都属于固定好的结果,现在要求可以将emp表中的记录数进行验证。

也可以使用if..else语句If语句上还能继续扩展,if…elseif….else….但是需要注意的是,在Oracle中的else if要换成elsif那么,下面就可以利用以上的语句完成一些的复杂功能。

要求:要求输入一个雇员编号,为此雇员增长工资,增长工作按照以下的原则进行:·10部门人员工资上涨10%·20部门人员工资上涨20%·30部门人员工资上涨30%但是所有的工资最高不超过5000。

plsql使用教程

plsql使用教程

plsql使用教程PL/SQL是Oracle数据库的过程式编程语言,它结合了SQL的强大查询能力和程序设计语言的灵活性。

以下是一个简单的PL/SQL使用教程:1. 定义变量在PL/SQL中,可以使用DECLARE语句来定义变量。

例如:DECLAREnum INTEGER;name VARCHAR2(50);2. 使用SELECT查询数据可以使用SELECT语句从表中检索数据。

例如:SELECT * INTO num, name FROM employees WHERE employee_id = 100;3. 使用IF-THEN-ELSE进行条件判断PL/SQL提供了IF-THEN-ELSE语句来进行条件判断。

例如:IF num > 0 THENDBMS_OUTPUT.PUT_LINE('Number is positive');ELSEDBMS_OUTPUT.PUT_LINE('Number is negative');END IF;4. 使用FOR循环可以使用FOR循环来对一个集合进行迭代。

例如:FOR i IN 1..10 LOOPDBMS_OUTPUT.PUT_LINE('The value of i is: ' || i);END LOOP;5. 创建存储过程可以使用CREATE PROCEDURE语句来创建存储过程。

例如:CREATE PROCEDURE get_employee_details (p_employee_idIN NUMBER) ISv_employee_name VARCHAR2(50);BEGINSELECT employee_name INTO v_employee_name FROM employees WHERE employee_id = p_employee_id;DBMS_OUTPUT.PUT_LINE('Employee name is: ' ||v_employee_name);END;6. 调用存储过程可以使用EXECUTE语句来调用存储过程。

软件测试sql常见面试题

软件测试sql常见面试题

软件测试sql常见面试题1. 什么是SQL?SQL(Structured Query Language)是一种专门用于管理和操作关系型数据库的编程语言。

它允许用户查询、插入、更新和删除数据库中的数据,并且可以创建和管理数据库对象(例如表、视图、存储过程等)。

2. SQL中常用的数据类型有哪些?SQL中常用的数据类型包括:整数型(INT)、小数型(DECIMAL、FLOAT)、字符型(CHAR、VARCHAR)、日期型(DATE、TIME、DATETIME)等。

3. SQL中的DDL、DML和DCL分别代表什么?DDL(Data Definition Language)是数据定义语言,用于创建和管理数据库对象,例如创建表、视图等。

DML(Data Manipulation Language)是数据操作语言,用于插入、查询、更新和删除数据库中的数据。

DCL(Data Control Language)是数据控制语言,用于授权、撤销授权和修改数据库的权限。

4. 如何使用SQL查询数据?使用SELECT语句可以查询数据。

例如,SELECT * FROM table_name;即可查询某个表中的所有数据。

5. 如何在SQL中进行数据排序和分组?使用ORDER BY子句可以按照指定的列对查询结果进行排序。

例如,SELECT * FROM table_name ORDER BY col_name ASC;可以按照指定列的升序对查询结果进行排序。

使用GROUP BY子句可以根据指定的列进行分组。

例如,SELECT col_name1, SUM(col_name2) FROM table_name GROUP BY col_name1;可以按照指定列进行分组,并计算每组中指定列的总和。

6. 如何在SQL中进行数据筛选和联接?使用WHERE子句可以根据指定的条件对查询结果进行筛选。

例如,SELECT * FROM table_name WHERE col_name = 'value';可以筛选出指定列等于某个值的数据。

plsql面试题及答案

plsql面试题及答案

plsql面试题及答案PL/SQL面试题及答案1. 什么是PL/SQL?PL/SQL是一种过程化编程语言,旨在与Oracle数据库一起使用。

它是在标准SQL语言的基础上扩展而来的,具有更多的编程功能和控制结构。

PL/SQL可以用于编写存储过程、触发器、函数和包等数据库对象。

2. PL/SQL的优势是什么?PL/SQL具有以下几个优势:- 高性能:PL/SQL代码在数据库服务器上直接执行,减少了与数据库之间的通信开销,提高了性能。

- 数据库交互:PL/SQL可以与数据库进行高效交互,支持丰富的SQL语句和事务处理。

- 强大的编程功能:PL/SQL具有条件语句、循环语句、异常处理、游标等功能,使开发人员可以实现更复杂的业务逻辑。

- 结构化编程:PL/SQL支持模块化开发,可以将代码组织成存储过程、函数和包等可重复使用的单元。

- 安全性:PL/SQL提供了一系列的安全特性,包括访问控制、数据封装和异常处理等,确保数据的安全性和完整性。

3. PL/SQL中的控制结构有哪些?PL/SQL提供了以下控制结构:- 条件语句:IF-THEN、IF-THEN-ELSE、IF-THEN-ELSIF。

- 循环语句:LOOP、WHILE、FOR。

- 异常处理:EXCEPTION。

- CASE语句:CASE-WHEN-THEN。

- GOTO语句:用于跳转到指定的标签或代码块。

- NULL语句:用于忽略某些情况下的代码执行。

4. 如何定义变量和常量?在PL/SQL中,可以使用DECLARE语句定义变量和常量。

定义变量时需要指定变量的名称和数据类型,可以选择性地指定初始值。

例如:```sqlDECLAREemp_name VARCHAR2(100) := 'John Doe';emp_salary NUMBER := 5000;pi NUMBER := 3.14;max_attempts CONSTANT NUMBER := 3;```5. 如何使用游标?游标用于在PL/SQL中处理查询结果集。

OraclePLSQL测试题与答案(绝对经典)

OraclePLSQL测试题与答案(绝对经典)

Oracle PL/SQL测试题姓名:___ _________ 一、选择题1、Oracle数据库中为新创建的表分配的初始空间通常为多大(B)A、一个块、一个块B、一个区、一个区C、一个段、一个段D、c一个表空间一个表空间2、关于存储过程参数,正确的说法是(B)A、存储过程的输出参数可以是标量类型,也可以是表类型、存储过程的输出参数可以是标量类型,也可以是表类型B、存储过程输入参数可以不输入信息而调用过程、存储过程输入参数可以不输入信息而调用过程C、可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2))D、以上说法都不对、以上说法都不对3、下列说法,正确的说法是(B)A、只要在存储过程中有增删改语句,一定加自治事务、只要在存储过程中有增删改语句,一定加自治事务B、在函数内可以修改表数据、在函数内可以修改表数据C、函数不能递归调用、函数不能递归调用D、以上说法都不对、以上说法都不对4、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是(D)A、select * from 产品表产品表 where价格>1000 产品表B、select sum(价格所属分类 having max(价格价格)>1000 产品表 group by 所属分类价格) from 产品表C、select所属分类,sum(价格) from 产品表所属分类产品表 where 价格>1000 group by 所属分类D、select所属分类,sum(价格) from 产品表所属分类产品表 where max(价格)>1000 group by 所属分类5、关于触发器,下列说法正确的是(B)A、可以在表上创建INSTEAD OF 触发器触发器B、语句级触发器不能使用“:old”和“:new”C、行级触发器不能用于审计功能、行级触发器不能用于审计功能D、触发器可以显式调用、触发器可以显式调用6、下列那些是Oracle的伪列(ACD)A、ROWID B、ROW_NUMBER() C、LEVEL D、ROWNUM E、COLUMN 7、当表的重复行数据很多时,应该创建的索引类型应该是(、当表的重复行数据很多时,应该创建的索引类型应该是( C )A、B树B 、reverse C 、bitmap D 、函数索引、函数索引8、在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?(C )A 、primary key B 、unique C 、check D 、not null 9、利用游标来修改数据时,所用的。

plsql的测试的用法

plsql的测试的用法

plsql的测试的用法PL/SQL是一种用于创建存储过程、函数、触发器和包的编程语言,它是Oracle数据库特有的语言。

PL/SQL测试的主要目的是验证代码的正确性和性能。

PL/SQL测试可以采用以下几种方式:1.单元测试(Unit Testing):对于较小的代码块,比如函数或存储过程,可以编写针对这些代码块的单元测试。

单元测试通常包括输入数据的准备、对代码块进行调用,然后验证输出结果是否符合预期。

可以使用PL/SQL单元测试框架如UTPLSQL,或者自行编写测试代码进行单元测试。

2.集成测试(Integration Testing):对于涉及多个存储过程、函数或触发器的场景,可以编写集成测试来验证它们之间的协作和正确性。

集成测试通常模拟真实的使用场景,将多个代码块组合在一起进行测试。

可以使用PL/SQL单元测试框架或者其他测试框架来编写集成测试。

3.性能测试(Performance Testing):针对需要优化性能的存储过程或函数,可以进行性能测试来评估其执行效率。

性能测试可以通过模拟真实的负载情况,在不同的条件下测试代码的响应时间、资源消耗等指标。

可以使用Oracle提供的性能测试工具如SQL*Plus、SQL Developer等,或者第三方的性能测试工具。

除了常规的测试方法,还可以通过PL/SQL的调试工具来辅助测试。

Oracle提供了PL/SQL调试器,可以在执行代码的过程中逐步跟踪,查看变量的状态和运行时信息,以帮助发现问题。

此外,PL/SQL的测试还可以结合版本控制工具进行管理,以便在团队合作中进行代码的协同开发和维护。

总结来说,PL/SQL测试是一种保证代码质量和性能的重要手段,可以通过单元测试、集成测试和性能测试等方式,结合调试工具和版本控制,全面评估和验证代码的正确性和性能。

PLSQL基础教程三查询(SELECT)

PLSQL基础教程三查询(SELECT)

PLSQL基础教程三查询(SELECT)PL/SQL是一种用于数据库操作的编程语言,在PL/SQL中,查询(SELECT)是非常重要的部分之一、查询语句可以从数据库中检索数据,并根据条件进行过滤和排序。

在本教程中,我们将讨论PL/SQL中的SELECT语句以及与之相关的其他关键概念。

SELECT语句是PL/SQL中用于从一个或多个表中选择数据的核心语句。

它的基本语法如下:```SELECT列名FROM表名;```其中,列名是要选择的列的名称,可以是单个列,也可以是多个列,列之间用逗号分隔。

表名是要从中选择数据的表的名称。

例如,如果我们有一个名为 "employees" 的表,包含员工的姓名、年龄和工资信息,我们可以使用以下 SELECT 语句选择所有的员工信息:```FROM employees;```在这个例子中,"employees" 是表名,"*" 是通配符,表示选择所有的列。

在SELECT查询中,我们还可以使用WHERE子句来添加条件。

WHERE子句用于筛选出满足指定条件的记录。

例如,我们可以使用以下查询找出工资大于5000的员工:```FROM employeesWHERE salary > 5000;```在这个例子中,我们使用了">"这个操作符来比较工资和5000的大小。

只有工资大于5000的员工信息将被返回。

此外,我们还可以在SELECT语句中使用ORDERBY子句来对查询结果进行排序。

ORDERBY子句可以按照指定的列对结果进行升序或降序排序。

例如,我们可以使用以下查询按照工资降序排列员工信息:```FROM employeesORDER BY salary DESC;```在这个例子中,我们使用了"DESC"关键字来指定降序排序。

在SELECT查询中,我们还可以使用聚合函数来对数据进行计算。

plsql查询sql语句执行记录

plsql查询sql语句执行记录
在SQL窗口,使用快捷键plsql developer中按ctrl+e 就会调出历史记录了,历史记录文件默认保存在C:\Users\Administrator\AppData\Roaming\PLSQL Developer\PLSRecall.dat ,如果你清楚PLSRecall.dat文件后,在按ctrl+e就不会调出下列窗口界面了。
相信很多在plsqldeveloper调试oracle的朋友经常会遇到在plsqldeveloper执行的某一条sql语句没有保存那么我们在plsqldeveloper下如何找到我们执行过的sql语句呢其实通过下列方法很容易实现
plsql查询 sql语句执行记录
相信很多在plsql developer调试的朋友,经常会遇到在plsql developer执行的某一条SQL语句没有保存,那么我们在plsql developer下如何找到我们执行过的SQL语句呢,其实通 过下列很容易实现。 首先打开plsql developer

sql测试题和答案.docx

sql测试题和答案.docx

sql测试题和答案# SQL测试题1. 基础查询题- 题目:编写一个SQL查询,从`employees`表中选择所有员工的姓名和员工ID。

- 答案:`SELECT name, employee_id FROM employees;`2. 条件查询题- 题目:从`orders`表中选择所有订单金额超过1000的订单。

- 答案:`SELECT * FROM orders WHERE order_amount > 1000;`3. 排序题- 题目:从`products`表中选择所有产品的名称和价格,并按价格降序排列。

- 答案:`SELECT name, price FROM products ORDER BY price DESC;`4. 聚合函数题- 题目:计算`sales`表中所有销售额的总和。

- 答案:`SELECT SUM(sales_amount) AS total_sales FROM sales;`5. 分组查询题- 题目:从`sales`表中按产品ID分组,并计算每个产品的总销售额。

- 答案:`SELECT product_id, SUM(sales_amount) AStotal_sales_per_product FROM sales GROUP BY product_id;`6. 连接查询题- 题目:查询`customers`表和`orders`表,找出所有客户的姓名和他们下过的订单数量。

- 答案:`SELECT , COUNT(o.order_id) AS order_count FROM customers c JOIN orders o ON c.customer_id =o.customer_id GROUP BY ;`7. 子查询题- 题目:找出`employees`表中工资高于平均工资的员工的姓名和工资。

- 答案:`SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`8. 多表连接查询题- 题目:查询`employees`表和`departments`表,找出所有员工的姓名、部门名称和部门ID。

sql测试方法

sql测试方法

sql测试方法SQL测试是确保SQL查询、存储过程和数据库功能正常工作的关键过程。

以下是一些常见的SQL测试方法:1. 单元测试:针对每个SQL语句或存储过程进行测试,确保它们独立工作时表现正常。

2. 集成测试:将多个单元组合在一起测试,确保各个部分在集成时能正常工作。

3. 功能测试:验证SQL代码是否满足业务需求和预期功能。

4. 性能测试:检查SQL代码在给定条件下的性能,例如响应时间、吞吐量等。

5. 负载测试:模拟多用户同时访问数据库,以检测系统的负载能力。

6. 压力测试:超过正常工作负载的测试,以确定系统在极端条件下的行为。

7. 恢复测试:验证数据库备份和恢复过程的有效性。

8. 安全测试:检查SQL代码是否存在安全漏洞,如SQL注入等。

9. 边界条件测试:检查SQL代码在输入边界条件下的行为,例如空值、最大值、最小值等。

10. 数据完整性测试:确保数据在数据库中保持一致性和完整性。

11. 异常处理测试:验证SQL代码在异常条件下的行为,例如错误处理、捕获异常等。

12. 用户验收测试:由最终用户执行,以确保系统满足他们的期望和使用场景。

13. 灰盒测试:基于系统外部输入和输出进行测试,而不关心内部结构或实现。

14. 白盒测试:对系统内部结构和工作原理进行测试,通常需要访问源代码。

15. 黑盒测试:只关注系统的输入和输出,而不关心内部逻辑或实现。

在进行SQL测试时,选择合适的测试方法并根据实际情况进行调整是至关重要的。

使用自动化工具(如SQL Server Management Studio, MySQL Workbench, pgAdmin等提供的工具)可以帮助提高测试效率和准确性。

软件测试面试题 sql

软件测试面试题 sql

软件测试面试题 sql一、简介SQL(Structured Query Language)是一种用于管理关系型数据库系统的编程语言。

在软件测试中,SQL常被用于数据库测试,它可以用于创建、查询、更新和删除数据库中的数据。

二、常见面试题目以下是一些常见的SQL面试题目,供测试人员在准备面试时参考。

1. 查询表中所有数据可以使用SELECT语句来查询表中的所有数据。

例如,假设有一个名为"users"的表,包含"username"和"email"两个列,查询表中所有数据的SQL语句如下:SELECT * FROM users;2. 查询特定条件的数据可以使用WHERE子句来查询符合特定条件的数据。

例如,查询"users"表中用户名为"John"的数据的SQL语句如下:SELECT * FROM users WHERE username = 'John';3. 查询数据并按照某一列排序可以使用ORDER BY子句来将查询结果按照某一列的值进行排序。

例如,查询"users"表中所有数据,并按照用户名的字母顺序升序排列的SQL语句如下:SELECT * FROM users ORDER BY username ASC;4. 查询数据并统计满足条件的记录数可以使用COUNT函数来统计满足特定条件的记录数。

例如,查询"users"表中用户名为"John"的记录数的SQL语句如下:SELECT COUNT(*) FROM users WHERE username = 'John';5. 更新数据可以使用UPDATE语句来更新表中的数据。

例如,将"users"表中用户名为"John"的记录的邮箱更新为"****************"的SQL语句如下:UPDATEusersSETemail='****************'WHEREusername= 'John';6. 删除数据可以使用DELETE语句来删除表中的数据。

plsql练习题及答案

plsql练习题及答案

plsql练习题及答案标题:PL/SQL练习题及答案PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库中的一种编程语言,用于编写存储过程、触发器和函数等数据库对象。

在学习和掌握PL/SQL的过程中,进行一些练习题是非常有帮助的。

本文将为大家提供一些PL/SQL练习题及其答案,帮助读者加深对PL/SQL的理解和应用。

1. 编写一个PL/SQL程序,创建一个名为"employees"的表,包含以下字段:员工编号(emp_id),员工姓名(emp_name),员工职位(emp_position),员工工资(emp_salary)。

然后插入几条员工记录,并查询该表的所有数据。

答案:```sql-- 创建employees表CREATE TABLE employees (emp_id NUMBER,emp_name VARCHAR2(50),emp_position VARCHAR2(50),emp_salary NUMBER);-- 插入员工记录INSERT INTO employees VALUES (1, 'John', 'Manager', 5000);INSERT INTO employees VALUES (2, 'Jane', 'Developer', 4000);INSERT INTO employees VALUES (3, 'Mike', 'Analyst', 3500);-- 查询表的所有数据SELECT * FROM employees;```2. 编写一个PL/SQL程序,创建一个名为"get_employee_salary"的存储过程,该存储过程接收一个员工编号作为输入参数,并返回该员工的工资。

PLSQL查询作业

PLSQL查询作业

1.--编写多表查询语句的一般过程2.--(1)、分析句子要涉及到哪些表3.--(2)、对应的表中要查询哪些关联字段4.--(3)、确定连接条件或筛选条件5.--(4)、写成完整的SQL查询语句6.7.--1、查询出每一位雇员的姓名、职位、以及领导的姓名。

8.9.--结果10.雇佣姓名职位领导姓名11.---------- --------- ----------12.FORD ANALYST JONES13.SCOTT ANALYST JONES14.TURNER SALESMAN BLAKE15.ALLEN SALESMAN BLAKE16.WARD SALESMAN BLAKE17.JAMES CLERK BLAKE18.MARTIN SALESMAN BLAKELER CLERK CLARK20.ADAMS CLERK SCOTT21.BLAKE MANAGER KING22.JONES MANAGER KING23.CLARK MANAGER KING24.SMITH CLERK FORD25.26.13 rows selected27.28.--2、查询每个雇佣的雇佣编号,姓名、基本工资、职位、领导的姓名、部门名称及位置29.--结果30.编号姓名工资职位领导姓名部门名称所在位置31.----- ---------- --------- --------- ---------- -------------- -------------32. 7369 SMITH 800.00 CLERK FORD RESEARCH DALLAS33. 7499 ALLEN 1600.00 SALESMAN BLAKE SALES CHICAGO34. 7521 WARD 1250.00 SALESMAN BLAKE SALES CHICAGO35. 7566 JONES 2975.00 MANAGER KING ACCOUNTING NEW YORK36. 7654 MARTIN 1250.00 SALESMAN BLAKE SALES CHICAGO37. 7698 BLAKE 2850.00 MANAGER KING ACCOUNTING NEW YORK38. 7782 CLARK 2450.00 MANAGER KING ACCOUNTING NEW YORK39. 7788 SCOTT 3000.00 ANALYST JONES RESEARCH DALLAS40. 7844 TURNER 1500.00 SALESMAN BLAKE SALES CHICAGO41. 7876 ADAMS 1100.00 CLERK SCOTT RESEARCH DALLAS42. 7900 JAMES 950.00 CLERK BLAKE SALES CHICAGO43. 7902 FORD 3000.00 ANALYST JONES RESEARCH DALLAS44. 7934 MILLER 1300.00 CLERK CLARK ACCOUNTING NEW YORK45.14 rows selected46.47.--要求查询出每一个雇员的编号、姓名、工资、部门名称、工资在所在公司的工资等级48.--结果49.50.EMPNO ENAME SAL DNAME GRADE51.----- ---------- --------- -------------- ----------52. 7369 SMITH 800.00 RESEARCH 153. 7900 JAMES 950.00 SALES 154. 7876 ADAMS 1100.00 RESEARCH 155. 7654 MARTIN 1250.00 SALES 256. 7521 WARD 1250.00 SALES 257. 7934 MILLER 1300.00 ACCOUNTING 258. 7844 TURNER 1500.00 SALES 359. 7499 ALLEN 1600.00 SALES 360. 7782 CLARK 2450.00 ACCOUNTING 461. 7698 BLAKE 2850.00 SALES 462. 7566 JONES 2975.00 RESEARCH 463. 7902 FORD 3000.00 RESEARCH 464. 7788 SCOTT 3000.00 RESEARCH 465. 7839 KING 5000.00 ACCOUNTING 566.67.14 rows selected68.69.--或者70.--结果71.EMPNO ENAME SAL DNAME GRADE72.----- ---------- --------- -------------- ----------73. 7839 KING 5000.00 ACCOUNTING 574. 7902 FORD 3000.00 RESEARCH 475. 7788 SCOTT 3000.00 RESEARCH 476. 7566 JONES 2975.00 RESEARCH 477. 7698 BLAKE 2850.00 SALES 478. 7782 CLARK 2450.00 ACCOUNTING 479. 7499 ALLEN 1600.00 SALES 380. 7844 TURNER 1500.00 SALES 381. 7934 MILLER 1300.00 ACCOUNTING 282. 7521 WARD 1250.00 SALES 283. 7654 MARTIN 1250.00 SALES 284. 7876 ADAMS 1100.00 RESEARCH 185. 7900 JAMES 950.00 SALES 186. 7369 SMITH 800.00 RESEARCH 187.88.--还或者89.--结果90.EMPNO ENAME SAL DNAME GRADE 等级91.----- ---------- --------- -------------- ---------- ------------92. 7839 KING 5000.00 ACCOUNTING 5 第五等级工资93. 7902 FORD 3000.00 RESEARCH 4 第四等级工资94. 7788 SCOTT 3000.00 RESEARCH 4 第四等级工资95. 7566 JONES 2975.00 RESEARCH 4 第四等级工资96. 7698 BLAKE 2850.00 SALES 4 第四等级工资97. 7782 CLARK 2450.00 ACCOUNTING 4 第四等级工资98. 7499 ALLEN 1600.00 SALES 3 第三等级工资99. 7844 TURNER 1500.00 SALES 3 第三等级工资100. 7934 MILLER 1300.00 ACCOUNTING 2 第二等级工资101. 7521 WARD 1250.00 SALES 2 第二等级工资102. 7654 MARTIN 1250.00 SALES 2 第二等级工资103. 7876 ADAMS 1100.00 RESEARCH 1 第一等级工资104. 7900 JAMES 950.00 SALES 1 第一等级工资105. 7369 SMITH 800.00 RESEARCH 1 第一等级工资106.107.14 rows selected108.109.--左右连接110.--当(+)在连接条件的左边的时候,表示的是右连接111.--当(+)在连接条件的右边的时候,表示的是左连接112.113.--3、查询每个雇员的姓名和领导的姓名114.--结果115.雇员姓名领导姓名116.---------- ----------117.FORD JONES118.SCOTT JONES119.JAMES BLAKE120.TURNER BLAKE121.MARTIN BLAKE122.WARD BLAKE123.ALLEN BLAKELER CLARK125.ADAMS SCOTT126.CLARK KING127.BLAKE KING128.JONES KING129.SMITH FORD130.KING131.132.14 rows selected133.134.--4、统计出领取佣金和不领取佣金的雇员人数和平均工资135.--(此语句不完善,那位看了之后又什么想法的话欢迎大家回复)136.--结果137. COMM COUNT(EMPNO) AVG(SAL)138.--------- ------------ ----------139. 10 2342.5140. 1400.00 1 1250141. 500.00 1 1250142. 300.00 1 1600143. 0.00 1 1500144.145.--5、按照职位分组,求出每个职位的最高工资、最低工资以及平均工资146.--结果147.JOB COUNT(EMPNO) MAX(SAL) MIN(SAL) AVG(SAL)148.--------- ------------ ---------- ---------- ----------149.CLERK 4 1300 800 1037.5150.SALESMAN 4 1600 1250 1400151.PRESIDENT 1 5000 5000 5000152.MANAGER 3 2975 2450 2758.33333153.ANALYST 2 3000 3000 3000154.155.--6、统计平均工资最高和最低156.SELECT MAX(AVG(sal)),MIN(AVG(sal)) FROM EMP GROUP BY job;157.--结果158.MAX(AVG(SAL)) MIN(AVG(SAL))159.------------- -------------160. 5000 1037.5161.162.--7、查询出每个部门的名称、部门人数、平均工资163.--结果164.DNAME COUNT(E.EMPNO) NVL(AVG(E.SAL),0)165.-------------- -------------- -----------------166.ACCOUNTING 3 2916.66666666667167.OPERATIONS 0 0168.RESEARCH 5 2175169.SALES 6 1566.66666666667170.171.--8、查询出每个部门的名称、位置、部门人数、平均工资(这是一个多字段分组查询) 172.173.DEPTNO DNAME LOC COUNT(E.EMPNO) NVL(AVG(SAL),0) 174.------ -------------- ------------- -------------- ---------------175. 20 RESEARCH DALLAS 5 2175176. 40 OPERATIONS BOSTON 0 0177. 10 ACCOUNTING NEW YORK 3 2916.6666666666178. 30 SALES CHICAGO 6 1566.6666666666179.180.--9、统计平均工资大于2000的部门的详细信息181.--结果182.DEPTNO DNAME LOC AVG(E.SAL)183.------ -------------- ------------- ----------184. 20 RESEARCH DALLAS 2175185. 10 ACCOUNTING NEW YORK 2916.66666186.187.188.--10、显示非销售人员工资名称及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于5000,189.--给出的结果按月工资的合计升序排序:190.--结果191.JOB SUM(SAL)192.--------- ----------193.SALESMAN 5600194.ANALYST 6000195.MANAGER 8275196.197.198.--11、计算出工资比SMITH的要高的员工详细信息199.--结果200.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 201.----- ---------- --------- ----- ----------- --------- --------- ------202. 7499 ALLEN SALESMAN 7698 20-二月-81 1600.00 300.00 30 203. 7521 WARD SALESMAN 7698 22-二月-81 1250.00 500.00 30 204. 7566 JONES MANAGER 7839 02-四月-81 2975.00 20 205. 7654 MARTIN SALESMAN 7698 28-九月-81 1250.00 1400.00 30 206. 7698 BLAKE MANAGER 7839 01-五月-81 2850.00 30 207. 7782 CLARK MANAGER 7839 09-六月-81 2450.00 10 208. 7788 SCOTT ANALYST 7566 19-四月-87 3000.00 20 209. 7839 KING PRESIDENT 17-十一月-81 5000.00 10 210. 7844 TURNER SALESMAN 7698 08-九月-81 1500.00 0.00 30 211. 7876 ADAMS CLERK 7788 23-五月-87 1100.00 20 212. 7900 JAMES CLERK 7698 03-十二月-81 950.00 30 213. 7902 FORD ANALYST 7566 03-十二月-81 3000.00 20 214. 7934 MILLER CLERK 7782 23-一月-82 1300.00 10 215.216.13 rows selected217.218.--12、查询出工资高于公司平均工资的员工详细信息219.220.--结果221.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 222.----- ---------- --------- ----- ----------- --------- --------- ------223. 7566 JONES MANAGER 7839 02-四月-81 2975.00 20 224. 7698 BLAKE MANAGER 7839 01-五月-81 2850.00 30 225. 7782 CLARK MANAGER 7839 09-六月-81 2450.00 10 226. 7788 SCOTT ANALYST 7566 19-四月-87 3000.00 20 227. 7839 KING PRESIDENT 17-十一月-81 5000.00 10 228. 7902 FORD ANALYST 7566 03-十二月-81 3000.00 20 229.230. 6 rows selected1.--1、选择部门30的所有员工2.--结果3.4.5.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO6.----- ---------- --------- ----- ----------- --------- --------- ------7. 7499 ALLEN SALESMAN 7698 20-二月-81 1600.00 300.00 308. 7521 WARD SALESMAN 7698 22-二月-81 1250.00 500.00 309. 7654 MARTIN SALESMAN 7698 28-九月-81 1250.00 1400.00 3010. 7698 BLAKE MANAGER 7839 01-五月-81 2850.00 3011. 7844 TURNER SALESMAN 7698 08-九月-81 1500.00 0.00 3012. 7900 JAMES CLERK 7698 03-十二月-81 950.00 3013.14.--2、列出所有办事员(CLERK)的姓名,员工编号和部门编号15.--结果16.姓名员工编号部门编号17.---------- -------- --------18.SMITH 7369 2019.ADAMS 7876 2020.JAMES 7900 30LER 7934 1022.23.--3、找出佣金高于薪金的员工24.SELECT * FROM EMP WHERE NVL(comm,0)>sal;25.--结果26.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO27.----- ---------- --------- ----- ----------- --------- --------- ------28. 7654 MARTIN SALESMAN 7698 28-九月-81 1250.00 1400.00 3029.30.31.--4、找出佣金高于薪金60%的员工32.--结果33.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO34.----- ---------- --------- ----- ----------- --------- --------- ------35. 7654 MARTIN SALESMAN 7698 28-九月-81 1250.00 1400.00 3036.37.--5、找出部门10中的所有经理(MANAGER)和部门20的所有办事员(CLERK)的详细资料38.--结果39.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO40.----- ---------- --------- ----- ----------- --------- --------- ------41. 7369 SMITH CLERK 7902 17-十二月-80 800.00 2042. 7782 CLARK MANAGER 7839 09-六月-81 2450.00 1043. 7876 ADAMS CLERK 7788 23-五月-87 1100.00 2044.45.--6、找出部门10的所有经理(MANAGER),部门20中所有办事员(CLERK),既不是办事员也不是经理但是薪金大于2000的所有员工的详细资料46.47.--结果48.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO49.----- ---------- --------- ----- ----------- --------- --------- ------50. 7369 SMITH CLERK 7902 17-十二月-80 800.00 2051. 7782 CLARK MANAGER 7839 09-六月-81 2450.00 1052. 7788 SCOTT ANALYST 7566 19-四月-87 3000.00 2053. 7839 KING PRESIDENT 17-十一月-81 5000.00 1054. 7876 ADAMS CLERK 7788 23-五月-87 1100.00 2055. 7902 FORD ANALYST 7566 03-十二月-81 3000.00 2056.57. 6 rows selected58.59.60.--7、找出收取佣金的员工的员工的不同工作61.--结果62.JOB63.---------64.SALESMAN65.66.--8、找出不取佣金或者是收取佣金小于100的员工详细信息67.--结果68.EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO69.----- ---------- --------- ----- ----------- --------- --------- ------70. 7369 SMITH CLERK 7902 17-十二月-80 800.00 2071. 7566 JONES MANAGER 7839 02-四月-81 2975.00 2072. 7698 BLAKE MANAGER 7839 01-五月-81 2850.00 3073. 7782 CLARK MANAGER 7839 09-六月-81 2450.00 1074. 7788 SCOTT ANALYST 7566 19-四月-87 3000.00 2075. 7839 KING PRESIDENT 17-十一月-81 5000.00 1076. 7844 TURNER SALESMAN 7698 08-九月-81 1500.00 0.00 3077. 7876 ADAMS CLERK 7788 23-五月-87 1100.00 2078. 7900 JAMES CLERK 7698 03-十二月-81 950.00 3079. 7902 FORD ANALYST 7566 03-十二月-81 3000.00 2080. 7934 MILLER CLERK 7782 23-一月-82 1300.00 1081.82.11 rows selected83.84.--9、找出各月的倒数第三天受雇佣的员工85.--每个员工的雇佣时间是不一样的,所有需要找出每个员工雇佣的时间所在月份的最后一天,86.--之后按照‘日期-数字’的方式求出前三天的日期,这个日期必须和雇佣日期相符才能满足条件。

PLSQL Developer测试机制

PLSQL Developer测试机制
测试组—熊志豪
目录
1 概述 2 测试相关操作
3
实例
1 概述
在熟悉了PLSQL常规操作及SQL基础知识之后(详见 “PLSQL和SQL在测试中的应用”课件), 现在我们来一起看看 PLSQL的测试机制。 通常,在成功编译完一个程序(块)后,我们还需要对程序的 运行情况进行测试。这个时候,我们可以使用PLSQL Developer 的测试脚本功能模块。 测试脚本允许我们执行一个或者多个程序(块),定义输入/ 输出变量,观察或者指派变量值。另外,我们可以将程序执行过程 细节化(通过“单步进入”、“单步跳过”、“单步退出”、“运 行到下一个异常”等控件实现)。 有了上面的功能,在测试脚本运行过程中,如果发现一个“运 行时错误”,可以准确的发现程序的错误来源。
3 应用实例
3.2 测试步骤: 步骤一:创建测试脚本(两种方法,详见1.2.1 );
3 应用实例
3.2 测试步骤: 步骤二:参数初始化(向函数传入参数5);
3 应用实例
3.2 测试步骤: 步骤三:执行脚本并查询变量值;
3 应用实例
3.2 测试步骤: 步骤四
2.5 开启调试及测试工具栏作用: 程序设计缺陷通常是很难跟踪的,测试窗口提供了一个整合的 调试器,点击测试工具栏上的“开始”按钮,开启一个调试会话。 开启调试后,执行将暂停,此时可以使用测试工具栏上其他的 按钮来控制脚本的执行。 各按钮的作用如下: 执行脚本直至结束 单步进入脚本下一行(如果下一行包括,引起触发的update、 insert、delete语句,程序将跳转到相应的触发器) 单步跳过脚本下一行(下一行将被执行,但不进行跳转) 退出当前脚本单元 执行到下一个异常(程序会停在产生异常的那一行)
2 相关操作

Get清风OraclePLSQL经典练习题1

Get清风OraclePLSQL经典练习题1

Oracle---PL-SQL经典练习题1Oracle 作业题使用不同的程序块组件工作使用编程结构编写PL/SQL程序块处理PL/SQL程序块中的错误1.编写一个程序块,从emp表中显示名为“SMITH〞的雇员的薪水和职位。

declarev_emp emp%rowtype;beginselect * into v_emp from emp where ename='SMITH';('员工的工作是:'||||' ;他的薪水是:'||);end;2.编写一个程序块,接受用户输入一个部门号,从dept表中显示该部门的名称与所在位置。

方法一:〔传统方法〕declare%type;%type;%type;beginv_deptno :=&部门编号;select loc,dname into v_loc,v_dname from deptcp where deptno=v_deptno; ('员工所在地是:'||v_loc||';部门名称是:'||v_dname);exceptionwhen no_data_foundthen('您输入的部门编号不存在,请从新输入,谢谢');end;方法二:〔使用%rowtype〕declarev_dept dept%rowtype;beginselect * into v_dept from dept where deptno=&部门号;dbms_output.put_line(v_dept.dname||'--'||v_dept.loc);end;3.编写一个程序块,利用%type属性,接受一个雇员号,从emp表中显示该雇员的整体薪水(即,薪水加佣金)。

〔*期末考试试题*〕declarev_sal emp.sal%type;beginselect sal+comm into v_sal from emp where empno=&雇员号;dbms_output.put_line(v_sal);end;4.编写一个程序块,利用%rowtype属性,接受一个雇员号,从emp表中显示该雇员的整体薪水(即,薪水加佣金)。

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

SQL、PL/SQL测试
在ORACLE数据库中创建学生成绩管理系统,先创建以下两张表:
为上述两张表录入如下记录:
表tbstudent:
A、编写SQL语句查询男同学的XML平均成绩,要求列出姓名和成绩两列;
B、编写SQL语句查询出参加考试的各科成绩都及格的学员学号、平均成绩;
C、用一条SQL语句,查询出科目、该科目成绩60分以上的学生个数;
D、由于ORACLE的测试题目过难,导致大部分员考试成绩偏低,现要求你编写一个存储
过程实现给指定科目的成绩提分,通过调用该过程plus(‘ORACLE’)实现给ORACLE科目提分。

具体提分算法如下:给98分以下的每个人都加3分,若全班通过率达不到70%,则再给98分以下的每个人加3分,直到全班通过率达到70%为止。

相关文档
最新文档