这题都不好好做,以后怎么工作噢。。。
4://考察in语法
select * from kc where 课程号 in ('101','102','302');
6.//考察对group by的理解
select 课程号,count(*) from xs_kc group by 课程号;
8.//考察对where语句中的and的理解。
select count(*) from xs_kc where 课程号=(select 课程号from kc where 课程名='c语言') and 成绩>60;
B. 请求解题 要求用SQL语句完成下列题目
按图中问题和需求,以下会使用mysql环境的sql进行解答。
第一题: 考察主键和外键的创建表语句,以及基本的创建语句格式。这里提供两种,其余可以查阅相关资料。
mysql 插入数据
C. SQL问题建表和查询的题目
create table student(stuid char(10)primary key,stuname varchar(10),major varchar(50))
go
create table book(bid char(10)primary key,title char(50),author char(20))
go
create table borrow(borrowid char(10)primary key,stuid char(10)foreign key references
student(stuid),bid char(10)foreign key references book(bid),t_time datetime,b_time datetime)
go
select c.stuid,a.stuname,c.bid,b.title,c.t_time
from student a,book b,borrow c
where a.stuid=c.stuid and b.bid=c.bid and a.major='计算机'
and c.t_time between '2007-12-15' and '2008-01-08'
select * from student where stuid in(select stuid from borrow)
select x.stuname,y..title,z.t_time,z.b_time from student x,book y,borrow z
where x.stuid=z.stuid and y.bid=z.bid and y.author='张三'
select a.stuname,COUNT(*)as 未还数量 from student a,borrow b
where a.stuid=b.stuid and b.b_time<>null
group by a.stuname
D. SQL数据库题目!!!急急急!!!
1)Students表:包含SNo,SName,SSex,SClass,SAge 其中SNo为主键
2)Courses表:包含CNo,CName,CGrade(开设学期),CScore(学分)、IsProfession(是否是专业课) 其中CNo为主键
3)Scores表:包含SNo,CNo,Score 其中SNo和CNo分别与Students中的SNo和Courses中的CNo有外键关系。
1)查询全班年龄在20岁至24岁之间的所有学生的信息。
select * from Students where SAge>=20 and SAge<=24 (是否包含20和24,修改相关=号)
2)查询开设学期为2的所有的专业课程号、课程名称、和学分。
select CNo,CName,CScore from Courses where CGrade=2 and IsProfession=1(假设专业课是此值为1)
3)查询学号为000004学生的所有课程的成绩。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER JOIN Courses ON Scores.CNo=Courses.CNo where Scores.SNo='000004'
4)查询姓名为“王明”的学生的所有及格课程的课程名称和成绩。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join
Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students where SName='王明') and Scores.Score>=60
5)查询班级为“0401”的所有学生的课程名为“SQL数据库管理”的成绩,按成绩降序的方式排列,如果成绩相同,则按照学号进行排列。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join
Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students
where SClass='0401' order by Scores.Score
E. sql题目,求大神,在线等!
你把分给我 ,我帮你做出来
第一条
create table stu1
(
sno varchar(8),
sname varchar(20),
ssex varchar(4),
ssex varchar(4),
sdept varchar(10)
)
F. 一道sql应用的题目,希望高手给我答案参考一下~非常感谢!!
-- 课程表,(名字起的有点烂)
create table CLASS
(
ID INTEGER,
NAME VARCHAR2(50)
)
insert into class (ID, NAME)
values (1, '语文');
insert into class (ID, NAME)
values (2, '数学');
insert into class (ID, NAME)
values (3, '英语');
insert into class (ID, NAME)
values (4, '物理');
--学生表
create table STUDENT
(
ID INTEGER,
NAME VARCHAR2(8)
)
insert into student (ID, NAME)
values (1, 'a');
insert into student (ID, NAME)
values (2, 'b');
insert into student (ID, NAME)
values (3, 'c');
insert into student (ID, NAME)
values (4, 'd');
insert into student (ID, NAME)
values (5, 'e');
--中间表
create table STU_CLASS
(
SID INTEGER,
CID INTEGER,
SCORE INTEGER
)
insert into stu_class (SID, CID, SCORE)
values (1, 1, 58);
insert into stu_class (SID, CID, SCORE)
values (1, 2, 58);
insert into stu_class (SID, CID, SCORE)
values (2, 1, 58);
insert into stu_class (SID, CID, SCORE)
values (2, 2, 58);
insert into stu_class (SID, CID, SCORE)
values (3, 1, 79);
insert into stu_class (SID, CID, SCORE)
values (3, 2, 79);
insert into stu_class (SID, CID, SCORE)
values (4, 2, 79);
insert into stu_class (SID, CID, SCORE)
values (5, 1, 23);
insert into stu_class (SID, CID, SCORE)
values (5, 3, 24);
以上是我所创建的三张表
下面是SQL,至于存储过程,没有创建也只是用SQL写了一下:
--查询所有选“数学”课程的学生学号,姓名和专业
select s.id, s.name
from student s, stu_class sc
where s.id = sc.sid and sc.cid = 2;
--删除所有选择数学的同学的选课记录
delete from stu_class sc
where sc.sid in (select sid from stu_class where cid = 2)
--查询有哪些课程没有被任何同学报选
select c.name
from class c
where c.id not in(select distinct(cid) from stu_class);
--能够查询出选修任何课程的学生信息及相应的分数
select s.*, sc.score from student s, stu_class sc where s.id = sc.sid and sc.cid = 3;
--以表格的形式返回本课程的平均分数
select avg(score) from stu_class where cid = 2;
G. 查询、视图与SQL习题 帮忙做一下!!!
1.A
2.D
3.A
4.B
5.C
6.A
暂时回答这些。
H. 试用SQL查询语句表达学生-课程数据库中3个基本表S,SC,C的查询
1)
CREATETABLESC(
Snoint,
Cnoint,
Gradedecimal(3,1)
);
注:
因为不知道S表的Sno的数据类型和Couser的Cno的数据类型。
因此这里暂时把Sno与Cno数据类型写成int,
如果知道那2个表的那2列的数据类型的话。
那么这里应该把数据类型修改成和那2列一样。
2)
SELECT
*
FROM
Course
WHERE
CnameLIKE'MIS!_%'ESCAPE'!'
ANDCnameLIKE'%系_';
3)
SELECT
count(distinctSno)
FROM
SC;
4)
UPDATE
SC
SET
Grade=(SELECTAVG(Grade)FROMSCWHERECno=3)
WHERE
Sno=95003
ANDCno=3;
5)
SELECT
*
FROM
S
WHERE
Sage>(SELECTMAX(s2.Sage)FROMSs2WHEREs2.Sdept='CS')
ORDERBY
Sage;
--中间可能断掉了部分题目
(3)
SELECT
S.SName
FROM
SJOINSCON(S.Sno=Sc.Sno)
JOINCourseON(Course.Cno=Sc.Cno)
WHERE
Course.不知道哪一列是老师列了...
ANDS.Ssex='女';
(4)
SELECT
Cno
FROM
Course
WHERE
NOTEXISTS(SELECT1FROMSCJOINSON(S.Sno=SC.SNO)WHERES.Sname='张同学'ANDSC.Cno=Course.Cno);
I. sql查询问题
这年头学生都当起老师来了。还会使用激励模式。
告诉你简单的办法,只要你会操作SQLSERVER就可以了。
建立这几个表,然后选择表右键,生成SQL脚本,建立表的SQL语句就有了。
其他的SQL你选择表右键,打开表,查询,然后自己填一下,SQL也就有了。
如果这也不会,那还是乖乖看书。
J. 帮忙做个SQL题目
第一题,用SQL 2005 做如下,如果是以前的版本,不支持PIVOT运算符,相对麻烦:
------------------------------------
select MName As 姓名,[语文],[数学],[英语],[历史]
from
(SELECT score.MID,Member.MName, F.FName,score.Score
FROM F
INNER JOIN score ON F.FID = score.FID
INNER JOIN Member ON score.MID = Member.MID) liming
PIVOT
( Sum(Score) FOR FName IN ("语文","数学","英语","历史") )
As pvt --任意名
Order By MID --可不排列
------------------------------------
第二题光求结果不要求特殊排列的话,相对简单
---------------------------------------------
SELECT Member.MName, F.FName,score.Score
FROM F
INNER JOIN score ON F.FID = score.FID
INNER JOIN Member ON score.MID = Member.MID
WHERE score.Score<70
---------------------------------------------
第三题也不难
--------------------------------------------
SELECT Member.MName, AVG(score.Score) as avgScore
FROM F
INNER JOIN score ON F.FID = score.FID
INNER JOIN Member ON score.MID = Member.MID
Group by score.MID,Member.MName --ID或者名字都一样,二选一或者都选
Order by avgScore
--------------------------------------------
第四题存储过程不知道你是要以参数输出还是以Select一次性全部输出,
就给你举例为查询全部输出吧,如下,因为一学生为中心,所以以学生表为主对象,如果需要传入参数,自己修改
--------------------------------------------
Create PROC selectF_PROC
AS
declare @s nvarchar(50)
declare @i int--循环的变量,如果按参数选择,可以修改为传入参数
set @i=0
while @i<=4
begin
set @s=N'参加'+CAST(@i AS nvarchar(5))+'次考试的学生'
SELECT Member.MID,Member.MName,@s
FROM F Right JOIN
score ON score.FID = F.FID Right Join
Member ON Member.MID = score.MID
group by Member.MID,Member.MName HAVING(count(score.FID)=@i)
set @i=@i+1
end
--------------------------------------------
执行语句:exec selectF_PROC