笔试_oracle(6)
来源:互联网 发布:足球买球让球算法 编辑:程序博客网 时间:2024/06/06 15:21
一、 单选题(每小题2分,共56分)
1. 观察下面employees表的表结构
执行下面SQL语句的结果为:DELETE employees;
A:由于主键违规而出现错误。
B:EMPLOYEES表的数据和结构将被删除。
C:EMPLOYEES表中的数据被删除,但表结构依然存在。
D:因为语句在语法上不正确而出错。
参考答案:
C
解析:
truncate tablename或delete tablename:不删除表的结构,只是删除表中的数据;drop tablename:删除表的表结构和数据。
2. 观察EMPLOYEES表的表结构
哪个SQL语句能够查询出最低工资低于5000,最高工资超过15000的部门的部门ID、部门员工的最低工资、最高工资()
A:
SELECT dept_id, MIN(salary), MAX(salary)
FROM employees
WHERE MIN(salary) < 5000 AND MAX(salary) > 15000;
B:
SELECT dept_id, MIN(salary), MAX(salary)
FROM employees
WHERE MIN(salary) < 5000 AND MAX(salary) > 15000
GROUP BY dept_id;
C:
SELECT dept_id, MIN(salary), MAX(salary)
FROM employees
HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;
D:
SELECT dept_id, MIN(salary), MAX(salary)
FROM employees
GROUP BY dept_id
HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;
E:
SELECT dept_id, MIN(salary), MAX(salary)
FROM employees
GROUP BY dept_id, salary
HAVING MIN(salary) < 5000 AND MAX(salary) > 15000;
参考答案:
D
解析:
根据题意,首先要对部门分组,然后过滤出最低工资低于5000、最高工资高于15000的部门
3. 对SQL语句的描述中,下列说法不正确的有
A: 使用关键字distinct消除冗余
B: where用于指定筛选条件
C: sql关键字区分大小写
D: 字符串比较按照字典排序
参考答案:
C
解析:
sql不区分大小写
4. 观察customers表的表结构
其中CUSTOMER_ID是表的主键。下列哪个选项能够查询出“Los Angeles”和“San Francisco”的城市地址(city_address),以及每个城市里顾客的数量()
A:
SELECT city_address, COUNT(*)
FROM customers
WHERE city_address IN ('Los Angeles', 'San Francisco');
B:
SELECT city_address, COUNT(*)
FROM customers
WHERE city_address IN ('Los Angeles', 'San Francisco')
GROUP BY city_address;
C:
SELECT city_address, COUNT(customer_id)
FROM customers
WHERE city_address IN ('Los Angeles', 'San Francisco')
GROUP BY city_address, customer_id;
D:
SELECT city_address, COUNT(customer_id)
FROM customers
GROUP BY city_address IN ('Los Angeles', 'San Francisco');
参考答案:
B
解析:
若要查询出这两个城市的顾客数量,必须先按城市分组,再统计数量
5. 在数据库中,user为用户表,id为用户编号,name为用户名,age为年龄字段。下面关于update user set name='tom',age=21 where id=1语句说法正确的是:
A: 把用户名为tom的年龄改为21
B: 把用户编号为1的记录用户名修改为tom年龄修改为21
C: 把所有用户记录的用户名修改为tom年龄修改为21
D: 语法错误
参考答案:
B
解析:
update user set name='tom',age=21 where id=1语句 语法没有问题,意思为: 把用户编号为1的记录用户名修改为tom年龄修改为21
6. 能查询用户的平均年龄的是:
A: select max(age) from user;
B: select count(age) from user;
C: select sum(age) from user;
D: select avg(age) from user;
参考答案:
D
解析:
avg函数:统计数据表选中行某列的平均值。
7. 能查询年龄小于15岁的女学生信息:
A: select * from users where age<15 and sex=女
B: select * from users where age<15 or sex='女'
C: select * from users where id<15 and sex='女'
D: select * from users where age<15 and sex='女'
参考答案:
D
解析:
题目要求<15岁 和 女生两个条件同时满足 所以用and 进行条件连接。
8. 下面关于Oracle的说法正确的是
A: Oracle的默认的SID是ORCL
B: Oracle的测试用户scott的默认密码是123456
C: Oracle的测试用户hr的密码是123456
D: Oracle的默认端口号是1520
参考答案:
A
解析:
Oracle的测试用户是scott,默认密码是tiger。 Oracle的默认端口号是1521
9. 关于drop关键字下面说法错误的是:
A:删除某个用户是需要此关键字
B:删除表中的某个字段时需要此关键字
C:删除某张表时需要此关键字
D:删除表中的某条数据时需要此关键字
参考答案:
D
解析:
删除表中数据使用delete关键字
10. 下面排序的说法不正确的是:
A:asc是升序排列
B:默认是升序排序
C:desc是降序排序
D: 默认是降序排序
参考答案:
D
解析:
数据库查询中默认是asc升序排列
11. 观察EMPLOYEES表,其中在EMPLOYEES表上,EMPLOYEE_ID是主键。 MGR_ID是经理的ID,并引用EMPLOYEE_ID。 JOB_ID列是一个NOT NULL列。
下面的DELETE语句为何删除失败
DELETE employee_id, salary, job_id
FROM employees
WHERE dept_id = 90;
A:在EMPLOYEES 表中没有dept_id 为90的行
B:不能删除JOB_ID 列,因为该列不能为空
C:不能在删除语句的DELETE子句中指定列名
D:不能删除EMPLOYEE_ID列,因为它是表的主键。
参考答案:
C
解析:
删除语句只能用于整行删除,不能再delete子句中指定列名。
12. 观察orders表和customers表,哪个SQL语句能够检索出与Martin同一天下订单的订单ID,客户ID和订单总额?
A:
SELECT ord_id, cust_id, ord_total
FROM orders, customers
WHERE cust_name='Martin'
AND ord_date IN ('18-JUL-2000','21-JUL-2000');
B:
SELECT ord_id, cust_id, ord_total
FROM orders
WHERE ord_date IN (SELECT ord_date
FROM orders
WHERE cust_name ='Martin')
C:
SELECT ord_id, cust_id, ord_total
FROM orders
WHERE ord_date IN (SELECT ord_date
FROM orders, customers
WHERE cust_name ='Martin');
D:
SELECT ord_id, cust_id, ord_total
FROM orders
WHERE cust_id IN (SELECT cust_id
FROM customers
WHERE cust_name = 'Martin');
参考答案:
B
解析:
订单(orders)表中没有cust_name ,所以要通过子查询查出cust_name ='Martin'的顾客的ID(cust_id ),然后在orders表中查询出该顾客在那天下过订单,最后查询出在这一天下的订单的订单ID,客户ID和订单总额
13. 观察下表(EMP)
需要查询出奖金(COMM)为空,正确的SQL语句是()
A:
SELECT * FROM EMP WHERE COMM = NULL;
B:
SELECT * FROM EMP WHERE COMM = 0;
C:
SELECT * FROM EMP WHERE COMM IS NULL;
D:
SELECT * FROM EMP WHERE COMM IS 0;
参考答案:
C
解析:
判断某列的值为空用IS null
14. 观察employees表的表结构
下列哪个SQL语句能够查询出部门数量,要求这些部门都有姓李(last_name='李')的员工
A:
SELECT COUNT(*)FROM employeesWHERE last_name='李';
B:
SELECT COUNT(dept_id)
FROM employees
WHERE last_name='李';
C:
SELECT DISTINCT(COUNT(dept_id))
FROM employees
WHERE last_name='李';
D:
SELECT COUNT(DISTINCT dept_id)
FROM employees
WHERE last_name='李';
E:
SELECT UNIQUE(dept_id)
FROM employees
WHERE last_name='李';
参考答案:
D
解析:
根据题目要求首先要查询出有姓李的员工的部门信息,然后再对部门的dept_id进行去除重复,最后计数
15. 观察下表ORDERS和CUSTOMERS
下面SQL语句的执行结果是()
SELECT *
FROM orders
WHERE cust_id = (SELECT cust_id
FROM customers
WHERE cust_name = 'Smith');
A:
B:
C:
D:查询失败,因为子查询的返回结果不止一行
E:查询失败,因为子查询和主查询用的不是同一张表
参考答案:
D
解析:
主查询的where子句的运算符为“=”,所以其后面的值不能是多个,但是在customers表中Smith有两个,所以查询失败。
16. 观察EMP的表结构
执行该SQL语句,返回的结果的顺序是怎样的?
SELECT empname,hire_date HIREDATE, salary
FROM EMP
ORDER BY hire_date;
A:无序
B:按日期升序
C:按日期降序
D:按字母顺序升序
E:按字母顺序降序
参考答案:
B
解析:
当不指定排序方式时,系统默认升序排序
17. 以下SQL语句,能正确执行的是( )
A:
select e.department_id,sum(e.salary),round(avg(e.salary),2) "AvgSalary"
from employees e
order by e.department_id
group by e.department_id
B:
select e.department_id, e.salary
from employees e
group by e.department_id
order by e.department_id
C:
select sum(e.salary),round(avg(e.salary),2) "AvgSalary"
from employees e
group by e.department_id
order by e.department_id
D:
select e.department_id,sum(e.salary),round(avg(e.salary),2) "AvgSalary"
from employees e
group by e.department_id
order by e.department_id
参考答案:
D
18. 您需要更改现有表的定义:
更改COMMERCIALS表的DESCRIPTION列以保存不超过1000字节的变长字符,该列当前每个值可以保存500个字节。 表包含20000行。
哪个SQL语句能够完成该需求()
A:
ALTER TABLE commercials
MODIFY (description CHAR2(1000));
B:
ALTER TABLE commercials
CHANGE (description CHAR2(1000));
C:
ALTER TABLE commercials
CHANGE (description VARCHAR2(1000));
D:
ALTER TABLE commercials
MODIFY (description VARCHAR2(1000));
E:如果该列有数据,你不可以增加字段的长多。
参考答案:
D
解析:
修改表结构的固定语法:
ALTER TABLE table_name
MODIFY (column_name data_type);
19. 观察STUDENT_GRADES 表的表结构
一个学期有多个GPA,下列哪个语句能找到每个学期最高的GPA?
A:
ELECT MAX(gpa)
FROM student_grades
WHERE gpa IS NOT NULL;
B:
SELECT (gpa)
FROM student_grades
GROUP BY semester_end
WHERE gpa IS NOT NULL;
C:
SELECT MAX(gpa)
FROM student_grades
WHERE gpa IS NOT NULL
GROUP BY semester_end;
D:
SELECT MAX(gpa)
GROUP BY semester_end
WHERE gpa IS NOT NULL
FROM student_grades;
E:
SELECT MAX(gpa)
FROM student_grades
GROUP BY semester_end
WHERE gpa IS NOT NULL;
参考答案:
C
解析:
在使用聚合函数时一定要考虑null值的情况。
想要查询每学期的最高的GPA,必须要以学期(SEMESTER_END)分组,此时要考虑有些学生可能没有参加考试(即GPA为null)的情况,GPA为null,oracle系统就会使某组的max(gpa)结果为null,显然这种情况是不符合要求的,要排除这种情况,就必须对null做处理,要么将null用0代替,要么直接去除null的情况,在这里是求最大值,直接去除null不会影响最大值的情况,而且提前排除null,后续的计算量也会下降,所以此时选择直接去除null,SQL语句的性能更高。
20. having , where , group by 的正确执行顺序是( )
A:having,where,group by
B:group by,having,where
C:where,having,group by
D:where ,group by,having
参考答案:
D
解析:
查询中用到的关键词主要包含六个,并且他们的顺序依次为
select--from--where--group by--having--order by
21. 需要创建一个订单(ORDERS)表,该表包含如下4列
1. an ORDER_ID column of number data type
2. a CUSTOMER_ID column of number data type
3. an ORDER_STATUS column that contains a character data type
4. a DATE_ORDERED column to contain the date the order was placed
要求:当一行插入到表中时,如果没有提供任何值,则应使用今天的日期。
下列选项符合要求的是()
A:
CREATE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status VARCHAR2 (10),
date_ordered DATE = SYSDATE);
B:
CREATE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status VARCHAR2 (10),
date_ordered DATE DEFAULT SYSDATE);
C:
CREATE OR REPLACE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status VARCHAR2 (10),
date_ordered DATE DEFAULT SYSDATE);
D:
CREATE OR REPLACE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status VARCHAR2 (10),
date_ordered DATE = SYSDATE);
E:
CREATE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status NUMBER (10),
date_ordered DATE = SYSDATE);
F:
CREATE TABLE orders (
order_id NUMBER(10),
customer_id NUMBER(8),
order_status NUMBER (10),
date_ordered DATE DEFAULT SYSDATE);
参考答案:
B
解析:
oracle数据库可以用create or replace的对象有:functions, procedures, packages, types, synonyms, trigger and views,就是没有table,也没有sequence。据此排除C、D选项。
添加默认值的方式是在字段的数据类型之后用“default”,而不是用“=”。据此排除A、E。
选项F是ORDER_STATUS 字段的数据类型错误。
22. 观察employees表的表结构
选项中哪个update语句是有效的()
A:
UPDATE employees
SET first_name = 'John'
SET last_name ='Smith'
WHERE employee_id = 180;
B:
UPDATE employees
SET first_name = 'John',
SET last_name ='Smith'
WHERE employee_id = 180;
C:
UPDATE employees
SET first_name = 'John'
AND last_name ='Smith'
WHERE employee_id = 180;
D:
UPDATE employees
SET first_name = 'John', last_name ='Smith'
WHERE employee_id = 180;
参考答案:
D
解析:
一个update语句中只需写一个SET子句,多个被更新的字段用逗号隔开。
23. 插入、删除以及修改数据被称作()
A:数据库定义语言(DDL)
B:数据库操作语言(DML)
C:数据库查询语言(DQL)
D:数据库控制语言(DCL)
参考答案:
B
24. 观察表EMPLOYEES 和NEW_EMPLOYEES的表结构
选项中哪个更新操作是有效的()
A:
UPDATE new_employees SET name = (SELECT last_name||
first_name
FROM employees
WHERE employee_id
=180)
WHERE employee_id =180;
B:
UPDATE new_employees SET name = (SELECT
last_name||first_name
FROM employees )
WHERE employee_id =180;
C:
UPDATE new_employees SET name = (SELECT last_name ||
first_name
FROM employees
WHERE employee_id
=180)
WHERE employee_id =(SELECT employee_id
FROM new_employees);
D:
UPDATE new_employees SET name = (SELECT last_name||
first_name
FROM employees
WHERE employee_id =
(SELECT employee_id
FROM new_employees))
WHERE employee_id
=180;
参考答案:
A
解析:
B.子查询查出了多行数据;
C.第二个子查询得到了多行数据,但是where子句的运算符“=”只能指定一个值;
D.选项错误同上。
25. 顾客表(customers)中有一存储顾客姓名的字段(customerName),现在想显示"欢迎customerName光临小店"的字样,下列SQL语句能够满足该需求的是()
A:
SELECT "欢迎"||customerName||"光临小店" FROM customers;
B:
SELECT '欢迎'||customerName||'光临小店' FROM customers;
C:
SELECT '欢迎'|customerName|'光临小店' FROM customers;
D:
SELECT "欢迎"|customerName|"光临小店'"FROM customers;
参考答案:
B
解析:
在select中显示的字符用单引号引起来,字符之间的连接用||
26. 下列哪项不属于关系型数据库?
A:Oracle
B:SQL Server
C:HBase
D:MySql
参考答案:
C
解析:
常见关系型数据库有:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
HBase是列式非关系型数据库
27. 使用哪个SELECT语句从系统日期中提取年份并以“1998”格式显示?
A:
SELECT TO_CHAR(SYSDATE,'yyyy')
FROM dual;
B:
SELECT TO_DATE(SYSDATE,'yyyy')
FROM dual;
C:
SELECT DECODE(SUBSTR(SYSDATE, 8), 'YYYY')
FROM dual;
D:
SELECT DECODE(SUBSTR(SYSDATE, 8), 'year')
FROM dual;
E:
SELECT TO_CHAR(SUBSTR(SYSDATE, 8,2),'yyyy')
FROM dual;
参考答案:
A
解析:
日期转换用TO_CHAR(date,fmt)函数,date是将被转换的日期,fmt指定转换后的格式。
28. 已知表T1中有2行数据,T2中有3行数据,执行SQL语句"select a.* from T1 a,T2 b"后,返回行数为:()
A:2行
B:3行
C:5行
D:6行
参考答案:
D
解析:
查询结果返回的是笛卡尔积;笛卡尔积:列相加,行相乘
二、 多选题(每小题3分,共24分)
1.
观察下面创建订单(order)表的SQL语句
当你执行上面的SQL语句时候哪些列会自动创建索引(index)?(请选出两项)
A:SER_NO
B:ORDER_ID
C:STATUS
D:PROD_ID
E:ORD_TOTAL
F:基于ORDER_ID and ORDER_DATE创建复合索引
参考答案:
AF
解析:
oracle数据库会在唯一约束和主键约束上自动创建索引
2.观察下面employees表的表结构
您创建了一个名为EMP_ID_SEQ的序列,以填充EMPLOYEES表的EMPLOYEE_ID列的序列值。 哪两个语句关于EMP_ID_SEQ序列是正确的?(请选出两项)
A:您不能使用EMP_ID_SEQ序列填充JOB_ID列。
B:修改EMPLOYEE_ID列时,EMP_ID_SEQ序列无效。
C:EMP_ID_SEQ序列本身不受对EMPLOYEES表的修改的影响。
D:架构中任何其他NUMBER数据类型的列都可以使用EMP_ID_SEQ序列。
E:删除EMPLOYEES表时,将自动删除EMP_ID_SEQ序列。
F:删除EMPLOYEE_ID列时,将自动删除EMP_ID_SEQ序列。
参考答案:
CD
解析:
序列不属于任何一张表,表可以用序列辅助插入一些数据,但是对表的处理不会影响序列
3. 我们需要在employee数据表中查出工号emp_no为29346,24323的记录,可以使用的SQL语句有?(选出正确的两项)
A:SELECT * FROM employee WHERE emp_no=29346 OR emp_no=24323 ;
B:SELECT * FROM employee WHERE emp_no IN(29346,24323);
C:SELECT * FROM employee WHERE emp_no=29346 AND emp_no=24323;
D:SELECT * FROM employee WHERE emp_no NOT IN(29346,24323)='dl');
参考答案:
AB
4. 下列关于视图的说法,正确的有?(选出正确的三项)
A:视图可以防止未经许可的用户访问敏感数据
B:创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容
C:定义的视图中可以包含ORDER BY子句
D:不能为视图建立索引
参考答案:
ABC
解析:
视图上也可以建立索引,以便快速查询
5. 关于where和having子句说法正确的有?(请选出两项)
A:WHERE子句可用于限制行和组。
B:WHERE子句只能用于限制行。
C:HAVING子句可用于限制行和组。
D:HAVING子句只能用于限制组。
E:如果查询使用HAVING子句,则不能在查询中使用WHERE子句。
F:HAVING子句不能在子查询中使用。
参考答案:
BD
解析:
where只能用于行数据的筛选;having只能用于组数据的筛选。
6. 下列查询姓张的学生的语句不正确的是?(选出正确的三项)
A: select * from 表名 where 姓名 = '%张%'
B: select * from 表名 where 姓名 like '张'
C: select * from 表名 where 姓名 like '张%'
D: select * from 表名 where 姓名 = '张'
参考答案:
ABD
解析:
LIKE 模糊查询字符匹配操作可以使用通配符 “%” 和 “_”:%:表示任意个字符,包括零个;_:表示一个任意字符;题目要求查询姓张的,所以需要张开头的姓名。所以c是正确的。
7.关于下面的SQL删除语句,说法正确的是?(请选出四项)
DROP TABLE DEPT;
A:无法回滚此语句。
B:所有待处理的事务都已提交。
C:基于DEPT表的所有视图都将被删除。
D:将删除基于DEPT表的所有索引。
E:将删除表中的所有数据,并删除表结构。
F:将删除表中的所有数据,但保留表的结构。
参考答案:
ABDE
解析:
AB.DROP是DDL,会被隐式提交,所以无法回滚(只能回滚未提交的DML),其上的操作也被一并提交;
C.表被删除,基于表的视图不会被删除,只是执行查询操作的时候会报错;
DEF.删除表,基于表的索引、表结构都会被删除。
8. 观察下表EMP
下列能够查询工号EMPNO在7300——7500之间的员工的姓名的SQL语句是?(请选出两项)
A:
SELECT ENAME FROM EMP WHERE EMPNO IN(7300,7500);
B:
SELECT ENAME FROM EMP WHERE EMPNO BETWEEN 7300 AND 7500;
C:
SELECT ENAME FROM EMP WHERE EMPNO>7300 OR EMPNO<7500;
D:
SELECT ENAME FROM EMP WHERE EMPNO>7300 AND EMPNO<7500;
参考答案:
BD
解析:
between and 的作用和> and <的作用相同
三、 综合题(每小题10分,共20分)
1. 根据下面创建表的语句完成SQL查询
Create table org_organization(
Organization_id NUMBER(10) not null,--组织结构ID(主键)
Parent_organization_id NUMBER(10) null,--从属的上级组织结构ID
Organization_name varchar(60) not null,--组织机构名称
Organization_desc varchar(240) null,--组织机构说明
Organization_type NUMBER(1) not null,--组织类型:1=智能型;2=业务型
Primary key(organization_id)
);
1.查询组织结构ID大于“100”的所有组织机构的信息?
2.查询“组织机构名称”中包含“北京”的所有组织机构的信息?
3.查询组织机构ID等于“1000”的组织机构的信息以及从属的上级组织机构的信息?
4.统计“职能型”和“业务型”的组织机构,各有多少个?(注:用一条sql语句实现)
参考答案:
1.SELECT*FROM org_organization WHERE Organization_id>100;
2.SELECT*FROM org_organization WHERE Organization_name LIKE '%北京%';
3.SELECT ORG1.*,ORG2.* FROM org_organization org1
LEFT JOIN org_organization org2
ON ORG1.Parent_organization_id=ORG2.Organization_id
WHERE Organization_id=1000;
4.SELECT Organization_type,count(Organization_id) FROM org_organization GROUP BY Organization_type
解析:
1. 略
2. 模糊查询需要用like关键字,%是正则表达式的概念里的通配符,代表0或多个字符,_代表1个字符。正则表达式在各种程序设计技术里用到的都特别多,有兴趣、学有余力的同学可以到网上自学一下。
3. 此题是简单的连接查询,由于组织机构和直接从属上级机构在同一张表里,所以需要将一张表以别名的形式当成两张表来连接查询,连接条件是ORG1.Parent_organization_id=ORG2.Organization_id,需要在结果里筛选出Organization_id=1000的组织机构。
4. 很明显要使用分组查询,分组的依据是Organization_type,然后统计出每组里的Organization_id的数量即可。
2.有一个学生成绩单,要建立数据表把数据存储此表中:需要包括的字段为:
1.写出创建表的语法,表名自定
2.查询出生时间在1990-01-01后的学生所有课程成绩
3.查询学生总数
4.查询该班学生Java基础(课程编号为000101)的平均成绩
参考答案:
1.CREATE TABLE STUDENT (stuName VARCHAR2(60),stuID VARCHAR(100),stuBirthday DATE,classID NUMBER(8),
stuScore NUMBER(5,2),stuRemark VARCHAR2(400));
2.SELECT stuName,stuScore FROM STUDENT WHERE stuBirthday>TO_DATE('1990-01-01','yyyy-mm-dd');
3.SELECT count(DISTINCT(STUNAME)) "学生总数" FROM STUDENT;
4.SELECT AVG(stuScore) FROM STUDENT WHERE classID=000101;
解析:
1. 此处需要注意,oracle数据库里字符的概念是对英文来说的,但是一个汉字占两个字符,所以题目中要求插入n个汉字,在创建表时,字符的数量要写2n。
2. 这里一定要注意字符到日期的转换,我们输入的‘1990-01-01’在系统看来是字符,当然字符跟日期是没有办法比较的(数据类型不同嘛),所以在比较之前一定要先将字符类型的‘1990-01-01’转换成日期类型。
3. 在学生成绩表中查询出所有学生,然后去除重复再计数,即得出学生总数
4. 此题看似简单,实则暗藏杀机,首先要想到一点,有些学生可能缺考,此时他的Java基础的分数就为null,但是系统对null会自动忽略,然后人数就会减少(少了Java基础得分为null的同学),显然这种情况得出的平均分是不正确的(不信的话,假如系统不处理null的情况,老师为了好看的平均分会让成绩差的同学缺考~~)。扯远了,处理null可以用NVL(stuScore,0);假如stuScore为null,就当成0来计算。
- 笔试_oracle(6)
- 笔试_oracle(2)
- 笔试_oracle(4)
- 笔试_oracle(5)
- 笔试_oracle(7)
- 笔试_oracle(8)
- 笔试_oracle(1)
- 笔试_oracle(3)
- oracle_(培训)1_oracle数据库基本概念
- oracle学习笔记(1)_oracle的安装
- oracle学习笔记(2)_Oracle 自带的客户端工具
- pl/sql _oracle 学习
- 黑马程序员_Oracle
- 01_oracle基础
- 分页之二_Oracle
- MyBatis批量操作_ORACLE
- 2_Oracle体系结构概述
- 909422229_Oracle条件语句
- Java知识---类的多态
- 关于jinja2 宏定义的小问题
- 修改openstack镜像--支持root密码登陆
- ViewPager 和 RadioGroup 组合布局
- JVM之内存运行时区域
- 笔试_oracle(6)
- 通过Xshell连接linux——安装jdk
- 简单的一级指针 const define enum
- 淘宝传奇工程师多隆的程序世界
- tensor flow学习笔记
- java 多线程 wait()和notify(),notifyAll()的使用
- JS实现继承的几种方式
- 帝国cms动态获取文章内容点击数
- maven构建web项目