--1.查询读者最喜爱的3种图书分类号,即借阅表中出现最多的3类图书分类号
SELECT TOP 3 [分类号] FROM [图书] JOIN [借阅] ON [图书].[图书编号]=[借阅].[图书编号]
GROUP BY [分类号] ORDER BY COUNT(*) DESC
--附加题
--1.查询小于20岁的读者最喜欢的3类图书
SELECT TOP 3 [书名] FROM [读者] JOIN [借阅] ON [读者].[借书证号]=[借阅].[借书证号]
JOIN [图书] ON [图书].[图书编号]=[借阅].[图书编号]
WHERE [年龄]<20 GROUP BY [书名] ORDER BY COUNT(*) DESC
--2.查询至少借阅了 宁静 所借图书(书名相同)的人的姓名
SELECT [姓名] FROM [读者] WHERE [姓名]<>'宁静' AND [借书证号] IN(SELECT [借书证号] FROM [借阅]
WHERE [图书编号] IN(SELECT [图书编号] FROM [读者] JOIN [借阅] ON [读者].[借书证号]=[借阅].[借书证号] WHERE [姓名]='宁静'))
--3.查询借阅了多于3本书且每本书价均高于60的读者的借书证号
SELECT [借书证号]
FROM [借阅] JOIN [图书] ON [图书].[图书编号]=[借阅].[图书编号]
WHERE [单价]>60 GROUP BY [借书证号] HAVING COUNT(*)>3
GO
--4.假定读者表中所有人姓名均不多于4个汉字,请建立一个查询语句,要求根据名字中任意1个或两个或3个或4个汉字,即可找到该读者的详细信息(即完全模糊查询)
CREATE PROCEDURE CX
@XM VARCHAR(8) AS
IF LEN(@XM)=1 SELECT * FROM [读者] WHERE @XM LIKE '['+RTRIM([姓名])+']'
ELSE IF LEN(@XM)=2 SELECT * FROM [读者] WHERE LEFT(@XM,1) LIKE '['+RTRIM([姓名])+']' AND RIGHT(@XM,1) LIKE '['+RTRIM([姓名])+']'
ELSE IF LEN(@XM)=3 SELECT * FROM [读者] WHERE LEFT(@XM,1) LIKE '['+RTRIM([姓名])+']' AND SUBSTRING(@XM,2,1) LIKE '['+RTRIM([姓名])+']' AND RIGHT(@XM,1) LIKE '['+RTRIM([姓名])+']'
ELSE IF LEN(@XM)=4 SELECT * FROM [读者] WHERE LEFT(@XM,1) LIKE '['+RTRIM([姓名])+']' AND SUBSTRING(@XM,2,1) LIKE '['+RTRIM([姓名])+']' AND SUBSTRING(@XM,3,1) LIKE '['+RTRIM([姓名])+']' AND RIGHT(@XM,1) LIKE '['+RTRIM([姓名])+']'
GO
1:select *职工号 from 工作关系 where "公司号=C2" AND "公司号=C5"2:UPDATE 工作关系
SET工资 = 工资 * 1.05
WHERE公司号IN
(SELECT公司号
FROM 公司关系
WHERE公司名 =‘联华公司’
还有一题啊》??给我加分哦。
3、SELECT 作者名,书名,出版社
FROM 图书,作者
WHERE 图书 . 作者编号 = 作者 . 作者编号
AND 年龄 <= (SELECT AVG (年龄)
FROM 作者)
同学,这些是数据库里面的最基本知识。你只要用心去学习就肯定会的。SQL语句里面也就SELECT,INSERT,DELETE,UPDATE等基本语句的
---1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话
CREATE
TABLE
student
(
[id]
[int]
IDENTITY(1,1)
NOT
NULL,
[student_id]
[nvarchar](50)
NULL,
[studen_name]
[nvarchar](50)
NULL,
[age]
[int]
NULL
,
[sex]
[nvarchar](5)
NULL,
[address]
[nvarchar](200)
NULL,
[tel]
[nvarchar](20)
NULL
)
--2)
修改学生表的结构,添加一列信息,学历
education
alter
table
student
add
education
nvarchar(10)
NULL
--3)
修改学生表的结构,删除一列信息,家庭住址
alter
table
student
drop
column
address
--5)
修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
update
student
set
education='大专'
where
tel
like
'11%'
--6)
删除学生表的数据,姓名以C开头,性别为‘男’的记录删除
delete
student
where
studen_name
like
'C%'
and
sex='男'
--7)
查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来
select
studen_name,student_id
from
student
where
age<12
and
education='大专'
--8)
查询学生表的数据,查询所有信息,列出前25%的记录
select
TOP
25
PERCENT
*
from
student
--9)
查询出所有学生的姓名,性别,年龄降序排列
select
studen_name,sex,age
from
studen
order
by
age
desc
--10)
按照性别分组查询所有的平均年龄
select
avg(age)
as
age
from
studen
group
by
sex
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)