Oracle自测题-第3章_SQL语言基础与查询语句
第3章关系数据库标准语言SQL(习题集)
第3章关系数据库标准语言SQL(习题集)第三章习题集二、选择题1、SQL语言是(B )的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2、在视图上不能完成的操作是(C )。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图3、SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能(C )。
A.数据查询B.数据操纵C.数据定义D.数据控制4、SQL语言中,删除一个表的命令是(B)。
A.DELETE B.DROP C.CLEAR D.REMOVE5、SQL语言中的视图VIEW是数据库的(A )A.外模式B.模式C.内模式D.存储模式6、若要在基本表S中增加一列CN(课程名),可用(C )。
A、ADD TABLE S(CN CHAR(8))B、ADD TABLE S ALTER(CN CHAR(8))C、ALTER TABLE S ADD(CN CHAR(8))D、ALTER TABLE S(ADD CN CHAR(8))7、SQL查询语言的一种典型是:select x1,x2,﹒﹒﹒,x nfrom A1,A2,﹒﹒﹒,A mwhere F其中x i (i=1,2,﹒﹒﹒,n)、A j(j=1,2,﹒﹒﹒,m)、F分别是(A )。
A、字段名、目标表名、逻辑表达式B、字段名、目标表名,数值表达式C、目标表名、字段名、逻辑表达式D、目标表名、字段名、数值表达式8、下面列出的关于“视图”的选项中,不正确的是( C )。
A、视图是外模式B、视图是虚表C、使用视图可以加快查询语句的执行速度D、使用视图可以简化查询语句的编写9、SQL是一种结构化查询语言,集( C )功能于一体。
A、数据定义、数据操作、数据安全B、数据完整性、数据安全、数据并发控制C、数据定义、数据操作、数据控制D、数据查询、数据更新、数据输入输出10 在SQL语言中,子查询是( D )。
oracle的sql练习题
oracle的sql练习题1. 编写SQL查询语句,从员工表(EMPLOYEES)中选择工资(SALARY)大于5000的员工信息,按照工资的降序排列。
```sqlSELECT * FROM EMPLOYEES WHERE SALARY > 5000 ORDER BY SALARY DESC;```2. 编写SQL查询语句,从部门表(DEPARTMENTS)中选择部门名称(DEPARTMENT_NAME)、部门位置(LOCATION_ID)以及该部门员工的数量,按照员工数量的升序排列。
```sqlSELECT DEPARTMENT_NAME, LOCATION_ID, COUNT(*) AS EMPLOYEE_COUNTFROM DEPARTMENTSJOIN EMPLOYEES ON DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_IDGROUP BY DEPARTMENT_NAME, LOCATION_IDORDER BY EMPLOYEE_COUNT ASC;```3. 编写SQL查询语句,从员工表(EMPLOYEES)中选择员工的姓名(FIRST_NAME)以及所属部门的名称(DEPARTMENT_NAME),要求只选择属于部门名称以"E"开头的员工信息。
```sqlSELECT FIRST_NAME, DEPARTMENT_NAMEFROM EMPLOYEESJOIN DEPARTMENTS ON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_IDWHERE DEPARTMENT_NAME LIKE 'E%';```4. 编写SQL查询语句,从员工表(EMPLOYEES)中选择员工的姓名(FIRST_NAME)以及所属部门的名称(DEPARTMENT_NAME),要求只选择属于部门名称以"A"结尾的员工信息,且员工的工资(SALARY)在3000到6000之间。
oracle sql 试题及答案
oracle sql 试题及答案在Oracle数据库管理和开发中,SQL(Structured Query Language)是一种标准化的关系型数据库语言。
在这篇文章中,我们将提供一些Oracle SQL试题及其答案,旨在帮助读者巩固和加深对Oracle SQL语言的理解。
请注意,答案中不再重复题目,仅给出相应的解答。
1. 以下SQL语句中,哪一个用于创建一个名为"Employees"的表?CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,LastName VARCHAR2(50),FirstName VARCHAR2(50),DateOfBirth DATE);2. 在一个名为"Employees"的表中,你想要删除LastName为"Smith"的所有行。
你应该使用以下哪个SQL语句?DELETE FROM Employees WHERE LastName = 'Smith';3. 假设你有一个名为"Employees"的表,你想要增加一个名为"Salary"的列,数据类型为NUMBER(10,2)。
你应该使用以下哪个SQL 语句?ALTER TABLE Employees ADD (Salary NUMBER(10,2));4. 以下SQL查询语句将返回哪些列?SELECT LastName, FirstName FROM Employees;答案:该查询将返回"Employees"表中的LastName和FirstName列。
5. 以下SQL语句将返回"Employees"表中有多少条记录?SELECT COUNT(*) FROM Employees;答案:该查询将返回"Employees"表中的记录数。
(完整版)第三章SQL练习题参考答案
11、针对以上四个表,用SQL语言完成以下各项操作:①给学生表增加一属性Nation(民族),数据类型为Varchar(20);Alter table studentadd Nation Varchar(20);②删除学生表中新增的属性Nation;Alter table studentdrop column Nation;③向成绩表中插入记录(”2001110”,”3”,80);insert into Gradevalues('2001103','3',80);④修改学号为”2001103”的学生的成绩为70分;update Gradeset Gmark=70where Sno='2001103';⑤删除学号为”2001110”的学生的成绩记录;delete Gradewhere Sno='2001110';⑥为学生表创建一个名为,以班级号的升序排序;create index IX_Class on student(Clno ASC);⑦删除IX_Class索引Drop index IX_Class12、针对以上四个表,用SQL语言完成以下各项查询:①找出所有被学生选修了的课程号;select distinct cnofrom grade;②找出01311班女学生的个人信息;select *from studentwhere clno=01311 and ssex='女';③找出01311班、01312班的学生姓名、性别、出生年份;Select sname,ssex, year(getdata())-sage as ‘出生年份’from studentwhere clno in('01311','01312');④找出所有姓李的学生的个人信息;Select *from studentwhere sname like ’李%’;⑤找出学生李勇所在班级的学生人数;Select count(*)from studentwhere clno in (select clnofrom studentwhere sname= '李勇');⑥找出课程名为操作系统的平均成绩、最高分、最低分;Select avg(gmark),max(gmark),min(gmark)from gradewhere cno =(select cnofrom coursewhere cname='操作系统');⑦找出选修了课程的学生人数;Select count(distinct sno)from grade;⑧找出选修了课程操作系统的学生人数;Select count(sno)from gradewhere cno =(select cnofrom coursewhere cname='操作系统');⑨找出2000级计算机软件班的成绩为空的学生姓名。
第三章 SQL语言练习题和答案教学总结
第三章S Q L语言练习题和答案第三章 SQL语言一、选择题1. SQL语言是(B )的语言,容易学习。
A.过程化B. 非过程化C.格式化D. 导航式2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。
其中最重要的,也是使用最频繁的语句是(A)。
A. SELECTB. INSERTC. UPDATED. DELETE3. 在视图上不能完成的操作是()。
A. 更新视图B. 查询C. 在视图上定义新的表D. 在视图上定义新的视图4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制5. SQL语言中,删除一个视图的命令是()。
A.DELETEB.DROPC.CLEARD.REMOVE6. 在SQL语言中的视图VIEW是数据库的()。
A. 外模式B. 模式C. 内模式D. 存储模式7. 下列的SQL语句中,()不是数据定义语句。
A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT8. 若要撤销数据库中已经存在的表S,可用()。
A. DELETE TABLE SB. DELETE SC. DROP TABLE SD. DROP S9. 若要在基本表S中增加一列CN(课程名),可用()。
A.ADD TABLE S(CN CHAR(8))B.ADD TABLE S ALTER(CN CHAR(8))C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S (ADD CN CHAR(8))10. 学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的SQL语句是()。
A. DELETE Age from SB. ALTER TABLE S DROP AgeC. UPDATE S AgeD. ALTER TABLE S ‘Age’11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S #,C#,GRADE)。
Oracle自测题-第1,2,3章
第1章Oracle数据库系统的结构与安装选择题1、下列有关ORACLE实例的说法哪个是错误的?(B)A. ORACLE实例主要由内存结构和迚程结构两部分组成B. 每一数据库至少有一个与之对应的实例,一个实例可以打开和使用多个数据库C. 每一个数据库可以由多个实例使用,但一个实例只能打开和使用一个数据库D. 实例就是运行状态下的ORACLE软件,主要是由内存结构和一些迚程组成2、以下哪些内存区域不是SGA的一部分?(B)A. 数据库缓冲区高速缓存B.PGAC.重做日志缓冲区D. 共享池3、DBWR迚程是(C)A. 从Shared Pool读出被更新的数据写入DataFilesB. 从Shared Pool读出被更新的数据写入LogFilesC. 从Database Buffer Cache读出被更新的数据写入DataFilesD. 从Database Buffer Cache读出被更新的数据写入LogFiles4、下面的描述中错误的是:(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. 每个数据库必须至少有一个控制文件。
oracle练习题
Oracle 练习题一、基本概念1. Oracle 数据库是一种什么类型的数据库管理系统?2. 请简述 Oracle 数据库的主要特点。
3. Oracle 数据库中的表空间有什么作用?4. 什么是 Oracle 数据库的实例?5. Oracle 数据库中的数据字典是什么?二、SQL 基础1. 数据定义语言(DDL)1. 如何创建一个名为 `employees` 的表,包含字段`employee_id`(整数型),`employee_name`(字符串型)和`salary`(浮点型)?2. 如何修改表 `employees`,增加一个 `department_id` 字段?3. 如何删除表 `employees`?4. 如何重命名表 `employees` 为 `staff`?2. 数据操纵语言(DML)1. 向 `employees` 表插入一条新记录,`employee_id` 为 1001,`employee_name` 为 '',`salary` 为 8000。
2. 更新 `employees` 表中 `employee_id` 为 1001 的记录,将`salary` 修改为 9000。
3. 删除 `employees` 表中 `employee_id` 为 1001 的记录。
4. 如何查询 `employees` 表中 `salary` 大于 8000 的所有员工信息?3. 数据查询语言(DQL)1. 查询 `employees` 表中所有员工的信息。
2. 查询 `employees` 表中 `department_id` 为 2 的所有员工信息。
3. 查询 `employees` 表中 `salary` 最低的员工信息。
4. 查询 `employees` 表中按 `salary` 升序排列的前 5 条记录。
4. 数据控制语言(DCL)1. 如何给用户 `user1` 授予对 `employees` 表的查询权限?2. 如何撤销用户 `user1` 对 `employees` 表的查询权限?3. 如何创建一个角色 `role1`,包含对 `employees` 表的增、删、改、查权限?4. 如何将角色 `role1` 授权给用户 `user2`?三、函数与表达式1. 如何使用 Oracle 函数计算 `employees` 表中所有员工的年薪?2. 编写一个查询,返回 `employees` 表中 `employee_name` 的长度。
Oracle测试题及答案
Oracle试题(数据库技术及应用)学号姓名分数(一) 按照题意写出SQL语句(45分每题3分)本题用到下面三个关系表:借书卡card(cno卡号,name姓名,class班级)图书books(bno书号,bname书名,author作者,price 单价,quantity库存册数) 借书记录borrow (cno借书卡号,bno书号,rdate还书日期)注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束。
create table card(cno char(6) primary key,name varchar2(10),class varchar2(12));create table books(bno char(8) primary key,bname varchar2(50),author varchar2(10),price number(5,3),quantity number(4));create table borrow(cno char(6) references card(cno) on delete cascade,bno char(8) references books(bno) on delete cascade,rdate date,primary key(cno,bno));2.找出借书超过5本的读者,输出借书卡号及所借图书册数。
select cno,count(*) 册数from borrowgroup by cnohaving count(*)>5;3.查询借阅了“水浒”一书的读者,输出姓名及班级。
select name,classfrom cardwhere cno in (select cnofrom borrowwhere bno=(select bnofrom bookswhere bname='水浒'));4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
3-SQL语句练习题参考答案
标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。
A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。
B.SQL语言是一种高度过程化的语言。
C.SQL标准规定数据库是按三级模式结构构建。
D.SQL语言是关系型数据库的标准语言。
E.SQL语言是面向集合的语言。
2、SQL语言中,修改基本表结构的语句是( B )。
A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。
A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。
A.视图是一种“虚表”,它的数据被存放在基本表中。
B.视图提供了逻辑数据独立性。
C.不能通过视图来更新数据库中的数据。
D.视图能提供对数据的安全保护。
5、下面关于SELECT语句的叙述中,不正确的是(C)。
A.SELECT产生的结果是一个集合。
B.HA VING子句必须与GROUP BY子句一起使用。
C.可以省略FROM子句。
D.可以省略WHERE子句。
二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。
2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。
3、向表中插入元组时,主键的值不能取(NULL )值。
4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。
5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。
三、判断题1、SQL语言是面向集合操作的语言。
√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。
×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。
√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。
orcl基础练习题
orcl基础练习题Oracle Corporation(ORCL)是全球最大的企业级软件公司之一,它的产品广泛应用于数据库管理系统、云计算、商业智能等领域。
本文将为读者提供一些ORCL基础练习题,帮助其巩固相关知识和技能。
练习题一:SQL查询1. 查询所有学生的姓名、年龄和性别。
2. 查询所有成绩大于等于80分的学生的姓名和成绩。
3. 查询年龄在20岁到25岁之间的男生的姓名和年龄。
4. 查询年龄最小的学生的姓名、年龄和性别。
5. 查询每个班级的学生数量。
练习题二:表操作1. 创建一个名为“student”的表,包含字段:学号(id,整数型)、姓名(name,字符串型)、年龄(age,整数型)、性别(gender,字符串型)。
2. 向表中插入以下学生信息:(101, 'Alice', 20, 'Female'),(102,'Bob', 22, 'Male'),(103, 'Cathy', 21, 'Female'),(104, 'David', 23,'Male')。
3. 更新学号为102的学生的姓名为'John'。
4. 删除学号为104的学生。
练习题三:数据查询与操作有以下两张表:Table: Students学号(id)姓名(name)班级(class)101 Alice A1102 Bob A2103 Cathy A1104 David A3Table: Scores学号(id)课程(course)分数(score)101 Math 88102 Math 78103 Math 92101 English 90102 English 85103 English 88请根据以上表格回答以下问题:1. 查询每个学生的姓名、所在班级和总分数。
2. 查询每个学生的姓名、班级和平均分数。
(完整版)第3章SQL语言习题参考答案(新)
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8),CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
oracle数据库sql题目
oracle数据库sql题目Oracle数据库是一种关系型数据库管理系统(RDBMS),在企业中被广泛应用于数据存储和管理。
在这篇文章中,我们将介绍一些常见的Oracle数据库SQL 题目,帮助你更好地理解和应用SQL语言。
1. 查询所有表名在Oracle数据库中,我们可以使用以下SQL语句查询所有表名:```SELECT table_nameFROM all_tables;```该语句会返回当前用户下所有表的名称。
你还可以使用`user_tables`或`dba_tables`视图来查看不同用户或所有用户下的表名。
2. 查询表结构可以使用以下SQL语句查询表的结构,包括字段名和数据类型:```DESCRIBE table_name;```该语句将返回指定表的属性信息,如字段名、数据类型、长度等。
3. 查询表中的数据可以使用SELECT语句查询表中的数据,例如:SELECT * FROM table_name;```该语句将返回指定表中的所有数据。
你还可以使用WHERE子句添加条件来过滤结果:```SELECT * FROM table_name WHERE condition;```其中,`table_name`是要查询的表名,`condition`是查询条件。
4. 执行聚合函数Oracle数据库提供了多种聚合函数,可以计算一组数据的总和、平均值、最大值、最小值等。
例如:```SELECT COUNT(*) FROM table_name;```该语句将返回指定表中的记录数。
你还可以使用其他聚合函数如SUM、AVG、MAX、MIN等,来计算相应的值。
5. 插入数据使用INSERT语句可以向表中插入新的数据,例如:```INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);其中,`table_name`是要插入数据的表名,`column1, column2, ...`是要插入的列名,`value1, value2, ...`是要插入的值。
Oracle的sql语句练习题与答案
Oracle的sql语句练习题含答案(二)Oracle_SQL练习题11.选择部门30中的所有员工.2.列出所有办事员(CLERK)的姓名,编号和部门编号.3.找出佣金高于薪金的员工.4.找出佣金高于薪金的60%的员工.5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.7.找出收取佣金的员工的不同工作.8.找出不收取佣金或收取的佣金低于100的员工.9.找出各月倒数第3天受雇的所有员工.10.找出早于12年前受雇的员工.11.以首字母大写的方式显示所有员工的姓名.12.显示正好为5个字符的员工的姓名.13.显示不带有"R"的员工的姓名.14.显示所有员工姓名的前三个字符.15.显示所有员工的姓名,用a替换所有"A"16.显示满10年服务年限的员工的姓名和受雇日期.17.显示员工的详细资料,按姓名排序.18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.21.显示在一个月为30天的情况所有员工的日薪金,忽略余数.22.找出在(任何年份的)2月受聘的所有员工。
23.对于每个员工,显示其加入公司的天数.24.显示姓名字段的任何位置包含"A"的所有员工的姓名.25.以年月日的方式显示所有员工的服务年限.答案:1.select ename,job,mgr,hiredate,sal,comm ,deptno from emp where deptno=30;2.select ename,empno,deptno from emp where job='CLERK';3.select * from emp where comm>sal;4.select *from empwhere comm>sal*0.6;5.select empno ,ename, job,hiredate,sal,comm,deptnofrom empwhere( job='MANAGER' and deptno=10)or( job='CLERK' and deptno=20);6.select empno,ename,job, hiredate,sal, deptnofrom empwhere ( job='MANAGER' and deptno=10)or( job='CLERK' and deptno=20)or((job <>'MANAGER' and job<>'CLERK') and sal>=2000);7.select distinct ename,job,commfrom empwhere NVL(comm,0)>0;注意如果像上面这样写,就job ename comm 3个同时不同的都列出来正确的是:select distinct jobfrom empwhere NVL(comm,0)>0;8.select ename,comm. from emp where NVL(comm,0)=0 or NVL(comm,0)<100; 如果按上面的写法就重复了,直接可以写成select ename,commfrom empwhere NVL(comm,0)<100;9 select ename, job,last_day(hiredate)-3from emp;select ename, job,hiredatefrom empwhere hiredate=last_day(hiredate)-2;10.select ename,jobfrom empwhere months_between(sysdate,hiredate)/12>1211.select initcap(ename) name ,job, hiredatefrom emp;12. select ename,job,hiredate from emp where length(ename)=5;13 select ename, job from emp where ename not like '%R%';14.select substr(ename, 1,3) name,job,hiredate from emp;15select replace(ename, 'A','a') name,job,hiredate from emp;16select ename, job, hiredate from empwhere months_between(sysdate,hiredate)/12>=10;17. select * from emp order by ename;18.select ename, hiredate from emp order by hiredate desc;19.select ename,job, sal from emp order by job desc, sal asc;20.select ename, to_char(hiredate,'yyyy') year, to_char(hiredate,'mm') monthsfrom emporder by months, year asc;21.select ename, sal/30 dailysalfrom emp;22. select ename, hiredatefrom empwhere to_char(hiredate,'mm')='02';23. select ename,sysdate-hiredate 天数from emp;24.select ename from emp where instr(ename,'A',1)>0;25. select ename, to_char(hiredate,'yyyy/mm/dd') from emp;--26.列出至少有一个员工的所有部门.select dname from emp,dept where emp.deptno=dept.deptno group by dname;select distinct dname from emp,dept where emp.deptno=dept.deptno;--说明:(1)select中出现的字段一定要出现在group by中;-- (2)如果select中出现的字段不出现在group by中,则一定要出现在select的聚合函数中,对于想出现的字段,可用max()或min()。
SQL第三章练习(附答案)
SQL第三章练习(附答案)第三章练习1、SQL语言具有嵌入式和交互式两种使用方式2、SQL中,与‘NOT IN’等价的操作是 DA)=SOME B)<>SOME C)=ALL D)<>ALL3、假设有以下关系R,S,和T:R(BH,XM,XB,DWH)S (DWH,DWM)T(BH,XM,XB,DWH)(R)的SQL语句是select *实现σDWH=‘100’FROM RWHERE DWH IN ‘100’;4、设有如下关系R(NO,NAME,SEX,AGE,CLASS)1)插入“*****”班学号为30,姓名为“郑和”的学生记录的SQL语句是Insert into R(CLASS , NO, NAME )values(‘95031’,’30’,’郑和’);2)删除姓王的学生记录的SQL语句是Delate FROM RWHERE NAME LIKE ‘王%’;3)将所有“95101”班号改为95091的SQL语句是UPDATE R SET CLASS=‘95101’WHERE CLASS=‘95091’;5、已知有一数据库由四个表组成:student(sno,sname,ssex,sbirthday,class)、teacher(tno,tname,tsex,tbirthday,prof,depart)course(cno,cname,tno)score(sno,cno,degree)写出下列操作的SQL语句1)检索所有姓张的学生的学号和所在班级select sno,vclassFROM studentsWHERE sname LIKE ‘张%’;2)请统计出各班的人数并按升序排列select class.count(*)FROM studentsGROUP BY classORDER BY COUNT ASC;3)检索出成绩最低分大于70,最高分小于90的学生的姓名select snameFROM studentsWHERE sno IN (select sno FROM scoreGroup by snoHA VING MIN(DEGREE)>70 and MAX(DEGREE)<90);4)检索选修学生人数多于5人的某课程的任课教师姓名Select tname from teacherWhere tno in(select tno from courseWhere cno in(select cno from scoregroup by cnoHaving count(sno)>5))5)检索所有未任课的教师的姓名和所属系Select tname,departFrom teacherWhere tno not in(select tnoFrom course);6)检索选修4门以上课程的学生总成绩(不统计不及格的课程)Select sum(degree)sno from scoreWhere degree>60Group by snoHaving count(cno)>4;7)检索选修课程“C2”的学生中成绩最高的学生的学号Create view v-ssc(sno,sname,cno,cname,degree)As select student sno,sname,course,cno,cname,degreeFrom student,course,scoreWhere student.sno=score,snoAnd/doc/c49921051.html,o=http://www.doczj .com/doc/c49921051.html,o8)检索至少选修了“数据库”和“计算机网络”两门课程的学生的学号和姓名。
oracle sql语句面试题
oracle sql语句面试题在准备Oracle SQL面试时,对一些常见的SQL语句问题有所了解是非常重要的。
在面试过程中,考官可能会针对SQL的各个方面提问,包括查询、过滤、连接、排序等等。
下面是一些常见的Oracle SQL语句面试题,希望能帮您在面试中有所准备。
1. 简单查询1.1 请列出查找一个表中所有的行和列的SQL语句。
1.2 如何查找一个表中特定列的数据?1.3 如何查找满足一定条件的行?1.4 如何使用排序来对结果集排序?2. 连接查询2.1 如何进行简单的内连接查询?2.2 如何进行左连接和右连接查询?2.3 如何进行自连接查询?3. 分组和聚合函数3.1 如何使用GROUP BY子句进行列分组?3.2 如何使用聚合函数对分组结果进行计算?3.3 请列出一些常见的聚合函数有哪些?4. 子查询4.1 什么是子查询?如何使用子查询?4.2 如何在FROM子句中使用子查询?4.3 如何在WHERE子句中使用子查询?5. 表操作5.1 如何创建一个新表?5.2 如何向表中插入数据?5.3 如何更新表中的数据?5.4 如何删除表中的数据?6. 视图6.1 什么是视图?如何创建视图?6.2 如何在视图中使用聚合函数?6.3 如何在视图中更新数据?7. 索引7.1 什么是索引?如何创建索引?7.2 如何使用索引来加速查询?8. 事务控制8.1 什么是事务?如何控制事务?8.2 如何使用COMMIT和ROLLBACK控制事务?9. 数据库安全性9.1 如何创建和管理用户?9.2 如何为用户授予角色和权限?9.3 如何查看用户的权限?通过准备以上问题的答案,您将能够在Oracle SQL面试中更加自信。
请记住,除了对问题的准确回答外,还要注重语法的正确性和代码的整洁。
在面试中展示您的专业知识和技能将有助于提升您的竞争力。
祝您面试顺利!。
oracle数据库sql试题及答案
oracle数据库sql试题及答案Oracle数据库SQL试题及答案1. 如何查询员工表中所有员工的姓名和工资,要求工资从高到低排序?```sqlSELECT name, salaryFROM employeesORDER BY salary DESC;```2. 如何统计每个部门的员工人数?```sqlSELECT department_id, COUNT(*) AS employee_countFROM employeesGROUP BY department_id;```3. 如何查询工资高于平均值的员工信息?```sqlSELECT *FROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);```4. 如何找出没有直属上司的员工?```sqlSELECT *FROM employees e1WHERE NOT EXISTS (SELECT 1FROM employees e2WHERE e1.manager_id = e2.employee_id);```5. 如何查询工资在3000到5000之间的员工姓名和工资?```sqlSELECT name, salaryFROM employeesWHERE salary BETWEEN 3000 AND 5000;```6. 如何删除员工表中所有工资低于3000的员工记录?```sqlDELETE FROM employeesWHERE salary < 3000;```7. 如何更新员工表中所有部门为10的员工的工资,增加10%?```sqlUPDATE employeesSET salary = salary * 1.1WHERE department_id = 10;```8. 如何查询员工表中每个员工的姓名和他们直属上司的姓名?```sqlSELECT AS employee_name, AS manager_name FROM employees e1JOIN employees e2 ON e1.manager_id = e2.employee_id; ```9. 如何查询员工表中每个部门的平均工资?```sqlSELECT department_id, AVG(salary) AS avg_salary FROM employeesGROUP BY department_id;```10. 如何查询员工表中工资最高的员工信息?```sqlSELECT *FROM employeesWHERE salary = (SELECT MAX(salary) FROM employees); ```。
oracle sql题
Oracle SQL题1. 什么是Oracle SQLOracle SQL是一种用于与Oracle数据库进行交互的编程语言。
它是一种结构化查询语言(Structured Query Language),用于管理和操作关系型数据库中的数据。
Oracle SQL提供了丰富的功能和语法,可以执行各种数据库操作,如查询、插入、更新和删除数据,以及创建和管理数据库对象等。
2. Oracle SQL的基本语法2.1 查询数据在Oracle SQL中,可以使用SELECT语句来查询数据。
以下是一个简单的SELECT语句的示例:SELECT column1, column2, ...FROM table_nameWHERE condition;•column1, column2, …:要查询的列名•table_name:要查询的表名•condition:查询条件例如,要查询一个名为”employees”的表中所有员工的姓名和薪水,可以使用以下SELECT语句:SELECT name, salaryFROM employees;2.2 插入数据要向Oracle数据库中的表中插入数据,可以使用INSERT语句。
以下是一个简单的INSERT语句的示例:INSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);•table_name:要插入数据的表名•column1, column2, …:要插入数据的列名•value1, value2, …:要插入的数据值例如,要向一个名为”employees”的表中插入一条新的员工记录,可以使用以下INSERT语句:INSERT INTO employees (name, salary)VALUES ('John Doe', 5000);2.3 更新数据要更新Oracle数据库中的数据,可以使用UPDATE语句。
Oracle自测题-第3章_SQL语言基础与查询语句
第3章SQL语言基础与查询语句选择题1、执行以下语句出错的行是()SELECT deptno,dname,ename,salFROM emp,deptWHERE emp.deptno=dept.deptnoAND sal>1000;A. 第一行B. 第二行C. 第三行D. 第四行2、如果在where子句中有两个条件要同时满足,应该用哪个逻辑符来连接()A.ORB.NOTC.ANDD.NONE3、外连接的条件可以放在以下的那一个子句中()A.FROMB. WEHREC. SELECTD. HAVING4、在从两个表中查询数据时,连接条件要放在哪个子句中()A. FROMB. WHEREC. SELECTD. HAVING5、用以下哪个子句来限制分组统计结果信息的显示()A. FROMB. WEHREC. SELECTD. HAVING6、以下需求中哪个需要用分组函数来实现?()A. 把ORDER表中的定单时间显示成'DD MON YYYY' 格式B. 把字符串'JANUARY 28, 2000' 转换成日期格式C. 显示PRODUCT 表中的COST 列值总量D. 把PRODUCT表中的DESCRIPTION列用小写形式显示7、用以下的SQL语句查询数据库:SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description FROM inventoryWHERE price > 5.00ORDER BY "Part Number", 3;哪一句会产生错误? ()A. FROM INVENTORYB. WHERE PRICE > 5.00C. ORDER BY "PART NUMBER", 3;D. SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description8、以下操作符中哪个可以用做单行简单查询的操作符()A. =B. INC. LIKED. BETWEEN9、以下那些命令可以暗含提交操作?()A. GRANTB. UPDATEC. SELECTD. ROLLBACK10、Mr. King 是公司的总裁,手下有五个经理,每个经理手下都有若干下属。
ora03-基本查询语句
24
作业
以scott用户登录到数据库,查看部门表dept和雇员表emp的表结构 显示所有部门的详细信息 (dept表) 显示所有雇员名、工资补助及实发工资并处理null(使用NVL函数和 emp表) 查询emp表显示所有部门,并取消重复值 用一个逗号和一个空格将姓名和工作连接后作为一个整体输出, 显示的列标题为Employees and Title
22
23
小测验
下列哪条语句是错误的? A. select empno,ename name,sal salary from emp; B. select empno,ename name,sal as salary from emp; C. select ename,sal*12 as "Annual Salary" from emp; D. select ename,sal*12 Annual Salary from emp;
6
算术运算符(Arithmetic Operators)
7
使用算术运算符
8
9
运算符优先级
10
使用圆括号
11
NULL空值
12
13
ቤተ መጻሕፍቲ ባይዱ
14
15
16
17
18
19
20
21
显示表结构 在iSQL*Plus中,可以用DESCRIBE命令显示表的结构。 该命令显示列名和数据类型,以及是否列中必须有数据。 在语法中: tablename 是对该用户任意存在的表、视图或同义词 的名字
24小测验显示所有部门的详细信息dept表显示所有雇员名工资补助及实发工资并处理null使用nvl函数和emp表用一个逗号和一个空格将姓名和工作连接后作为一个整体输出显示的列标题为employeestitle25作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章SQL语言基础与查询语句选择题1、执行以下语句出错的行是()SELECT deptno,dname,ename,salFROM emp,deptWHERE emp.deptno=dept.deptnoAND sal>1000;A. 第一行B. 第二行C. 第三行D. 第四行2、如果在where子句中有两个条件要同时满足,应该用哪个逻辑符来连接()A.ORB.NOTC.ANDD.NONE3、外连接的条件可以放在以下的那一个子句中()A.FROMB. WEHREC. SELECTD. HAVING4、在从两个表中查询数据时,连接条件要放在哪个子句中()A. FROMB. WHEREC. SELECTD. HAVING5、用以下哪个子句来限制分组统计结果信息的显示()A. FROMB. WEHREC. SELECTD. HAVING6、以下需求中哪个需要用分组函数来实现?()A. 把ORDER表中的定单时间显示成'DD MON YYYY' 格式B. 把字符串'JANUARY 28, 2000' 转换成日期格式C. 显示PRODUCT 表中的COST 列值总量D. 把PRODUCT表中的DESCRIPTION列用小写形式显示7、用以下的SQL语句查询数据库:SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description FROM inventoryWHERE price > 5.00ORDER BY "Part Number", 3;哪一句会产生错误? ()A. FROM INVENTORYB. WHERE PRICE > 5.00C. ORDER BY "PART NUMBER", 3;D. SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description8、以下操作符中哪个可以用做单行简单查询的操作符()A. =B. INC. LIKED. BETWEEN9、以下那些命令可以暗含提交操作?()A. GRANTB. UPDATEC. SELECTD. ROLLBACK10、Mr. King 是公司的总裁,手下有五个经理,每个经理手下都有若干下属。
以下代码的执行结果是:未选定行SELECT employee.ename FROM emp employeeWHERE employee.empno not in (SELECT manager.mgr FROM emp manager);是什么原因导致如此?()A. 所有的雇员均有领导B. 子查询结果集中只有一条记录C. 子查询结果集中出现一个空值D. IN运算符不能用在多行子查询中11、用下面的语句查询数据库:SELECT price FROM inventoryWHERE price BETWEEN 1 AND 50 OR (price IN(25,70,95)AND price BETWEEN 25 AND 75);下面哪一个值将会被查询到?()。
A.30 B.51 C.75 D.9512、下面哪一个操作返回数字值?()。
A.‟01-2月-1998‟+25B.‟03-10月-1997‟-30C.‟07-7月-1997‟+(480/24)D.to_date(‟01-1月-1998‟)-to_date(‟01-10月-1996‟)13、下面哪两个操作返回日期型?允许多选()。
A.to_date('01-2月-1998')+25B.(to_date('01-1月-1998')-to_date('01-10月-1996'))/7C.to_date('01-2月-1998')+12/24D.to_date('01-1月-1998')-to_date('01-10月-1996')14、查看已经建立了哪些表,下面哪些语句能够完成这个任务?(须多选)()A.desc user_tables;B.select table_name from user_tables;C.select table_name from user_tab_columns;D.select * from tab;15、如果要输出姓王的学生名单,在where子句中最好用哪一个操作符?()A.= B.INC.LIKE D.BETWEEN16、如果希望进行分组统计的查询输出,可以使用哪个子句。
()A.SELECT B.GROUP BYC.HA VING D.ORDER BY17、表SERVICE的内容如下:MACHINE_ID TECHNICIAN_ID SERVICE_DATE---------- --------------- -------------600252 456123 31-六月-1997980076 21-十月-1996458745 456123 21-六月-1997985625 874512 20-四月-1997785214 879514 18-五月-1997执行下面的语句后,哪一个的值将排在最后?()。
SELECT machine_id,service_date FROM serviceORDER BY technician_id,service_date;A.458745 B.785214C.600252 D.98007618、要查询表EMP中ENAME的第2个字母为A的所有的人,请选择正确的查询语句。
()A. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ‟_A%‟;B. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME=‟_A%‟;C. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE AS ‟_A%‟;D. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ‟?A*‟;19、SELECT DEPTNO DNO,DNAME DNA,LOC DLOC FROM DEPT A WHEREA.DEPTNO BETWEEN 10 AND 20 AND DNAME>‟B‟ AND DLOC …NEW YORK‟; ()请选择对上述语句有错的正确描述。
A.A.DEPTNO的字段描述方式错。
B.WHERE子句有的表达式返回值不能进行逻辑运算。
C.WHERE子句不能用别名。
D. 以上三个描述都不对。
20、列出表EMP中ENAME和HIREDA TE的所在年月的第一天()A. SELECT ENAME,ROUND(HIREDATE,‟MM‟) XDATE FROM EMPB. SELECT ENAME,TOCHAR(HIREDATE,‟YYYY-MM‟)||‟-01‟ XDATE FROM EMPC. SELECT ENAME,TOCHAR(HIREDATE,‟YYYY-MM‟)+‟-01‟ XDATE FROM EMPD. SELECT ENAME,TO_CHAR(HIREDATE,‟YYYY-MM‟)+‟-01‟ XDA TE FROM EMP21、查询表EMP中不同DEPTNO的SAL字段的分类合计值()A. SELECT DEPTNO,TOTAL(SAL) FROM EMP GROUP BY DEPTNOB. SELECT DEPTNO,SUM(SAL) FROM EMP GROUP BY DEPTNOC. SELECT ENAME,TOTAL(SAL) FROM EMP GROUP BY DEPTNOD. SELECT ENAME,SUM(SAL) FROM EMP GROUP BY DEPTNO22、查询表EMP的任意10条记录。
()A.SELECT * FROM EMP WHERE ROWNUM<=11B. SELECT * FROM EMP WHERE ROWNUM<11C. SELECT * FROM EMP WHERE ROWID<=11D. SELECT * FROM EMP WHERE ROWID<1123、查询一个序列SEQ_HZ的新值()A.SELECT SEQ_HZ.NEXT FROM DUALB. SELECT SEQ_HZ.NEWV AL FROM DAULC. SELECT SEQ_HZ.NEXTVAL FROM DUALD. SELECT SEQ_HZ.NEXTROW FROM DAUL填空题1.要统计各班女同学数目,命令为select sclass, from student where ssex= 。
2.要查询超出公司平均月薪的雇员的工号、姓名及月薪,命令为select empno,ename,sal from empwhere3.建立一个查询,显示哪些所挣的月薪比任何一个办事员(job为CLERK)所挣的薪水都多的员工的姓名、工种及月薪,要求查询结果按月薪值从高到低排序。
SELECT ename, job, sal FROM empWHEREORDER BY ;4.SQL命令:SELECT ename,deptno FROM emp WHERE deptno IN(10,30) orderby ename; 的执行结果是:。
5.SQL命令:select round(11.5768,2) from dual; 的结果是。
6.SQL命令:select round(14.5678,2) from dual; 的结果是。
7.SQL命令:SELECT initcap('mr teplow.') from dual; 的结果是。
8.SQL命令:SELECT replace('mnp',‟m‟,‟rr‟) from dual; 的结果是。
9.SQL命令:SELECT substr('mnp',2,1) from dual; 的结果是。
10.SQL命令:SELECT FLOOR(11.6) from dual; 的结果是。
11.SQL命令:SELECT CEIL(11.6) from dual; 的结果是。
12.写出下列SQL语句的结果()1) SELECT CEIL(11.6) FROM DUAL;()2) SELECT FLOOR(17.4681) FROM DUAL;()3) SELECT INITCAP(…dear‟) FROM DUAL;()4) SELECT REPLACE(…ABC‟,‟BC‟,‟A‟) FROM DUAL;()5) SELECT ADD_MONTHS(‟03-05月-98‟,2) FROM DUAL;是非题1.Top-N分析使用ROWNUM属性作为行号。