数据库:
练习题:
1.查询所有员工的FNAME、LNAME、SSN、SEX和SALARY,并分别将SEX和SALARY的列名重命名为“性别”、“工资”。
2.从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工资的降序排列,然后按FNAME的字母升序排列。
3.查询不重复的员工工资值
4.查询没有直接上司的员工姓名
5.从Employee表中查询出工资大于等于40000的员工资料
6.查询所有的女性家属的全部信息,并按生日的降序排列
7.查询所有不属于5号部门的员工信息
8.利用OR关键字查询属于1号或4号部门的员工信息
9.检索姓名为John B.Smith的员工的SSN、性别、出生日期和地址
10.查询1960年以后出生的员工信息(注意日期写完整)
11.从Employee表中查询出1960年——1970年之间出生的员工资料(注意日期写完整)
12. 从Employee表中查询出部门号为4或者5的员工资料
13. 从Employee表中查询出LNAME中含有字母o的员工资料
14. 查询项目名称以P开头的项目信息
15. 检索居住在Houston的员工所有信息
16. 从Employee表中检索出员工的FNAME、LNAME、SSN、SALARY等字段(其中SALARY需换算成人民币,汇率假定为1美元=6人民币元),并分别加上“名”、“姓”、“社会保险号”、“人民币工资”的标题。
17. 统计所有员工的平均工资
18. 查询所有员工在所有项目上每周工作的总小时数
19. 查询各个部门员工的平均工资,显示部门号和对应的平均工资值
20. 查询每个员工所有参与项目的每周工作总小时数,显示员工SSN和总小时数
21. 列出所有参与了项目的员工编号及其参与项目数
22. 统计参与了2个以上项目的员工编号和其参与项目的每周工作平均时间
23. 查询有2个以上男性员工的部门编号和该部门的总人数(包括男女员工)
24. 查询部门编号、名称及该部门经理的姓名
25. 查询所有员工(包括没有家属的员工)姓名、编号及其家属姓名
26. 查询所有为Research部门工作的员工姓名及地址
27. 对于所有位于Stafford的项目,查询项目的编号、项目负责部门编号以及该部门经理的姓、地址、生日
28. 查询有两个或以上家属的员工姓名(此题较难,若不能完成者可只查询出员工的SSN而不是姓名)
29. 查询在ProductX项目上每周工作时间超过10小时的部门5的员工姓名
30. 对于每个项目,列出项目名称以及所有员工在此项目上工作的总时间
31. 对于每个部门,列出部门名称以及此部门员工的平均工资
32. 对于每个员工(包括无上司员工),查询其姓名以及他/她的直接上司的姓名
33. 查询Company数据库中所有员工SSN与DNAME(部门名称)的组合
34. 查询有两个或以上“工资大于等于30000员工”的部门名称
35. 查询Research部门的员工姓名
36. 查询参与了项目的员工姓名。(必须用IN谓词)
37. 查询参与了项目的员工姓名。(必须用EXISTS谓词)
38. 查询没有参与任何部门5控制项目的员工姓名。
39. 查询工资超过部门5所有员工工资的员工姓名。
40. 查询参与了所有项目的员工姓名
41. 查询至少参与了所有部门4控制项目的员工姓名
42. 查询至少参与了所有John Smith参与项目的员工姓名
43. 查询至少有一个家属的部门经理姓名。(必须用EXISTS谓词)
44. 查询有两个或以上隶属员工的部门名称及其“工资大于等于30000员工”总数
45. 查询有两个或以上家属的员工姓名
46. 查询符合以下任意条件的项目编号:(1)参与此项目员工的LNAME是Smith;(2)控制此项目的部门经理的LNAME是Smith
答案:
1.select FNAME,LNAME,SSN,SEX as '性别',SALARY as '工资' from Employee
2.select FNAME as '名',LNAME as '姓',SSN as '社会保险号',BDATE '生日',SALARY as '工资' from Employee
order by SALARY desc,FNAME asc
3.select distinct salary from Employee
4.select * from Employee where SUPERSSN is null
5.select * from Employee where SALARY>=40000
6.select * from Dependent where SEX='F' order by BDATE desc
7.select * from Employee where DNO<>5
8.select * from Employee where DNO=1 or DNO=4
9.select SSN,SEX,BDATE,ADDRESS from Employee where FNAME='John' and LNAME='Smith' and MINIT='B'
10.select * from Employee where BDATE>'1960'
11.select * from Employee where BDATE Between'1960' and '1970'
12.select * from Employee where dno in(4,5)
13.select * from Employee where LNAME like '%o%'
14.select * from Project where PNAME like 'p%'
15.select * from Employee where ADDRESS like '%Houston%'
16.select FNAME '名',LNAME '姓',SSN '社会保障号',(SALARY*6) '人民币工资' from Employee
17.select AVG(salary) from Employee
18.select SUM(HOURS) from Works_On
19.select dno,AVG(salary) '平均工资' from Employee group by dno
20.select ESSN,SUM(HOURS) '小时' from Works_On group by essn
21.select ESSN,COUNT(*) '参与项目数' from Works_On group by ESSn
22.select ESSN,AVG(HOURS) '平均时长' from Works_On group by ESSn having COUNT(*)>=2
23.select dno,count(*) '部门总人数' from Employee group by DNO,SEX having COUNT(*)>2 and SEX='M'
24.select DNUMBER,DNAME,FNAME,MINIT,LNAME from Department
join Employee on Department.MGRSSN=Employee.SSN
25.select FNAME,MINIT,LNAME,SSN,Dependent_NAME from Employee
left join Dependent on Employee.SSN=Dependent.ESSN
26.select FNAME,MINIT,LNAME,ADDRESS from Department
join Employee on Department.DNUMBER=Employee.DNO
where Department.DNAME='Research'
27.select Project.PNUMBER,Project.DNUM,Employee.LNAME,Employee.ADDRESS,Employee.BDATE
from Project
join Department on Project.DNUM=Department.DNUMBER
join Employee on Department.MGRSSN=Employee.SSN
where Project.PLOCATION='Srafford'
28.select e.FNAME,e.MINIT,e.LNAME from Dependent d
join Employee e on d.ESSN=e.SSN
group by e.FNAME,e.MINIT,e.LNAME
having COUNT(d.ESSN)>=2
29.select FNAME,MINIT,LNAME from Project
join Works_On on Project.PNUMBER=Works_On.PNO
join Employee on Works_On.ESSN=Employee.SSN
where Works_On.HOURS>10 and Employee.DNO=5 and Project.PNAME='ProductX'
30.select Project.PNAME,SUM(Works_On.HOURS) '工作总时长' from Project
join Works_On on Project.PNUMBER=Works_On.PNO
group by Project.PNAME
31.select Department.DNAME,AVG(SALARY) '部门平均工资' from Department
join Employee on Department.DNUMBER=Employee.DNO
group by Department.DNAME
32.select e1.FNAME,e1.MINIT,e1.LNAME,e2.FNAME,e2.MINIT,e2.LNAME
from Employee e1
left join Employee e2 on e1.SUPERSSN=e2.SSN
33.select Department.DNAME,Employee.SSN from Department
join Employee on Department.DNUMBER=Employee.DNO
34.select Department.DNAME ,count(*) from Employee
join Department on Employee.DNO=Department.DNUMBER
where SALARY>=30000
group by Department.DNAME
35.select t.FNAME,t.MINIT,t.LNAME from
(select * from Department
join Employee on Department.DNUMBER=Employee.DNO
where Department.DNAME='Research') t
36.select FNAME,MINIT,LNAME from Employee
where SSN in(select distinct ESSN from Works_On)
37.SELECT distinct Employee.FNAME,Employee.MINIT,Employee.LNAME FROM Works_On
join Employee on Employee.SSN=Works_On.ESSN
where exists(select * from Employee where Employee.SSN=Works_On.ESSN)
38.select FNAME,MINIT,LNAME from Employee where SSN
in(select ESSN from Works_On where PNO
in (select PNUMBER from Project where DNUM<>5))
39.select * from Employee where SALARY>(
select MAX(salary) from Employee where DNO=5)
40.select essn,COUNT(*) from Works_On
group by ESSN
having count(*)=(select count(PNUMBER) from Project )
select FNAME,MINIT,LNAME from Employee where SSN in(
select distinct essn from Works_On where PNO
in(select PNUMBER from Project where DNUM=4))
41.select FNAME,MINIT,LNAME from Employee where SSN in(
select distinct essn from Works_On where PNO
in(select PNUMBER from Project where DNUM=4))
42.select FNAME,MINIT,LNAME from Employee where SSN in(
select distinct ESSN from Works_On where PNO in(
select pno from Works_On where ESSN=(
select SSN from Employee where FNAME='John' and LNAME='Smith'))
and ESSN<>(select SSN from Employee where FNAME='John' and LNAME='Smith'))
43.select FNAME,MINIT,LNAME from Employee where SSN in(
select distinct MGRSSN from Department
join Dependent on Department.MGRSSN=Dependent.ESSN where exists(
select ESSN from Dependent
group by essn))
44.select COUNT(*) from Employee where DNO in(
select dno from Employee
group by DNO
having COUNT(*)>=2) and SALARY>=30000
45.select FNAME,MINIT,LNAME from Employee where SSN in(
select ESSN from Dependent
group by ESSN
having COUNT(*)>=2)
46.select PNO from Works_On where ESSN=(
select SSN from Employee where LNAME='Smith')
or PNO=(
select PNUMBER from project where DNUM=(
(select DNUMBER from Employee
join Department on Employee.SSN=Department.MGRSSN
where LNAME='Smith')))
数据库:练习题:1.查询所有员工的FNAME、LNAME、SSN、SEX和SALARY,并分别将SEX和SALARY的列名重命名为“性别”、“工资”。2.从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工资的降序排列,然后按FNAME的字母升序排列。...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
Lucene作为一个开放源代码全文检索工具包,具有优异的索引结构和良好的系统架构, 不仅可以通过它来构建具体的全文检索应用, 而且能方便地集成到各种系统软件中,本文对Lucene进行深入的研究和分析,以
(1) 函数: over()的作用及用法:-- 分区(分组)求和。
sum() over( partition by column1 order by column2 )主要用来对某个字段值进行逐步累加,连续求和;
排名函数:RANK ( ) OVER ( [query_partition_clause] order_by_clause ) --DENSE_RANK...
至少(at least)一般使用连接运算。目前我能想到的,大概有两个理由:
“至少”表明了一种存在性,而连接运算表明了这种存在性(因为如果不存在,是不会出现在连接运算的结果里的)。
“至少”隐含了对多于一个操作数(也就是不止一张表...
1:参加了项目名为“SQL Project”的员工名字;
mysql> select ename from employee,works_on,project where employee.essn=works_on.
essn and works_on.pno=project.pno and pname='sql project';
+------------+
| ename
1.实验目的
掌握MySQL关系数据库管理系统的基本命令,并熟练使用SQL语言管理MySQL数据库。掌握SQL语言的使用方法,学会使用SQL语言进行关系数据库查询,特别是聚集查询、连接查询和嵌套查询。
2.实验环境
Windows XP或Windows 7操作系统、MySQL5.1.41或MySQL5.6版本,Code Blocks编程环境。
3.实验内容
3.1实验任务
创建关系数据
多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。
前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。 比如:员工表和部门表,这两个表依靠“部门编号”进行关联。
等值连接 和 非等值连接
自连接 和 非自连接
内连接 和 外连接
3、 等值连接和非等值连接
3.1 等值连接
两个或以上表中存在同一个属性,通过属性相等进行连接。
# SQL92标准
#1. 普通多表查询
SELECT la
好的,下面是回复:
【Spark】Spark基础练习题(二)是一组用于练习Spark基础知识的题目。这些题目涵盖了Spark的常用操作,包括RDD的创建、转换和行动操作,以及Spark SQL的使用等。通过完成这些练习题,可以加深对Spark的理解和掌握,提高Spark编程能力。
### 回答2:
Spark 基础练习题2主要涉及到 Spark Core 和 Spark SQL。其中,Spark Core 是 Spark 最基础的模块,它包含了 Spark 的所有基本组件,如 RDD、SparkConf、SparkContext 和 Task 等,是使用 Spark 的起点。Spark SQL 则是 Spark 中处理结构化数据的核心模块,使用起来非常方便,能够快速地完成数据的查询和处理。
针对这道练习题,首先需要了解 Spark Core。Spark Core 中最重要的概念是 RDD(Resilient Distributed Dataset,弹性分布式数据集),它是一种分布式的内存计算模型,也是 Spark 进行数据处理的核心数据结构。在处理数据时,可以使用 RDD 对数据进行转换和操作,比如 map、filter、reduce、join 等操作。SparkContext 是 Spark 的入口点,它负责和集群进行通信,并控制整个应用程序的运行流程。另外,SparkConf 是 Spark 的配置管理器,可以指定一些应用程序的运行参数。
对于 Spark SQL,它采用的是类似于传统 SQL 的结构化查询语言,可以让用户使用 SQL 语句对数据进行查询和分析。在 Spark SQL 中,最常用的 API 是 DataFrame 和 Dataset。DataFrame 是以列为主导的数据结构,可以将它看成是关系型数据库中的表,它提供了灵活的编程和数据处理方式。Dataset 则是对 DataFrame 进行的补充,它将 DataFrame 转换成类型化的数据集合,提供了更好的类型检查和运行时安全。
综上所述,Spark 基础练习题2需要掌握 Spark Core 和 Spark SQL 的基础概念,并能够用它们进行数据处理和分析。需要注意的是,这里只是一个简单的练习题,如果想要真正学好 Spark,还需要深入学习 Spark 的各个模块和外部组件,比如 Spark Streaming、Spark MLlib 等,并掌握其高级应用场景。
### 回答3:
Spark是一个开源的分布式计算框架,可以用来加速大规模数据处理。在Spark中,一个重要的概念是Resilient Distributed Datasets(RDD),它是Spark分布式数据处理的基本单元。本文将介绍Spark基础练习题(二),帮助大家更好地理解和掌握Spark。
1. 定义RDD
RDD是Resilient Distributed Datasets的缩写,它是Spark中最基本的分布式数据结构。RDD是一个只读的、可分区、可并行计算的数据集合,支持多种数据源,包括Hadoop Distributed File System(HDFS)、本地文件系统以及其他支持Hadoop InputFormat的数据源。在Spark中,RDD可以通过各种操作转换和处理,例如map、filter、reduce等,同时支持缓存和持久化,可以提供高效的内存计算和数据共享。
2. RDD的特点
RDD具有以下特点:
- 分布式处理:RDD可以在Spark集群中分布式存储、计算和处理数据,支持高效的数据共享和并行计算。
- 可靠性和容错性:RDD具备不可变性,即一旦创建就不能修改。它可以通过记录分区的变换历史来实现容错性,如果某个分区的数据丢失或失效,可以重新计算。
- 惰性计算:RDD是一种惰性计算模型,支持高效的转换和操作,但只有在需要输出结果时才会真正计算。
- 可缓存和持久化:通过缓存和持久化机制,可以提高计算效率和速度,减少重复计算。
3. 创建RDD
在Spark中,可以通过多种方式创建RDD,常用的有以下几种:
- 从本地文件系统创建:使用SparkContext的textFile方法,可以将本地文件系统中的文件读入为RDD:
val fileRDD = sc.textFile("file:///path/to/file")
- 从HDFS创建:使用SparkContext的textFile方法或Hadoop API读取HDFS文件创建RDD:
val hdfsRDD = sc.textFile("hdfs://namenode:8020/path/to/file")
- 通过并行化集合创建:使用SparkContext的parallelize方法,可以创建一个包含给定集合中所有元素的RDD:
val listRDD = sc.parallelize(List(1, 2, 3, 4, 5))
4. RDD的转换操作
RDD支持多种转换操作,常用的有以下几种:
- map:对RDD中的每个元素应用一个函数,返回一个新的RDD。
val rdd1 = sc.parallelize(List(1, 2, 3, 4, 5))
val rdd2 = rdd1.map(_ * 2)
- filter:根据给定的条件过滤RDD中的元素,返回一个新的RDD。
val rdd1 = sc.parallelize(List(1, 2, 3, 4, 5))
val rdd2 = rdd1.filter(_ % 2 == 0)
- flatMap:对每个元素应用一个函数,并将结果展开为一个新的RDD。
val rdd1 = sc.parallelize(List("Hello world", "Spark is great"))
val rdd2 = rdd1.flatMap(_.split(" "))
- union:将两个RDD合并为一个新的RDD。
val rdd1 = sc.parallelize(List(1, 2, 3))
val rdd2 = sc.parallelize(List(4, 5, 6))
val rdd3 = rdd1.union(rdd2)
5. RDD的行动操作
行动操作是指对RDD进行计算并返回结果的操作。常用的行动操作有以下几种:
- count:返回RDD中元素的个数。
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val count = rdd.count()
- reduce:对RDD中的元素进行累加或拼接等操作。
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val sum = rdd.reduce(_ + _)
- collect:将RDD中的所有元素以数组的形式返回。
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val array = rdd.collect()
- foreach:对RDD中的每个元素应用一个函数。
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
rdd.foreach(println)
以上是Spark基础练习题(二)的简单介绍,通过熟练掌握和练习这些操作,相信大家能够更好地理解和应用Spark分布式计算框架,提高大数据处理的效率和速度。