数据库简单查询和复杂查询.docx

上传人:b****4 文档编号:12400201 上传时间:2023-04-18 格式:DOCX 页数:10 大小:48.91KB
下载 相关 举报
数据库简单查询和复杂查询.docx_第1页
第1页 / 共10页
数据库简单查询和复杂查询.docx_第2页
第2页 / 共10页
数据库简单查询和复杂查询.docx_第3页
第3页 / 共10页
数据库简单查询和复杂查询.docx_第4页
第4页 / 共10页
数据库简单查询和复杂查询.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据库简单查询和复杂查询.docx

《数据库简单查询和复杂查询.docx》由会员分享,可在线阅读,更多相关《数据库简单查询和复杂查询.docx(10页珍藏版)》请在冰豆网上搜索。

数据库简单查询和复杂查询.docx

数据库简单查询和复杂查询

Department(dept_no,dept_name,location)Employee(emp_no,emp_fname,emp_lname,dept_no)Project(project_no,project_name,budget)Works_on(emp_no,project_no,job,enter_date)/*5.1部门的编号、名称和位置*/selectdept_no,dept_name,locationfromDepartment

/*5.2部门的编号、名称和位置*/selectdept_no,dept_name,location

fromDepartment

/*5.3查询位于Dallas的部门编号和名称*/selectdept_no,dept_namefromDepartmentwherelocation='Dallas'

/*5.4查询预算额的0.51倍大于60000的项目名称

*/selectproject_name

fromProject

wherebudget*0.51>60000

25348或职

/*5.5查询在部门编号为d1的部门工作且职员编号为工名称

为‘Matthew'的雇员信息*/

selectemp_no,emp_fname,emp_lname,dept_nofromEmployee

wheredept_no='d1'and(emp_no='25348'oremp_fname='Matthew')/*例5.6查询不在部门编号为d1的部门工作的职员编号和姓名*/

selectemp_no,emp_fname,emp_lname

fromEmployee

wheredept_no!

='d1'

/*例5.7获取编号既不是10102也不是9031的职员的所有列。

*/

select*

fromEmployee

whereemp_no!

='10102'andemp_no!

='9031'

/*例5.8获取预算在$95000~$120000之间的所有项目的名称和预算。

*/

selectproject_name,budget

fromProject

wherebudgetbetween9031and95000

/*例5.9获取预算小于$95000和大于$120000之间的所有项目

的名称

*/

selectproject_name

fromProject

wherebudgetbetween95000and120000

/*5.10获取为项目2工作的,具有未知工作的所有职员的职员编号和相应的项目编号。

*/selectEmployee.emp_no,project_nofromEmployee,Works_onwhereEmployee.emp_no=Works_on.emp_noandproject_no='2'andjob='NULL'

/*例5.11找出所有姓是以字母J开头的职员的名字和编号。

*/

selectemp_fname,emp_no

fromEmployeewhereemp_lnamelike'J%'

/*例5.12找出所有名中第二个字母是a的职员的名字和编号。

*/

selectemp_fname,emp_no

fromEmployee

whereemp_fnamelike'_a%'

/*例5.13获取所在地名从C到F的字母打头的所有部门的详细资料。

*/

select*

fromDepartment

wherelocationlike'C%'orlocationlike'D%'orlocationlike'E%'orlocationlike'F%'

/*例5.14获取姓的打头字母不是J,K,L,M,N,O,并且名的开头字母是E或者Z的所有职员的编号和名字。

*/

selectemp_no,emp_fname

fromEmployee

where(emp_lnamenotlike'J%'andemp_lnamenotlike'K%'andemp_lnamenotlike'L%'and

emp_lnamenotlike'M%'andemp_lnamenotlike'N%')andemp_fnamelike'E%'

oremp_fnamelike'Z%'

/*例5.15

*/

SELECTproject_no,project_name

FROMproject

WHEREproject_NAMELIKE'%[_]%'

/*例5.16获取在研究部门工作的所有职员的名和姓。

*/selectemp_fname,emp_lnamefromEmployeewheredept_noin(selectdept_nofromDepartmentwheredept_name='Reserch')/*例5.17获取职员moser参与的项目编号。

*/selectproject_nofromWorks_onwhereemp_noin(selectemp_nofromEmployeeasEwhereemp_fname='moser')/*例5.18获取部门位于Dallas的所有职员的详细信息。

*/select*fromEmployeewheredept_noin(selectdept_nofromDepartmentwherelocation='Dallas')/*例5.19获取为项目工作的所有职员的姓。

*/selectemp_lname

fromEmployeewhereemp_noin(selectemp_nofromWorks_onwhereproject_no!

='NULL')

/*例5.20获取不是在项目上花费了最多时间的所有职员的编号、项目编号和工作名称。

*/selectemp_no,project_no,jobfromWorks_onwhereenter_date>all(selectMIN(enter_date)fromWorks_on)

/*例5.21获取为项目p1工作的所有职员的名和姓。

*/selectemp_fname,emp_lnamefromEmployeewhereemp_noin(selectemp_nofromWorks_onwhereproject_no='p1')

/*例5.22选择编号大于等于10000的所有职员的名字。

selectemp_fnamefromEmployeewhereemp_no>=10000

/*例5.23使用项目编号和工种对所有职员分组。

*/

selectproject_no,count(emp_no)fromWorks_ongroupbyproject_no,job

/*例5.25获取最小的职员编号

*/

selectMIN(emp_no)

fromEmployee

