求SQL查询语句答案!!!!

作者&投稿:方冠 (若有异议请与网页底部的电邮联系)
求一个SQL语句的答案~

第一步:把三张表inner join关联,查询出所有学生的所有课程的所有得分。

请点击输入图片描述
第二步:把第一步的结果,进行“行->列”的转换,此时有group by和聚合函数的使用。

请点击输入图片描述
第三步:把第二部的结果进行筛选,筛选的条件是:数据库和数据结构的得分都不为空,表示既选择了数据库课程又选择了数据结构课程,数据库的得分要 大于 数据结构的得分。

请点击输入图片描述

1、SQL语句:select u.*,r.*,r.id rid
from user u left join sys_user_role sur on u.id = sur.useridleft join sys_role r on sur.roleid = r.id
图片:(表名截图)

请点击输入图片描述
请点击输入图片描
注1:user(用户表),sys_role(角色表),sys_user_role(关系表)。
表1:user(下图)

请点击输入图片描述
请点击输入图片描述
表2:sys_role(下图)

请点击输入图片描述
请点击输入图片描述
表3:sys_user_role(下图)

请点击输入图片描述
请点击输入图片描述
算了,建表语句也给你们了,你们自己测试,这样更详细,(程序员)多动手,比什么都好。(这里的 界面 对写代码不太友好,我放博客里了,自己复制粘贴测试使用就行)
sql语句地址:网页链接
2、SQL语句解释:
select a.*,b.*
from a表 a left join b表 b on a.id = b.aid
left join c表 c on b.cid = c.id
注2:此语句适合a表与c表连接,b表是关系表的情况。

(1) 统计每一个系有多少个学生并且系的人数必须超过300,显示内容:系名、系号、学生人数。(一条SQL)
select t1.*,t2.人数 from #DEPARTMENT t1,
(select count(*) as 人数 , deptid from #CLASS group by deptid having count(*)>300) t2
where t1.deptid=t2.deptid

(2)找出所有姓李的学生,显示内容: 系名、学号、姓名、专业名,并且按系名升序、姓名降序进行排序。(一条SQL)
select t3.deptname,t2.studentid,t2.name,t1.subject
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t2.name like '李%'
order by t3.deptname , t2.name desc

(3)通过建立视图,查询年龄在16到18岁之间的学生,显示内容:系名、姓名、年龄、入学年份。(一条SQL)

create view test
as
select t3.deptname,t2.name,t2.age ,t1.enrolltime
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t2.age between 16 and 18

(4)查询学生人数最多的系的所有学生名单(可能存在两个或以上的系),显示内容:系名、姓名、专业名、年龄。(一条SQL)

select t3.deptname,t2.name,t1.subject,t2.age
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3, (select count(t1.studentid) as 人数 , t2.subject from #STUDENT t1, #CLASS t2 where t1.classid=t2.classid group by t2.subject) t4
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t1.subject=t4.subject
and t4.人数= (select max(t.人数) from ( select count(t1.studentid) as 人数 , t2.subject from #STUDENT t1, #CLASS t2 where t1.classid=t2.classid group by t2.subject) t )

班CLASS :(班号classid,专业名subject,系号deptid,入学年份enrolltime)
学生STUDENT :(学号studentid,姓名name,年龄age,班号classid)
系 DEPARTMENT :(系号deptid,系名deptname)
(2) select deptname,studentid,name,subject from student,class,deparement where name in '李 ' order by deptname,name desc.

1)
select d.deptid,d.deptname,count(s.studentid) as s_count
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid,d.deptname
having count(s.studentid) > 300

2)
select d.deptname,s.studentid,s.[name], c.subject
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where s.[name] like '李%'
order by d.deptname asc ,s.[name] desc

3)create view vStudent
as
select d.deptname,s.[name], s.age,c.enrolltime
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where s.age between 16 and 18

4)
select d.deptname,s.[name],c.subject ,s.age
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where d.deptid in
(
select d.deptid
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid
having count(s.studentid) =
(
select max(ct)
from
(
select count(s.studentid) as ct
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid
) x
)
)


急!关于用SQL语句表达数据库查询
1、select Cno,Cname from Course where Teacher='刘老师';2、select Sno,Sname from Student where Sage < 22;3、select Sname from Student where Sno not in(select Sno from sc inner join Course on sc.Cno=Course.Cno where Course.Teacher='刘老师');4、select Sname from Student where ...

求SQL查询语句答案!!!
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3 where t1.classid=t2.classid and t1.deptid=t3.deptid and t2.name like '李%'order by t3.deptname , t2.name desc (3)通过建立视图,查询年龄在16到18岁之间的学生,显示内容:系名、姓名、年龄、入学年份。(一条SQL)create view ...

在SQL中如何查询日期在一定范围内的数据?
答案:使用SQL查询日期在一定范围内的数据,通常使用`BETWEEN`操作符结合日期字段进行查询。详细解释:1. 使用BETWEEN操作符:在SQL中,要查询某个日期范围内的数据,最常用的方法是使用`BETWEEN`操作符。这个操作符允许你指定一个范围,并获取在这个范围内的所有记录。2. 语法结构:基本的语法结构如下:sq...

使用SQL语句从公司表中查询所有名称以北京开头的信息,正确的命令是...
【答案】:C 本题考查简单查询条件的书写,表示“北京”开头的信息,可以使用LEFT函数,因为一个汉字占2个字符,所以SELECT语句中的WHERE子句应书写成:LEFT(名称,4)=“北京”,故C选项正确。

