数据库的语句理解下

简介: 基础

请将如下数据库语句进行优化,使其执行效率更高(提示:…不需要更改)


SELECT

FROMEMP

WHEREDEPT_NO NOTIN(SELECTDEPT_NO

FROMDEPT

WHEREDEPT_CAT=’A’);


SELECT

FROMEMP

WHEREDEPT_NO NOTEXISTS(SELECTDEPT_NO

FROMDEPT

WHEREDEPT_CAT=’A’);

优化的理由:not in 和not exists

如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;

而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists 都比not in 要快。


请简述如何将Oracle中的数据库转至DB2中,需要保证表结构和数据不变

使用ETL工具,如infomatic,datastage,kettle等,可以完成异构数据库的迁移

以kettle为例

表输入选择 oracle库

表输出选择DB库

循环执行可以进行全库迁移


学生成绩表

姓名:name 课程:subject 分数:score 学号:stuid
张三 数学 89 1
张三 语文 80 1
张三 英语 70 1
李四 数学 90 2
李四 语文 70 2
李四 英语 80 2

1.计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)

select name,sum(score) s from t_stu GROUP BY name;

2.列出各门课程成绩最好的学生(要求显示字段:学号,姓名,科目,成绩)

select t1.stuid,t1.name,t1.subject,t1.score from t_stu t1,

(select subject,MAX(score) as maxscore from t_stu group by subject)t2

where t1.subject = t2.subject and t1.score = t2.maxscore;

3.列出各个课程的平均成绩(要求显示字段;课程,平均成绩)

select subject,AVG(score)平均成绩 from t_stu

group by subject;

相关文章
|
7月前
|
SQL 关系型数据库 MySQL
MySQL| 数据库的管理和操作【操作数据库和操作表】【附练习】
MySQL | 数据库的基本操作和表的基本操作【附练习】
|
数据库 关系型数据库 Oracle
|
1月前
|
SQL Oracle 关系型数据库
数据库相关操作语句
以上只是一些常见的数据库操作语句示例,不同的数据库系统在语法和功能上可能会有一些差异。在实际使用中,还需要根据具体的需求和数据库的特性进行更复杂和灵活的操作。
|
4月前
|
存储 SQL 关系型数据库
什么是数据库存储过程?
【8月更文挑战第3天】
470 11
什么是数据库存储过程?
|
存储 SQL 安全
SQL---数据库是什么?为什么要使用数据库?数据库能干什么?
SQL---数据库是什么?为什么要使用数据库?数据库能干什么?
|
7月前
|
SQL 数据库 内存技术
学习数据库要掌握的54条SQL查询语句
学习数据库要掌握的54条SQL查询语句
67 0
|
7月前
|
SQL 存储 数据库
SQL 数据库语句- 创建和管理数据库
SQL CREATE DATABASE 语句用于创建一个新的 SQL 数据库。
96 0
|
存储 SQL 关系型数据库
数据库存储过程创建可能出现的问题
数据库存储过程创建可能出现的问题
224 0
|
存储 数据库
数据库 存储过程
数据库 存储过程
|
存储 SQL 数据处理
数据库(6)--存储过程
数据库(6)--存储过程
212 0
数据库(6)--存储过程