/*例5.26(0)获取最小的职员编号和姓

*/selectemp_no,emp_lnamefromEmployeewhereemp_noin(selectMIN(emp_no)fromEmployee)

/*例5.26

(1)获取表WORKS_ON中进入时间最晚的经理的职员编号

*/selectemp_nofromWorks_onwhereenter_datein(selectmax(enter_date)fromWorks_on)

/*例9.27计算所有项目预算的总和*/

selectSUM(budget)

fromProject

/*例5.28计算每个项目中不同工种的数目*/

selectproject_no,COUNT(job)fromWorks_ongroupbyproject_no

/*例5.29每个项目中有多少职员为其工作*/

selectproject_no,COUNT(emp_no)fromWorks_ongroupbyproject_no

/*例5.30获取招募的总人数少于4个的项目

selectproject_nofromWorks_ongroupbyproject_nohavingCOUNT(emp_no)<4

/*例5.31获取职员的名字和职员编号,以职员编号升序排列*/selectemp_fname,emp_no

fromEmployee

orderbyemp_noasc

/*5.32获取编号小于2000的职员所在的部门和其编号,并以姓和名升序排列

*/selectdept_name,emp_nofromDepartmentasD,EmployeeasEwhereD.dept_no=E.dept_noandemp_no<2000orderbyemp_fnameasc

/*5.33对于每个项目编号,取得其所有的项目编号以及职员数量,以职员数量降序排列。

*/selectproject_no,COUNT(emp_no)ascountOfEmp_nofromWorks_on

groupbyproject_no

orderbycountOfEmp_nodesc

/*5.34获取属于部门D1或者参加项目的时间早于1998年1月1日的所有职员的编号,并以升序排列。

*/

selectE.emp_nofromWorks_onasW,EmployeeasEwhereW.emp_no=E.emp_noand(E.dept_no='d1'orenter_date<'1998-01-0100:

00:

00.000')

orderbyemp_noasc

Department(dept_no,dept_name,location)Employee(emp_no,emp_fname,emp_lname,dept_no)

Project(project_no,project_name,budget)

Works_on(emp_no,project_no,job,enter_date)

/*1.获取每个职员的详细信息;也就是说除了职员的编号、名和姓、相应的部门编号以外,还要获取所在部门的名字和坐落地点。

*/

select*fromEmployeeasE,DepartmentasD

/*2.获取为Gemini项目工作的所有职员的全部详细信息

*/selectemp_no,emp_fname,emp_lname,dept_no,dept_name,location

fromEmployeeasE,DepartmentasD

fromWorks

whereproject_no

in(selectproject_nofromProjectwhereproject_name='Gemini'))

/*3获取每个职员的详细信息;也就是说除了职员的编号、名和姓、相应的部门编号以外,还要获取所在部门的名字和坐落地点。

*/select

fromEmployeeasE,DepartmentasD

/*4获取每个职员的详细信息;也就是说除了职员的编号、名和姓、相应的部门编号以外,还要获取所在部门的名字和坐落地点。

*/select

fromEmployeeasE,DepartmentasD

 

/*5获取年月日加入项目的所有职员的部门编号。

*/

selectdept_no

fromDepartment

wheredept_noin(selectdept_nofromEmployee

whereemp_noin(selectemp_nofromWorks_on

whereenter_date='1998-10-15'))

/*6获取会计部门中的职员所工作的项目名称(冗余重复元组删去)*/

selectdistinctproject_name

fromProject

whereproject_noin(selectproject_nofromWorks_on

whereemp_noin(selectemp_nofromEmployee

wheredept_noin(selectdept_nofromDepartment

wheredept_name='会计')))

/*7获取与至少一个其它的部门拥有相同所在地的所有部门的全部详细信息。

*/

selectfromDepartmentasD1

wherenotexists(select*fromDepartmentasD2

andnotexists(select*fromDepartmentasD3

andD3.location=D2.location))

select*

fromDepartmentasD1

asD2

wherelocationin(selectlocationfromDepartment

whereD2.dept_name!

=D1.dept_name)

/*8获取为项目P3工作的所有职员的姓。

*/

selectemp_lname

fromEmployee

whereemp_noin(selectemp_nofromWorks_on

whereproject_no='P3')

/*9获取为项目P1工作的所有职员的姓。

*/

selectemp_lname

fromEmployee

whereemp_noin(selectemp_nofromWorks_onwhereproject_no='P1')

/*10获取工作部门不在Seattle的所有职员的姓

*/

selectemp_lname

fromEmployee

wheredept_noin(selectemp_nofromDepartmentwheredept_name!

='Seattle')

/*11.求参加了全部工程的职员信息

*/

select*

fromEmployeeasEandw.project_no=P.project_no))

/*12.求没有使用科研处职员的所有项目信息

*/

select*

fromProject

whereproject_nonotin(selectproject_nofromWorks_onwhereemp_noin(selectemp_nofromEmployee

wheredept_noin(selectdept_nofromDepartmentwheredept_name='科研处')))

/*13获取参与项目的日期与表中最早的日期相等的所有职员的编号和参与日期。

*/

selectemp_no,enter_date

fromWorks_on

whereenter_date=(selectMIN(enter_date)fromWorks_on)

/*14获取在年月日加入项目的所有职员的编号,姓和工种。

*/

selectEmployee.emp_no,emp_lname,job

fromEmployee,Works_on

whereEmployee.emp_no=Works_on.emp_no

andenter_date='1998-10-15'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1