求一个SQL语句的答案
第一步:把三张表inner join关联,查询出所有学生的所有课程的所有得分。请点击输入图片描述 第二步:把第一步的结果,进行“行->列”的转换,此时有group by和聚合函数的使用。请点击输入图片描述 第三步:把第二部的结果进行筛选,筛选的条件是:数据库和数据结构的得分都不为空,表示既选择了数据...

sql语句求答案 请按1.2.3.4.的格式,谢谢
1 select * from user 2 select * from user where User_no='1000114'3 select * from user where sal>3000 4 select * from user where user_name like '张%';5 select * from user where user_name like '%一%';6 select * from user order by sal asc 7 select...

sql按时间范围查
答案:可以通过SQL中的WHERE子句和日期函数来实现按时间范围查询。具体的查询语句会根据所使用的数据库系统略有差异。大致的查询语句结构如下:`SELECT * FROM 表名 WHERE 时间字段名 BETWEEN 开始时间 AND 结束时间;`详细解释:1. SQL中的时间范围查询:在关系型数据库中,经常需要根据时间范围来检索数据...

sql语句中betweenand
答案:在SQL语句中,BETWEEN AND是一个用于范围查询的关键字组合。它可以用来筛选在某个范围内的数据。详细解释:BETWEEN AND的基本用法 在SQL查询中,BETWEEN关键字用于指定一个范围,并筛选出在这个范围内的记录。它通常与数值或日期等数据类型一起使用。其基本语法如下:sql SELECT 列名称 FROM 表名称 ...

SQL查询语句求助
性别,籍贯 from 学生表 where not exists (select from 课程表 where 选修课程!='语文' and 选修课程 !='数学' and exists (select from 选修表 where 学生表.姓名 = 选修表.姓名 and 选修表.选修课程=课程表.选修课程 ))这道题比较难理解,主要要用到转换思想,希望我的答案对你有帮助 ...

SQL的练习,求答案!!!
有一些类似的题看看吧 一定有帮助 实验一 练习1、请查询表DEPT中所有部门的情况。select * from dept;练习2、查询表DEPT中的部门号、部门名称两个字段的所有信息。select deptno,dname from dept;练习3、请从表EMP中查询10号部门工作的雇员姓名和工资。select ename,sal from emp where deptno=10;练...

大悟县15898245875: 求SQL查询语句的编写?1.查询全体学生的姓名、学号、性别和出生日期.2.查询考试成绩在65以上(含)的学生学号和成绩.3.查询“07计算机1”和“07计算... -
邹亭卓舒:[答案] 1. 查询全体学生的姓名、学号、性别和出生日期.select 姓名,学号,性别,出生日期 from 学生信息表2. 查询考试成绩在65以上(含)的学生学号和成绩.select 学号,成绩 from 成绩表 where score>=653. 查询“07计算机1...

大悟县15898245875: 求1句SQL查询语句 -
邹亭卓舒: 在查询分析器运行以下语句declare @sql varchar(4000) set @sql = 'select 编号' select @sql = @sql + ',sum(case 状态 when '''+状态+''' then ''1'' end) as '+状态 from (select distinct 状态 from 表) as a set @sql = @sql+' from 表 group by 编号' exec(@sql)

大悟县15898245875: 求sql查询语句哪位大哥帮帮忙?
邹亭卓舒: select COUNT (*) as 姓名总数from(select distinct 日期,姓名 from test)as G用(select distinct 日期,姓名from test)这个查询去掉重复的,然后再直接计数即可 额,忘了说了,from test的test换成你自己的表名

大悟县15898245875: 求sql查询语句
邹亭卓舒: select * from (select count(*) from table) as all,(select count(*) from table where apple>=3) as big,(select count(*) from table where apple<3) as small where all.name=big.name and all.name=small.name group by name 每个查询后面+一个group by name

大悟县15898245875: sql查询语句? -
邹亭卓舒: SELECT <列名列表> [,…n] FROOM <表名>功能:从指定表总选出指定的列 --重复,分组S...

大悟县15898245875: 求写一个sql查询语句
邹亭卓舒: select * from 表名 where 字段名='306999900'

大悟县15898245875: 问一条sql查询语句
邹亭卓舒: 你的工资表应该有主键或(唯一标识列),这里假设这个唯一标识列的列名为 id 那么你的SQL语句应该像下面这样写: select top 3 * from salary order by 工资 desc union all select * from salary order where id not in(select top 3 id from salary order by 工资 desc)

大悟县15898245875: SQL 查询语句 -
邹亭卓舒: SELECT EmployeeName,Orderdate///由于订单日期是变化的,你这分组表明同一时间同一个人下了两次订单才行..明显与下面不同.FROM orderMaster,employeeWHERE orderMaster.SaleNo = employ...

大悟县15898245875: sql查询语句求助(基本题) -
邹亭卓舒: select au_id as 作者编号,(au_lnam +au_fname) as 姓名,address as 地址 from a...

大悟县15898245875: SQL 查询语句,求大神支教 -
邹亭卓舒: 1、显示订单表中所有的信息.select * from 表名;2、列出所有中止供应的产品.select * from 产品表 where 终止供应=1;3、列出所有总订购量为0的产品.select * from 产品表 where 总订购量=0;4、列出客户表中所有客户的联系人姓名和所在公...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网