1、
select d_name,max(salary) MAX_salary,min(salary) min_salary from drpt a inner join employee b on adept_no=bdept_no2、
selecte_name 姓名,d_name部门名称,datediff(yy,work_date,getdate()) 入职至今的年数,P_Name 职位,salsry 工资
from
drpt a
inner join employee b on adept_no=bdept_no
inner join position c on bposition_no=cposition_no
where
datediff(yy,work_date,getdate())>=5
order by salsry desc
其他的你自己写吧
我来帮你回答吧
第一句的查询语句是“select max(avg (价格)) from 商品表1”
第二句的查询语句是“select avg(数量)from 商品表1 order by avg 数量 desc where 分类名=? ”
第三句是“select 单价>2000 or 数量>=15 from 商品表1”
成都信息工程学院的吧
我有几道题的:
1 编写程序实现[1,40]的奇数平方和赋x,偶数平方和赋y,并输出x,y的值。
declare @a int,@b int ,@X int,@Y int,@sum int,@c int,@d int
set @a=1
set @b=0
set @X=0
while @a<=40
begin
set @b=@a@a
set @X=@X+@b
set @a=@a+2
end
set @c=2
set @d=0
set @Y=0
while @c<=40
begin
set @d=@c@c
set @Y=@Y+@d
set @c=@c+2
end
select @X as 奇数,@Y as 偶数
2 编写程序计算1-5000之间(含1和5000)所有能被9整除的数的个数及总和。
declare @n int,@sum int
set @n=9
set @sum=0
while @n<=5000
begin
set @sum=@sum + @n
set @n=@n+9
end
select @sum
3 计算1-9999以内的所有完全平方数(如36=66,则称36为完全平方数)的总和及个数。
declare @n int,@sum int ,@i int,@count int
set @i=1
set @count=-1
set @sum=0
set @n=0
while @n<=9999
begin
set @sum=@sum+@n
set @n=@i@i
set @i=@i+1
set @count=@count + 1
end
select @count,@sum
4 通过while循环计算10!。
declare @n int ,@sum int
set @n=1
set @sum=1
while @n<=10
begin
set @sum=@sum@n
set @n=@n+1
end
select @sum
5 完成程序依次显示大写字母A~Z(一行显示一个字母)。
declare @i int
set @i=0
while @i<26
begin
print char(ascii('A')+ @i)
set @i=@i+1
end
6 完成程序依次显示大写字母Z~A(一行显示一个字母)。
declare @i int
set @i=0
while @i<26
begin
print char(ascii('Z')-@i)
set @i=@i+1
end
7 显示今天是第几季度,输出格式为“第一季度”、“第二季度”、“第三季度”、“第四季度”。
declare @n varchar
set @n=(select datename(q,getdate()))
print '第'+@n+'季度'
8 查询2008级所有同学的学号、总评成绩的平均分、等级(90分以上A,80-90为B,70-80为C,60-70为D,60分以下为E),并按照等级升序输出(即先输出A级学生,再输出B级学生,最后输出E级学生)。
select 学号,avg(总评成绩),
(case when avg(总评成绩)>=90 then 'A'
when avg(总评成绩)>=80 and avg(总评成绩)<90 then 'B'
when avg(总评成绩)>=70 and avg(总评成绩)<80 then 'C'
when avg(总评成绩)>=60 and avg(总评成绩)<70 then 'D'
else 'E'end)等级
from 成绩 where 年级=2008
group by 学号
order by avg(总评成绩) desc
9 通过while循环绘制如下图形:
declare @i int
set @i=1
while @i<=5
begin
print space(5-@i)+replicate('',2@i-1)
set @i=@i+1
end
1 查询所有商品的商品名、单价、数量;
Select商品名,单价,数量
From 商品 ----------、 改为, 号即可
2 查询北京的仓库信息;
1种方法Select from 仓库 where 仓库名=’北京’
2种方法Select仓库号,仓库名,地址,面积
From 仓库
Where 仓库名=’北京’
(哪个对) -------------都对
3 查询面积不低于100的仓库号及地址;
Select仓库号,地址
from 仓库
where面积>=100 ------------ok
4 检索进货超过60天的商品情况;
-----------这个不对得改
select from 商品 where datediff(day,进货日期,getdate())>=60
5 核算所有商品的总价,并填入总价字段;
-----select sum(总价) as 总价 from 商品
6 按总价降序查询商品名、单价、数量和总价;
Select 商品名,单价,数量,总价 from 商品 order by 总价DESC
---------0k
7 查询北京仓库中的商品信息;
--这句也不对
select from 商品 where 仓库号=(select 仓库号 from 仓库 where 仓库名=‘北京’)
8 删除2006年1月1日之前进货的商品记录;
---------这句也不对
Delete from 商品 where 进货日期<’2006-1-1’
9 查询电视机的商品信息并将查询结果存入表TV中;
select into TV from 商品 where 商品名='电视机'
10 查询面积最大的仓库名及其中存放商品的名称和进货日期。
select 商品名称,进货日期,仓库名 from 商品 left join 仓库 on 商品仓库号=仓库仓库号 where 仓库号=(select top 1 仓库号 from 仓库 order by max(仓库面积)desc)
--------------注意 我期中的 括号和逗号 有的是中文 会报错
1select 班级名称,班级代码 from 班级 where 系部代码='02' or 系部代码='03';
2在'学生'表中查询姓'李'学员的学号,姓名,年龄;
3在'读者表' 表中查询名称中含有'红'的所有内容;
5select 姓名,年龄 from 教师 where 姓名 like '梅%';
4在'图书表'表中查询图书编号为'100111'的所有内容;
6在'读者表'表中查询'系部名称'为'自动化'的读者的最小年龄;
7在'用户表'表中查询姓名,年龄字段,并按年龄,姓名升序排列;
8select from 学生 where 姓名 like '张%' or 姓名 like '罗%' or 姓名 like '刘%' order by 姓名
9在'读者表'表中查询年龄大于60或小于1810的读者姓名;
10将编号为'115',姓名为'王梅',性别为'女'的记录插入'读者表'表;
11select 姓名 as name,出生日期 as 'Birthday' from 学生 where 性别='女'
排版没排好,看起来有点费力;顺序有点乱,不过我都按照你的顺序写了
--1分别查询学生表和学生修课表中的全部数据。
SELECT FROM student--查询学生表
SELECT FROM course--查询课程表
--2查询成绩在70到80分之间的学生的学号、课程号和成绩。
SELECT Sno 学号,Cno 课程号,Grade 成绩
FROM SC
WHERE Grade BETWEEN 70 AND 80
--3.查询C01号课程成绩最高的分数
SELECT TOP 1 Grade
FROM SC
WHERE Cno='C01'
ORDER BY Grade DESC--降序DESC,升序ASC
--4查询学生都选修了哪些课程,要求列出课程号。
SELECT Cname AS 学生选修的课程,Cno AS 课程号
FROM course
WHERE Cno IN(SELECT DISTINCT Cno FROM SC)--DISTINCT用来去除重复
--5查询Northwind数据库中orders表的OrderID、CustomerID和OrderDate,
--并将最新的定购日期(OrderDate)列在前边。
USE Northwind
GO
SELECT OrderID,CustomerID,OrderDate
FROM orders
ORDER BY OrderDate DESC--降序DESC,升序ASC
--6查询Northwind数据库中orders表的ShipCountry列以B,C,D,F --//ShipCountry BCDF
--开始且第三个字符为"a"的OrderID、CustomerID和ShipCountry的信息。//OrderID、CustomerID第三个字符为"a"
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry FROM orders
WHERE ShipCountry LIKE '[BCDF]_a%'--_下划线表示任意一个字符,%表示一个或多个字符
--7查询Northwind数据库中orders表的ShipCountry列不以A,B,C,D,E,F开始且最后一个字
--母是"a"的OrderID、CustomerID和ShipCountry的信息。
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry
FROM orders
WHERE ShipCountry LIKE '[^ABCDEF]%a'
--8查询修了C02号课程的所有学生的平均成绩、最高成绩和最低成绩。
SELECT AVG(Grade) 平均成绩,MAX(Grade) 最高成绩,MIN(Grade) 最低成绩
FROM SC
WHERE Cno='C02'
--9统计每个系的学生人数。
SELECT Sdept 系别,COUNT() 人数
FROM student
WHERE Sdept IN(SELECT DISTINCT Sdept FROM student)
GROUP BY Sdept
--10统计每门课程的修课人数和考试最高分。
SELECT Cname 课程名,COUNT() 修课人数,MAX(Grade) 考试最高分
FROM SC,course
WHERE SCCno IN(SELECT DISTINCT Cno FROM SC ) AND courseCno=SCCno
GROUP BY courseCname
--11统计每个学生的选课门数,并按选课门数的递增顺序显示结果。
SELECT studentSname 学生姓名,studentSno 学生学号,COUNT(SCSno) 选课门数
FROM student
inner join SC ON SCSno=studentSno
GROUP BY studentSname,studentSno
ORDER BY COUNT(SCSno) ASC
--12统计选修课的学生总数和考试的平均成绩。
SELECT COUNT(DISTINCT(Sno)) AS 学生总数,AVG(Grade) AS 平均成绩
FROM SC --//用DISTINCT消除重复的行
--13查询选课门数超过2门的学生的平均成绩和选课门数。
SELECT StudentSname,AVG(ScGrade) 平均成绩,COUNT(SCSno) 选课门数
FROM SC
--内联接join或inner join,内联系是比较运算符,只返回符合条件的行
JOIN Student ON (SCSno = StudentSno)
JOIN Course ON (SCCno = CourseCno)
GROUP BY StudentSname
HAVING COUNT(distinct CourseCno) >2--分组条件
--14列出总成绩超过200分的学生,要求列出学号、总成绩。
SELECT Sno 学号,SUM(Grade) 总成绩
FROM SC
GROUP BY Sno
HAVING SUM(Grade)>200
--15查询pubs数据库的titles表中每类图书的平均价格超过120元的书的类型(Type)、
--平均价格和最高价格。
USE pubs
GO
SELECT Type AS 书的类型,AVG(price) AS 平均价格,MAX(price) AS 最高价格
FROM titles
GROUP BY Type
HAVING AVG(price)>120
--16查询pubs数据库的titles表中每类图书中图书的数目超过3本的图书的总价格。
USE pubs
GO
SELECT 图书类型=Type,图书的数目=count(Type),图书的总价格=SUM(price)
FROM titles
GROUP BY Type
HAVING count(Type)>3
--17查询选修了c02号课程的学生的姓名和所在系。
SELECT Sname 学生姓名,Sdept 所在系,SCCno AS 选修课程
FROM student
inner join SC ON studentSno=SCSno
WHERE SCCno='C02'
--18查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
SELECT Sname 学生姓名,SCCno 课程号,SCGrade 成绩
FROM student
inner join SC ON studentSno=SCSno--内连接表SC查询
WHERE SCGrade>80
ORDER BY SCGrade DESC
--19查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。
SELECT Sname 姓名,Ssex 性别,SCGrade 成绩
FROM student
inner join SC ON Cno IN(SELECT Cno FROM course WHERE Cname='数据库基础') --显示成绩的条件
AND studentSno=SCSno --显示成绩的学生的学号
WHERE Sdept='计算机系' AND Ssex='男'
--20查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。
--这题使用到了表的自连接,所以需要给表取两个别名,如A和B
SELECT ASname 年龄相同的学生的姓名,ASage 年龄
FROM student A
inner join student B ON ASage IN(SELECT Sage FROM student WHERE ASage=BSage AND ASname!=BSname)
GROUP BY ASname,ASage
ORDER BY ASage
--21查询哪些课程没有人选,要求列出课程号和课程名。
SELECT Cno AS 课程号,Cname AS 课程名
FROM course
WHERE Cno NOT IN(SELECT DISTINCT SCCno FROM SC)
--22查询有考试成绩的所有学生的姓名、修课名称及考试成绩
--要求将查询结果放在一张新的永久表(假设新表名为new-sc)中。
SELECT studentSname AS 有考试成绩的学生的姓名,courseCname AS 修课名称,SCGrade AS 考试成绩
INTO [new_sc] --将查询结果放入新表new_sc中
FROM student,course,SC
WHERE SCGrade IS NOT NULL AND studentSno=SCSno AND courseCno=SCCno
--23分别查询信息系和计算机系的学生的姓名、性别、修课名称、修课成绩,
--并要求将这两个查询结果合并成一个结果集,
--并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。
--//此题用到了并union查询
SELECT Sdept 系名,Sname 姓名,Ssex 性别,courseCname 修课名称,SCGrade 修课成绩
FROM student
inner join SC ON studentSno=SCSno
inner join course ON courseCno=SCCno
WHERE Sdept='信息系'
UNION
SELECT Sdept 系名,Sname 姓名,Ssex 性别,courseCname 修课名称,SCGrade 修课成绩
FROM student
inner join SC ON studentSno=SCSno
inner join course ON courseCno=SCCno
WHERE Sdept='计算机系'
或
select sdept, sname,ssex,cname,grade from student,sc,course
where studentsno=scsno and sccno=coursecno and (sdept='信息系' or sdept='计算机系')
--24用子查询实现如下查询:
--(1) 查询选修了C01号课程的学生的姓名和所在系。
SELECT Sname AS 选修了C01号课程的学生的姓名,Sdept AS 所在系
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno='C01')
--(2) 查询数学系成绩80分以上的学生的学号、姓名。
SELECT Sno AS 数学系成绩80分以上的学生的学号,Sname AS 姓名
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Grade>80)
AND Sno IN(SELECT Sno FROM student WHERE Sdept='数学系')
--(3) 查询计算机系学生所选的课程名
SELECT Cname AS 计算机系学生所选的课程名
FROM course
WHERE
courseCno IN(SELECT DISTINCT Cno FROM SC WHERE SCSno IN(SELECT Sno FROM student WHERE Sdept='计算机系'))
--25将计算机系成绩高于80分的学生的修课情况插入到另一张表中,分两种情况实现:///////////////
--(1) 在插入数据过程中建表。
--使用SELECT INTO插入数据的方法,是在插入数据的过程中建立新表
SELECT studentSname AS 学生名字,courseCname AS 选修课程,SCCno AS 课程编号
INTO [SC_Info1]--将计算机系成绩高于80分的学生的修课情况插入到表SC_Info1中
FROM student,course,SC
WHERE studentSdept='计算机系' AND SCGrade>80 AND courseCno=SCCno AND studentSno=SCSno
--(2) 先建一个新表,然后再插入数据。
--创建表SC_Info2
CREATE TABLE SC_Info2
(
Sname char(7),
Cname char(20),
Cno char(10)
)
--往表SC_info2插入查询得到的结果
INSERT SC_Info2
SELECT studentSname AS 学生名字,courseCname AS 选修课程,SCCno AS 课程编号
FROM student,course,SC
WHERE studentSdept='计算机系' AND SCGrade>80 AND courseCno=SCCno AND studentSno=SCSno
--26删除修课成绩小于50分的学生的修课记录
DELETE SC WHERE Grade<50 OR Grade IS NULL
--27将所有选修了"c01"课程的学生的成绩加10分。
UPDATE SC
SET Grade=Grade+10
WHERE Cno='C01'
以上就是关于关于数据库查询的语句,大神帮帮忙。拜谢了全部的内容,包括:关于数据库查询的语句,大神帮帮忙。拜谢了、数据库查询语句、SQL的查询语句(题有点多,所以100分)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)