数据库查询语句

假设学生选课数据库关系模式如下, 请写出下面数据库查询语句
Student (SNo, SName,SSex, SClass);学生表:学号,学生姓名,性别,班级
Course (CNo, CName); 课程表:课程编号,课程名称
StudentCourse SC (SNo,CNo, Score) 成绩表: 学号,课程编号,成绩
1) 查询学生总人数
2) 查询选修了课程的学生人数
3) 计算1号课程的学生平均成绩
4) 查询选修了3门以上课程的学生的学号
5) 从学生选课数据库中查询选修“数据库原理”课并且成绩在90分以上的学生名单

数据库查询语句需要根据不同的需求进行编写。(以MySQL数据库查询为例)

1、如果需要查询某个数据表的所有字段,则使用 * 代表所有字段进行查询即可。该种方式是最简单的一种查询。

2、若需要查询某表的某些字段,则在select后加上字段名,多个字段名使用 , 进行分隔。

3、若需要根据指定条件查询某些数据记录,则可以使用 where关键字来进行条件查询。

4、若需要对查询结果进行分组,则可以使用 Group By 关键字来进行分组查询。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-30

在使用 Laravel 的时候,很多时候我们想知道背后执行的数据库查询语句是什么。
这个其实可以有一个很简单的方法:

在 app\Providers\AppServiceProvider 里面:

public function boot()    {        if ( $this->app->environment() === 'local' ) {           \Log::info(\DB::getQueryLog());        }    }

如果没有效果的话,记得在代码前面执行 DB::enableQueryLog()。在使用 tinker 的情况下也是可以的:

⚡ php artisan tinkerPsy Shell v0.7.0 (PHP 7.0.4-7+deb.sury.org~wily+2 — cli) by Justin Hileman>>> DB::enableQueryLog(); => null>>> App\User::all();=> Illuminate\Database\Eloquent\Collection {#771     all: [       App\User {#777         ...       },       App\User {#778         ...       },       ...     ],   }>>> DB::getQueryLog();=> [     [       "query" => "select * from "users"",       "bindings" => [],       "time" => 0.32,     ],   ]

主要在 tinker 最开始的时候执行 DB::enableQueryLog() ,然后你执行完数据库查询后,就可以使用 DB::getQueryLog() 查看了

本回答被网友采纳
第2个回答  2014-12-01
(我不太清楚你说的课程号是指CNO还是CNAME,我这里假定你说的课程号为CNO,以下语句均未考虑字段数值类型)
1、SELECT A1.SNO,A1.SNAME,A2.GRADE FROM S A1,SC A2 WHERE A1.SNO = A2.SNO AND A2.CNO = C2 AND A2.GRADE BETWEEN 80 AND 90

2、不太懂

3、SELECT A1.SNO FROM SC A1,SC A2 WHERE A1.SNO = A2.SNO AND A1.CNO = C2 AND
A2.CNO = C4 GROUP BY A1.SNO

4、SELECT A1.SNO FROM SC A1 WHERE A1.CNO = C1 AND A1.SNO NOT IN (SELECT SNO FROM SC WHERE CNO = C2)

5、SELECT A1.SNO,A1.SNAME,A1.AGE FROM S A1,SC A2 WHERE A1.SNO = A2.SNO AND A2.CNO NOT IN(C1,C2)

6、SELECT SNO,SNAME FROM S WHERE SNO NOT IN(
SELECT SNO FROM SC WHERE GRADE <= 80 ) GROUP BY SNO

7、
第3个回答  推荐于2017-11-17
1) 查询学生总人数
SELECT COUNT(SNo) FROM Student

2) 查询选修了课程的学生人数
SELECT COUNT(DISTINCT SNo) FROM SC

3) 计算1号课程的学生平均成绩
SELECT AVG(Score) FROM SC WHERE CNo = 1

4) 查询选修了3门以上课程的学生的学号
SELECT SNo
FROM SC
GROUP BY SNo
HAVING COUNT(CNo) > 3

5) 从学生选课数据库中查询选修“”课并且成绩在90分以上的学生名单
SELECT SName
FROM SC
WHERE CNo = (SELECT CNo FROM Course WHERE CName = '数据库原理')
AND Score > 90本回答被提问者采纳
第4个回答  2015-02-11
--查询学生总人数
select count(*)
from Student

--查询选修了课程的学生人数
select count(distinct SNo)
from SC

--计算1号课程的学生平均成绩
select avg(Score) 1号课程平均成绩
from sc
where CNo = '1'

--查询选修了3门以上课程的学生的学号
select SNo

from SC
group by SNo having count(CNo) >3

--从学生选课数据库中查询选修“数据库原理”课并且成绩在90分以上的学生名单
select S.SNo,S.SName
from Student S join SC on S.SNo = SC.SNo join Course C on C.CNo = SC.CNo
where C.CName = '数据库原理' and SC.Score > 90

相关了解……

你可能感兴趣的内容

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