数据库具体是指哪种数据具体用途是什么

数据库具体是指哪种数据具体用途是什么,第1张

SELECT

EmployeesName,

JobTitleHistoryTitle,

DepartmentDepartmentName

FROM

Employees

JOIN JobTitleHistory

ON (EmployeesUserID = JobTitleHistoryUserID )

JOIN Department

ON (DepartmentDepartmentID = JobTitleHistoryDepartmentID )

WHERE

-- 这里的条件是: 不存在有 JobTitleHistory 数据,比当前的 日期更大

-- 从而使得上面主查询的结果中,是 EffectiveDate 最大的一行数据。

NOT EXISTS (

SELECT 1

FROM JobTitleHistory jth

WHERE

jthUserID = JobTitleHistoryUserID

AND jthEffectiveDate > JobTitleHistoryEffectiveDate

)

1使用文件来记录,下次运行时读取 2使用数据库,可以考虑单机数据库或网络数据库 3如果数据量小,使用注册表

或者可以通过程序来保存:

set fs=createobject("scriptingfilesystemobject")'创建文件 *** 作对象

if fsfileexists("C:\atxt") then'如果C盘Atxt存在,那么读取其内容

set txt=fsopentextfile("C:\atxt",forreading,true)

set txtn=txtreadall

else'

set txtf=fscreatetextfile("c:\atxt",true)'创建C盘下的atxt

do'无限循环

wscriptsleep 1000'延时一秒

txtfwrite atext'写入文本框中内容

loop'循环结束

end if'判断结束

create trigger tri_name

on employees

after update

as

if 工资变动额<500

begin

end

else

begin

end

、等级查询

题目:员工信息表中有员工ID、姓名、上级员工ID字段,现要求用一条语句,查询出全部员工的ID、姓名及级别——最高为1级,其下依次为2、3、4等,如下图所示:

员工信息表为Oracle数据库hr用户下的employees表,员工ID的字段名为employee_id,姓名为first_name || ' ' || last_name,上级员工ID为manager_id。在创建Oracle实例时,hr用户及该表自动生成。

通过对员工信息表的分析,发现如下线索:

1、本级员工的manager_id即为上一级员工的employee_id;

2、其中最高级员工的上级员工为空,其他级别都不为空。

如果一张数据库表中存在等级数据,则应使用START WITH … CONNECT BY [PRIOR] …关键字,进行等级查询,其中:

1、START WITH关键字标识数据表中最高等级的特征;

2、CONNECT BY关键字标识上下级行的关系;

3、PRIOR关键字标识此行是上一级行(原文是In a hierarchical query, one expression in condition must be qualified with the PRIOR operator to refer to the parent row);

4、使用LEVEL伪列显示层级关系。

综上,查询语句为:

SELECT EMPLOYEE_ID,

FIRST_NAME || ' ' || LAST_NAME AS NAME,

LEVELFROM EMPLOYEESSTART WITH MANAGER_ID IS NULLCONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID;

二、排序

题目:员工信息表中有员工ID、姓名、部门ID、工资字段,现要求用一条语句,查询出每个员工在整个公司以及本部门工资的排名(升序或降序排列均可),如下图所示:

对于排序,我原来只知道利用ROWNUM伪列:

SELECT E,

ROWNUM

FROM (SELECT

FROM EMPLOYEES

ORDER BY SALARY DESC) E

然后再用这个结果集和其他表关联,针对本题,这种方法可以查出每个员工在整个公司以及本部门工资的排名,但在我看来有如下两个问题:

1、一张事实表关联两次,效率低下;

2、无法查询出每个员工在整个公司以及本部门工资的排名,除非用循环,但又不是一条语句了。

数据库表中对数值字段进行排名,应使用RANK函数,该函数的作用就是计算一个值在一组值中的排名,返回值为数值型,形式为RANK() OVER (PARTITION BY … ORDER BY …),其中:

1、PARTITION BY关键字为用于排序的分组,也就是说如果查询全部数据中的排名,则该关键字可省略;

2、ORDER BY关键字即为按哪个字段进行排序,空或ASC为升序,DESC为降序,与标准SQL没区别;

3、如果两行数据用于排序的字段值完全相同,则二者的RANK返回值(序号)也相同,序号不连续(英文是Identical salary values receive the same rank and cause nonconsecutive ranks),还有类似的DENSE_RANK()函数,相同值的序号相同,序号连续;ROW_NUMBER()函数,每个值的序号唯一,相同值有可能按照ROWNUM的次序编号(这个不确定,官方文档没说,我推测的-_-),这三个函数的使用方法相同。

以上就是关于数据库具体是指哪种数据具体用途是什么全部的内容,包括:数据库具体是指哪种数据具体用途是什么、怎么在sql developer里创建表departments和employees啊、sql server 2008的某个数据库中有名为JobTitleHistory,Employees和Department的三张表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10078455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存