select 准考证号 from 高考音讯表 where (数学+语文+Turkey语+物理+化学State of Qatar 600

 


二、案例一

学生表student:

+—–+——–+—–+——-+————+————–+

| id  | name  | sex | birth | department | address      |

+—–+——–+—–+——-+————+————–+

| 901 | 张老大 | 男  |  壹玖捌伍 | Computer系  | Hong Kong市海淀区 |

| 902 | 张老二 | 男  |  1990 | 中国语言理学系    | 新加坡市昌平区 |

| 903 | 张三  | 女  |  1989 | 中国语言法学系    | 云南省益阳市 |

| 904 | 李四  | 男  |  壹玖玖零 | 菲律宾语系    | 辽宁省白山市 |

| 905 | 王五  | 女  |  一九九五 | 保加利亚语系    | 辽宁省卢萨卡市 |

| 906 | 王六  | 男  |  一九八七 | Computer系  | 长江省德阳市 |

+—–+——–+—–+——-+————+————–+

成绩表score:

+—-+——–+——–+——-+

| id | stu_id | c_name | grade |

+—-+——–+——–+——-+

|  1 |    901 | 计算机 |    98 |

|  2 |    901 | 英语  |    80 |

|  3 |    902 | 计算机 |    65 |

|  4 |    902 | 中文  |    88 |

|  5 |    903 | 中文  |    95 |

|  6 |    904 | 计算机 |    70 |

|  7 |    904 | 英语  |    92 |

|  8 |    905 | 英语  |    94 |

|  9 |    906 | 计算机 |    90 |

| 10 |    906 | 英语  |    85 |

+—-+——–+——–+——-+

1、男同学的考试课程

select distinct(c_name) from score s1,student s2 where s2.id=s1.stu_id
and sex=’男‘;

select distinct(c_name) from score where stu_id in (select id from
student where sex=’男’);

2、姓张同学的调查课程

select distinct(c_name) from score where stu_id in (select id from
student where name like ‘张%’);

select c_name from score,student where score.stu_id=student.id and
name like ‘张%’;

3、同不经常间学习爱沙尼亚语和微处理器的学子新闻

select * from student where id in (select stu_id from score where
c_name=’计算机’  and stu_id in (select stu_id from score where
c_name=’英语’));

select s1.* from student s1,score s2,score s3 where s1.id=s2.stu_id
and s1.id=s3.stu_id and s2.c_name=’计算机’ and s3.c_name=’英语’;

练习:

1、女子高校友的侦察课程

2、同期学习汉语和Computer的上学的小孩子音信;

3、姓王的同校何况有一科以上战绩抢先80分的上学的小孩子音讯;

4、查询李四的考试课程(c_name)和考试成绩(grade)

select c_name,grade from score,student where student.id=score.stu_id
and name=’李四’;

5、查询计算机战绩低于95的上学的小孩子音信

select student.* from score,student where student.id=score.stu_id and
c_name=’计算机’ and grade<95;

6、查询姓张或许姓王的同桌的真名、院系和考试科目及战表

select name,department,c_name,grade from student,score where
student.id=score.stu_id and (name like ‘王%’ or name like ‘张%’ )

练习:

1、查询都以安徽的学童的真名、岁数、院系和调查课程及成绩

2、成绩超乎80分的女子高校友的新闻

3、查询出女人战绩最低的人的全名;

select * from student where name in

  1. 老师表teacher

    create table teacher ( tid int primary key auto_increment, tname char(10) );

from table

案例三

有四张表格:

学生表student:

+—–+——-+———————+——+

| sid | sname | sage                | ssex |

+—–+——-+———————+——+

| 01  | 赵雷  | 1990-01-01 00:00:00 | 男  |

| 02  | 钱电  | 1990-12-21 00:00:00 | 男  |

| 03  | 孙风  | 1990-05-06 00:00:00 | 男  |

| 04  | 李云  | 1990-08-06 00:00:00 | 男  |

| 05  | 周梅  | 1991-12-01 00:00:00 | 女  |

| 06  | 吴兰  | 1992-03-01 00:00:00 | 女  |

| 07  | 郑竹  | 1898-07-01 00:00:00 | 女  |

| 08  | 王菊  | 1990-01-20 00:00:00 | 女  |

+—–+——-+———————+——+

教室表teacher:

+—–+——-+

| tid | tname |

+—–+——-+

| 01  | 张三  |

| 02  | 李四  |

| 03  | 王五  |

| 04  | 赵六  |

+—–+——-+

课程表course:

+—–+——-+—–+

| cid | cname | tid |

+—–+——-+—–+

| 01  | 语文  | 02  |

| 02  | 数学  | 01  |

| 03  | 英语  | 03  |

| 04  | 物理  | 04  |

+—–+——-+—–+

成绩表score:

+—–+—–+——-+

| sid | cid | score |

+—–+—–+——-+

| 01  | 01  |    80 |

| 01  | 02  |    90 |

| 01  | 03  |    99 |

| 02  | 01  |    70 |

| 02  | 02  |    60 |

| 02  | 02  |    80 |

| 03  | 01  |    80 |

| 03  | 02  |    80 |

| 03  | 03  |    80 |

| 04  | 01  |    50 |

| 04  | 02  |    30 |

| 04  | 03  |    20 |

| 05  | 01  |    76 |

| 05  | 02  |    87 |

| 06  | 01  |    31 |

| 06  | 03  |    34 |

| 07  | 02  |    89 |

| 07  | 03  |    98 |

+—–+—–+——-+

题目:

1、查询”01″课程比”02″课程战绩高的学习者的新闻及学科分数

1.1、查询同期设有”01″课程和”02″课程的气象

select a.* , b.score,c.score from student a , score b , score c where
a.sid = b.sid and a.sid = c.sid and b.cid = ’01’ and c.cid = ’02’ and
b.score > c.score

1.2、查询同期设有”01″课程和”02″课程的景况和存在”01″课程但只怕不设有”02″课程
的事态(空中楼阁时显得为 nullState of Qatar

select a.* , b.score ,c.score from student a left join score b on a.sid
= b.sid and b.cid = ’01’ left join score c on a.sid = c.sid and c.cid =
’02’ where b.score>IFNULL(c.score,0)

2、查询”01″课程比”02″课程战绩低的学习者的音讯及教程分数

3、查询平均成绩超越等于60分的同室的学习者编号和学员姓名和平均成绩

select a.sid , a.sname , cast(avg(b.score) as decimal(18,2)) avg_score
from Student a , score b where a.sid = b.sid group by a.sid , a.sname
having cast(avg(b.score) as decimal(18,2)) >= 60 order by a.sid

4、查询平均成绩小于60分的同桌的学子编号和学员姓名和平均成绩(注意成绩为null的上学的小孩子,使用ifnull()函数)

select a.sid , a.Sname , IFNULL(cast(avg(b.score) as decimal(18,2)),0)
avg_score from Student a left join score b on a.sid = b.sid group by
a.sid , a.sname having ifnull(cast(avg(b.score) as decimal(18,2)),0)
< 60 order by a.Sid

5、查询全部同学的上学的小孩子编号、学子姓名、选课总量、全体课程的总战绩

select a.sid AS 学生编号, a.Sname as 学子姓名, count(b.cid卡塔尔国 选课总量,
sum(scoreState of Qatar 全部科指标总战绩 from Student a left join score b on a.sid =
b.sid group by a.sid,a.Sname order by a.sid

where a1.name=team.name )

先创立如下表,并创造连锁约束

1               2005001    张三       0001              数学         69

案例二

如下,有三张表:

学生表student:

+—–+——-+—–+—–+

| SNO | SNAME | AGE | SEX |

+—–+——-+—–+—–+

|  1 | 李强  |  23 | 男  |

|  2 | 刘丽  |  22 | 女  |

|  5 | 张友  |  22 | 男  |

+—–+——-+—–+—–+

课程表course:

+—–+————+———+

| CNO | CNAME      | TEACHER |

+—–+————+———+

| k1  | c语言      | 王华    |

| k5  | 数据库原理 | 程军    |

| k8  | 编写翻译原理  | 程军    |

+—–+————+———+

成绩表sc:

+—–+—–+——-+

| SNO | CNO | SCORE |

+—–+—–+——-+

|  1 | k1  |    83 |

|  2 | k1  |    85 |

|  5 | k1  |    92 |

|  2 | k5  |    90 |

|  5 | k5  |    84 |

|  5 | k8  |    80 |

+—–+—–+——-+

1、检索"李军"同学不学课程的教程号(CNO卡塔尔;

select cno from course where cno not in (select cno from

sc,student where sname=’李强’ andstudent.sno=sc.sno) ;

2、查询“刘毛毛”同学全体科指标战绩:

select score from student,sc where

student.sname=’李强’ and student.sno=sc.sno;

3、查询课程名称叫“C语言”的平均战绩

select avg(score) from sc,course where cname=’c语言’ and
course.cno=sc.cno;

练习:

1、求选修K1 课程的学子的平均年龄;

select avg(age)from student,sc where student.sno=sc.sno and cno=’k1′;

2、求王先生所授课程的每门科指标学毕生均成绩。

select avg(score) from sc,course where teacherlike ‘王%’
andcourse.cno=sc.cno group by sc.cno;

id gender age 67 M 19 68 F 30 69 F 27 70 F 16 71 M 32 ……

45、检索起码选修两门科指标学子学号;select sid as
学号from studentwhere sid in (select student_id from scoregroup
by student_idhaving count(course_id) >= 2);
46、查询未有学子选修的学科的课程号和学科名;select cid as 课程号,cname
as 课程名from coursewhere cid not in (select distinct
course_idfrom score);
47、查询没带过任何班级的师资id和人名;selecttid as 老师id,tname as
姓名from teacherwhere tid not in (select distinct tidfrom teach2cls卡塔尔(قطر‎;
48、查询有两门以上课程超越80分的上学的小孩子id及其平均战绩;select student_id
as 学子id,avg(score卡塔尔(قطر‎ as 平均战表from scorewhere student_id
in (select student_idfrom scorewhere score >= 80group
by student_idhaving count(course_id) >= 2)group by student_id;
49、检索“3”课程分数小于60,按分数降序排列的同室学号;select
distinctstudent_id as 学号from scorewhere course_id = 3 and score <
60order by score desc;
50、删除编号为“2”的校友的“1”课程的成绩;delete from scorewhere student_id
= 2 and course_id = 1;
51、查询同时选修了物理课和生物课的学员id和姓名;select sid as
学子id,sname as 姓名from studentwhere sid
in (select student_idfrom scorewhere course_id = (select cid from
course where cname = ‘生物’))and sid
in (select student_idfrom scorewhere course_id
= (select cid from course where cname = ‘物理’));

2. 取舍表 ppp 中的重复记录

一、多表查询

–编写多表查询语句的貌似经过

–(1)、深入分析句子要提到到哪些表

–(2)、对应的表中要查询哪些关系字段

–(3)、明确连接条件或筛选标准

–(4)、写成完全的SQL查询语句

1、多表查询指利用SQL查询时不只是一张表的查询,要点:

① 五个表之间必得树立连接关系

② 表小名的用法

③ 假如from前边使用了表的小名 ,则select后和where后必需用外号取代

(select s_name from score

一、表关系请创设如下表,并创办连锁约束1. 班级表class【创立表语句】create
table class(cid int primary key auto_increment,caption
char(10),grade_id int);
【插入记录语句】insert into class
values(1,’少一一班’,1卡塔尔,(2,’少二一班’,2卡塔尔国,(3,’少三二班’,3卡塔尔(قطر‎,(4,’少四一班’,4卡塔尔国,(5,’少五三班’,5卡塔尔国; 

主键 primary key 标识列 identity 外键 foreign key 检查 check

付出高等高校统一招考总分在600以上的学生准考证号

一、表关系

select b.year, sum(a.salary) from hell0 a, hello b where a.year <=
b.year group by b.year;

delete from team where id not in

  1. 学子表student【成立表语句】create table student(sid int primary key
    auto_increment,sname char(10),gender enum(‘男’,’女’) not null,class_id
    int);
    【插入记录语句】insert into student
    values(1,’Jordan’,’女’,1State of Qatar,(2,’艾弗森’,’女’,1卡塔尔(قطر‎,(3,’小飞侠’,’男’,2卡塔尔国,(4,’葫芦娃’,’男’,3卡塔尔(قطر‎,(5,’张真人’,’男’,5卡塔尔国,(6,’洞房不败’,’男’,4卡塔尔国,(7,’樱木花道’,’男’,2卡塔尔,(8,’松岛菜菜子’,’女’,3State of Qatar,(9,’洞房不败’,’女’,5卡塔尔(قطر‎; 
  2. 导师表teacher【成立表语句】create table teacher(tid int primary key
    auto_increment,tname char(10));
    【插入记录语句】Insert into teacher
    values(1,’张三’State of Qatar,(2,’李四’卡塔尔,(3,’王五’State of Qatar,(4,’萧峰’卡塔尔国,(5,’一休哥’State of Qatar,(6,’诸葛’State of Qatar,(7,’李四’卡塔尔(قطر‎; 
  3. 学科表course【创制表语句】create table course(cid int primary key
    auto_increment,cname char(10),teacher_id int);
    【插入记录语句】insert into course
    values(1,’生物’,1卡塔尔(قطر‎,(2,’体育’,1State of Qatar,(3,’物理’,2卡塔尔(قطر‎,(4,’数学’,3卡塔尔,(5,’语文’,4卡塔尔(قطر‎,(6,’罗马尼亚语’,2State of Qatar,(7,’土遁?沙地送葬’,5卡塔尔(قطر‎,(8,’夏天喂蚊子大法’,3卡塔尔,(9,’麻将牌九扑克千术’,6卡塔尔(قطر‎; 
  4. 成就表score【创造表语句】create table score(sid int primary key
    auto_increment,student_id int,course_id int,score int);
    【插入记录语句】insert score
    values(1,1,1,60卡塔尔,(2,1,2,21卡塔尔国,(3,2,2,99卡塔尔(قطر‎,(4,3,3,56卡塔尔(قطر‎,(5,4,1,56卡塔尔(قطر‎,(6,5,3,94卡塔尔国,(7,5,4,40State of Qatar,(8,6,4,80State of Qatar,(9,7,3,37State of Qatar,(10,8,5,100State of Qatar,(11,8,6,89卡塔尔,(12,8,7,0卡塔尔国,(13,3,8,45State of Qatar,(14,7,1,89State of Qatar,(15,2,7,89卡塔尔,(16,2,1,61卡塔尔(قطر‎; 
  5. 年级表class_grade【创立表语句】create table class_grade(gid int
    primary key auto_increment,gname char(10));
    【插入记录语句】insert class_grade
    values(1,’一年级’),(2,’二年级’),(3,’三年级’),(4,’四年级’),(5,’五年级’); 
  6. 班级任职表teach2cls【创设表语句】create table teach2cls(tcid int
    primary key auto_increment,tid int,cid int);
    【插入记录语句】insert into teach2cls
    values(1,1,1State of Qatar,(2,1,2卡塔尔,(3,2,1卡塔尔(قطر‎,(4,3,2卡塔尔(قطر‎,(5,4,5State of Qatar,(6,5,3卡塔尔(قطر‎,(7,5,5卡塔尔(قطر‎,(8,6,2卡塔尔,(9,6,4State of Qatar,(10,6,3State of Qatar,(11,4,1卡塔尔(قطر‎,(12,1,4State of Qatar; 
    二、操作表★注:由于样品数量少于,为了能够取得丰硕的查询结果,全部标题中提到到“超越”或“以上”字样的,均默以为包涵该值(例如:查询教师课程当先2门的教师的天禀的id和人名,视作教师课程数>=2)
    1、自行创立测验数据;(成立语句见”一、表关系”)
    2、查询学子总人数;select count(*卡塔尔国 as 学子总人数 from student;
    3、查询“生物”课程和“物理”课程战表都过关的学员id和人名;【查法1——子查询】select sid,
    snamefrom student where sid
    in(select student_idfrom scorewhere student_id
    in(select student_idfrom scorewhere course_id = (select cid from
    course where cname = ‘生物’) and score >= 60)and course_id = (select
    cid from course where cname = ‘物理’) and score >= 60);
    【查法2——联表】select sid, sname from studentwhere sid
    in (select t1.student_id from (select student_id from scorewhere course_id
    = (select cid from course where cname = ‘生物’) and score >= 60) as
    t1inner join (select student_id from score where course_id = (select
    cid from course where cname = ‘物理’) and score >= 60) as
    t2on t1.student_id=t2.student_id);
    4、查询种种年级的班级数,抽取班级数最多的前四个年级select class.grade_id, class_grade.gname, count(class.cid)
    as 班级数from class inner join class_grade on
    class.grade_id=class_grade.gidgroup by class.grade_idorder
    by count(class.cid) desclimit 3;
    5、查询平均成绩最高和压低的上学的小孩子的id和人名以致平均战绩select stu.sid, stu.sname, avg(score卡塔尔国as 平均战绩from student as stu inner join score as scoon stu.sid =
    sco.student_idgroup by stu.sidhaving avg(score)
    = (select avg(score) from score group by student_idorder by avg(score)
    desclimit 1) or avg(score) = (select avg(score) from score group
    by student_idorder by avg(score) asclimit 1);
    6、查询各类年级的学子人数;select t1.gname, count(s.sid卡塔尔(قطر‎ as
    学子人数from (select * from class as c inner join class_grade as g on
    c.grade_id = g.gid) as t1inner join student as s on t1.cid =
    s.class_idgroup by t1.gid;
    7、查询每位学子的学号,姓名,选课数,平均成绩;select stu.sid as
    学号,stu.sname as 姓名,count(sco.course_id卡塔尔 as 选课数,avg(sco.score卡塔尔 as
    平均战表from student as stu left join score as sco on stu.sid =
    sco.student_idgroup by sco.student_id;
    8、查询学子编号为“2”的学童的真名、该学员成绩最高的教程名、成绩最低的学科名及分数;select t1.sname
    as 姓名,t2.cname as 课程名,t1.score as 分数from (select stu.sid,
    stu.sname, sco.course_id, sco.score from student as stu inner join
    score as sco on stu.sid = sco.student_id where stu.sid=2) as t1inner
    joincourse as t2 on t1.course_id = t2.cidgroup by t2.cidhaving score in
    (max(score),min(score));
    9、查询姓“李”的民办教授的个数和所带班级数;select count(te.tidState of Qatar as
    姓李老师个数,count(tc.cid卡塔尔国 as 所带班级数from teacher as te inner join
    teach2cls as tcon te.tid = tc.tidwhere te.tname regexp “^李.*”group
    by te.tid;
    10、查询班级数稍差于5的年级id和年级名;select c.grade_id as
    年级id,g.gname as 年级名from class as c inner join class_grade as gon
    c.grade_id = g.gidgroup by c.grade_idhaving count(c.cid)<5;
    11、查询班级信息,富含班级id、班级名称、年级、年级等第(12为低年级,34为不惑之年级,56为高年级State of Qatar,示例结果如下;select cid
    as 班级id,caption as 班级名称,gname as 年级,casewhen g.gid in (1,2卡塔尔 then
    ‘低年级’when g.gid in (3,4卡塔尔国 then ‘中年级’when g.gid in (5,6State of Qatar then
    ‘高年级’else ‘其余’ end as 年级等级from class as c inner join
    class_grade as gon c.grade_id = g.gid;
    12、查询学过“张三”老师2门课上述的校友的学号、姓名;select stu.sid as
    学号,stu.sname as 姓名from student as stu inner join score as sco on
    stu.sid = sco.student_idwhere sco.course_id
    in (select c.cidfrom teacher as t inner join course as con t.tid =
    c.teacher_idwhere t.tname = ‘张三’)group
    by stu.sidhaving count(sco.course_id) >= 2;
    13、查询教师课程抢先2门的教职工的id和姓名;selecttid as id,tname as
    姓名from teacher as t inner join course as c on t.tid =
    c.teacher_idgroup by c.teacher_idhaving count(c.cid) >= 2;
    14、查询学过数码“1”课程和编号“2”课程的同室的学号、姓名;select sid as
    学号,sname as 姓名from studentwhere sid
    in (select student_id from scorewhere student_id
    in (select student_id from scorewhere course_id = 1)and course_id =
    2);
    15、查询未有带过高年级的教师的天赋id和姓名;select tid as 老师id,tname as
    姓名from teacherwhere tid not in (select tc.tidfrom class as c inner
    join teach2cls as tc on c.cid = tc.cidwhere c.grade_id in (5,6));
    16、查询学过“张三”老师所教的全部课的同班的学号、姓名;select distinctstu.sid
    as 学号,stu.sname as 姓名from student as stu inner join score as sco on
    stu.sid = sco.student_idwhere sco.course_id
    in (select c.cid from teacher as t inner join course as c on t.tid =
    c.teacher_idwhere t.tname = “张三”);
    17、查询带过超过2个班级的教师的id和姓名;select tid as id,tname as
    姓名from teacherwhere tid in (select tid from teach2clsgroup
    by tidhaving count(cidState of Qatar >= 2卡塔尔(قطر‎;
    18、查询课程编号“2”的实际业绩比课程编号“1”课程低的具有同学的学号、姓名;select sid
    as 学号,sname as 姓名from studentwhere sid
    in(select t1.student_idfrom (select * from scorewhere course_id = 1)
    as t1inner join (select * from score where course_id = 2) as
    t2on t1.student_id = t2.student_idwhere t1.score > t2.score);
    19、查询所带班级数最多的民间兴办教师id和姓名;select tid as id,tname as
    姓名from teacher where tid in (select tidfrom teach2clsgroup
    by tidhaving count(cid卡塔尔(قطر‎ = (select count(cid卡塔尔(قطر‎from teach2clsgroup
    by tidorder by count(cid卡塔尔(قطر‎ desclimit 1卡塔尔卡塔尔;
    20、查询有学科成绩小于60分的同桌的学号、姓名;select sid as 学号,sname
    as 姓名from studentwhere sid
    in (select student_idfrom score where score < 60);
    21、查询未有学全全部课的同窗的学号、姓名;select sid as 学号,sname as
    姓名from studentwhere sid in (select student_idfrom scoregroup
    by student_idhaving count(course_id) != (select count(cid) from
    course));
    22、查询至稀有一门课与学号为“1”的同学所学相同的同学的学号和姓名;select sid
    as 学号,sname as 姓名from studentwhere sid
    in (select student_idfrom scorewhere course_id
    in (select course_id from scorewhere student_id = 1));
    23、查询最少学过学号为“1”同学所选课程中随机一门课的别的同学学号和姓名;select sid
    as 学号,sname as 姓名from studentwhere sid
    in (select student_idfrom scorewhere course_id
    in (select course_id from scorewhere student_id = 1) and student_id
    != 1);
    24、查询和“2”号同学学习的科目完全相似的其余同学的学号和姓名;select sid
    as 学号,sname as 姓名from studentwhere sid
    in (select student_idfrom scorewhere student_id != 2group
    by student_idhaving group_concat(course_id order by course_id asc)
    = (select group_concat(course_id order by course_id
    asc)from scorewhere student_id = 2group by student_id));
    25、删除学习“张三”老师课的score表记录;delete from scorewhere course_id
    in (select c.cid from teacher as t inner join course as con t.tid =
    c.teacher_idwhere t.tname = ‘张三’);
    26、向score表中插入一些记录,那几个记录必要符合以下原则:①未曾上过编号“2”课程的同窗学号;②插入“2”号课程的平均战绩;【插入第一条】insert
    into score(student_id, course_id,
    score) values((select sidfrom studentwhere sid not
    in(select s.student_idfrom score as swhere s.course_id = 2)order
    by sid desclimit 0,1),2,(select avg(s.score)from score as
    swhere s.course_id = 2卡塔尔卡塔尔;【插入第二条】insert into score(student_id,
    course_id, score) values((select sidfrom studentwhere sid not
    in(select s.student_idfrom score as swhere s.course_id = 2)order
    by sid desclimit 1,1),2,(select avg(s.score)from score as
    swhere s.course_id = 2));
    【改limit后的率先个参数值,可世袭插入第三、四、…条】
    27、按平均成绩从低到高突显全部学员的“语文”、“数学”、“日语”三门的学科战表,按如下格局突显:
    学子ID,语文,数学,意大利语,有效课程数,有效平均分;【这里标题有歧义:有效课程数和有效平均分是仅以那3门课来总结,仍然以学子具有课程来总计】【解一:仅以那3门课来计算】select t2.sid
    as 学子ID, sum(case when t1.cname = ‘语文’ then t1.score else null end卡塔尔(قطر‎as 语文,sum(case when t1.cname = ‘数学’ then t1.score else null endState of Qatar as
    数学,sum(case when t1.cname = ‘Republic of Croatia语’ then t1.score else null endState of Qatar as
    Türkiye Cumhuriyeti语,count(case when t1.cname in (‘语文’,’数学’,’拉脱维亚语’卡塔尔国 then 1 else null
    end卡塔尔国 as 有效课程数,avg(case when t1.cname in (‘语文’,’数学’,’斯拉维尼亚语’卡塔尔国 then
    t1.score else null end卡塔尔 as 有效平均分from (select * from score as s
    inner join course as con s.course_id = c.cid) as t1right join student
    as t2on t1.student_id = t2.sidgroup by t2.sidorder by avg(case when
    t1.cname in (‘语文’,’数学’,’英语’) then t1.score else null end) asc;
    【解二:以该学子具有课程来总计】select t2.sid as 学子ID, sum(case when
    t1.cname = ‘语文’ then t1.score else null end卡塔尔国 as 语文,sum(case when
    t1.cname = ‘数学’ then t1.score else null end卡塔尔国 as 数学,sum(case when
    t1.cname = ‘Hungary语’ then t1.score else null end卡塔尔 as 韩文,count(t1.score卡塔尔国as 有效课程数,avg(t1.scoreState of Qatar as 有效平均分from (select * from score as s
    inner join course as con s.course_id = c.cid) as t1right join student
    as t2on t1.student_id = t2.sidgroup by t2.sidorder by avg(t1.score)
    asc;
    28、查询各科成绩最高和压低的分:以如下形式体现:课程ID,最高分,最低分;select course_id
    as 课程ID,max(score) as 最高分,min(score) as 最低分from scoregroup
    by course_id;
    29、按各科平均战绩从低到高和及格率的比例从高到低依次;【这里优先按平均战表从低到高排序,若碰着平均成绩同样的则按及格率百分数从高到低排序】select course_id
    as 课程ID,avg(score卡塔尔(قطر‎ as 平均战表,concat(100*count(case when
    score>=60 then 1 else null end)/count(score),”%”) as
    及格率from scoregroup by course_idorder by avg(score) asc, count(case
    when score>=60 then 1 else null end)/count(score) desc;
    30、课程平均分从高到低突显(显示任课老师);select t1.cname as
    课程名称,avg(t2.scoreState of Qatar as 平均分,t1.tname as 任课老师from (select *
    from teacher as t inner join course as con t.tid = c.teacher_id) as
    t1 inner join score as t2on t1.cid = t2.course_idgroup
    by t2.course_idorder by avg(t2.score) desc;
    31、查询各科成绩前三名的笔录(不构思战绩并列境况卡塔尔【本题与44题雷同,不会做,于是百度了下”怎样在mysql中询问各类分组的前几名”,参照在那之中的三个主意,写出了答案】【注:这里仍然为根据score表暗中同意的排序,即sid的排序】select*from scorewhere(selectcount(*)from score
    as swheres.course_id = score.course_idands.score <=
    score.score)<= 3;
    32、查询每门课程被选修的学员数;select cname as
    课程名,count(s.student_idState of Qatar as 选修学子数from course as c left join
    score as s on c.cid = s.course_idgroup by c.cid;
    33、查询选修了2门以上课程的总体学员的学号和姓名;select sid as
    学号,sname as 姓名from studentwhere sid
    in (select student_id from scoregroup
    by student_idhaving count(course_id) >= 2);
    34、查询男人、女子的人头,按倒序排列;select gender,
    count(sid卡塔尔(قطر‎from studentgroup by genderorder by count(sidState of Qatar desc;
    35、查询姓“张”的学子名单;【查法1——正则】select sname from studentwhere sname
    regexp “^张.*”;
    【查法2——like】select snamefrom studentwhere sname like “张%”;
    36、查询同名同姓学子名单,并总计同有名气的人数;select sname as
    姓名,count(sid卡塔尔 as 同有名的人数 from studentgroup by snamehaving count(sid卡塔尔(قطر‎> 1;
    37、查询每门科目的平分成绩,结果按平均成绩升序排列,平均战表相近时,按学科号降序排列;select avg(score卡塔尔,course_idfrom scoregroup
    by course_idorder by avg(score) asc, course_id desc;
    38、查询课程名称叫“数学”,且分数低于60的学员姓名和分数;select stu.sname
    as 学子姓名,sco.score as 分数from student as stu inner join score as
    scoon stu.sid = sco.student_idwhere sco.course_id
    = (select cid from course where cname = ‘数学’)and sco.score < 60;
    39、查询课程编号为“3”且课程成绩在80分以上的学子的学号和姓名;select sid
    as 学号,sname as 姓名from studentwhere sid
    in (select student_id from scorewhere course_id = 3 and score >=
    80);
    40、求选修了学科的学子人数select count(1卡塔尔(قطر‎ as
    学生人数from(select distinct student_idfrom score) as t1;
    41、查询选修“王五”老师所授课程的上学的儿童中,成绩最高和压低的上学的小孩子姓名及其成绩;select stu.sname
    as 学子姓名,sco.score as 战表from student as stu inner join score as
    scoon stu.sid = sco.student_idwhere score
    in ((select max(score)from scorewhere course_id
    in (select c.cidfrom teacher as t inner join course as con t.tid =
    c.teacher_id where t.tname =
    ‘王五’)), (select min(score)from scorewhere course_id
    in (select c.cidfrom teacher as t inner join course as con t.tid =
    c.teacher_id where t.tname = ‘王五’)));
    42、查询各种科目及相应的选修人数;select cname as
    课程名,count(s.student_id卡塔尔 as 选修学子数from course as c left join
    score as s on c.cid = s.course_idgroup by c.cid;
    43、查询不一致学科但战表相符的学习者的学号、课程号、学子成绩;select student_id
    as 学号,course_id as 课程号,score as 学子成绩from scoregroup
    by scorehaving count(student_id) > 1;
    44、查询每门课程战绩最佳的前两名学子id和人名;【注:这里钦定了前两名,所以若现身多名同分的学习者也只取倒序排的暗许前2名】【与31题近似…不会写,于是百度了下”如何在mysql中询问种种分组的前几名”,参照个中一种相比较高档且高效的自定义变量的点子,写出了答案】
    set @num := 0, @cname := ”;selectt2.cid as 课程ID,t2.cname as
    课程名,t1.sid as 学生ID,t1.sname as 学子名,t1.score as 成绩,@num :=
    if(@cname = t2.cname, @num + 1, 1卡塔尔 as 排名,@cname := t2.cname as
    课程名确认from (select stu.sid, stu.sname, sco.course_id,
    sco.score from student as stu inner join score as scoon stu.sid =
    sco.student_id) as t1right joincourse as t2on t1.course_id =
    t2.cidgroup byt2.cid, t1.score, t1.snamehaving排名 <= 2;

1卡塔尔创设一张学子表,包蕴以下新闻,学号,姓名,年龄,性别,家庭住址,联系电话

付出成绩全体过关的上学的小孩子新闻,注:分数在60上述评为合格

 

(select amount  from aaa m where month=4 amd
m.year=aaa.year) as m4

select * from score

  1. 学生表student

    create table student ( sid int primary key auto_increment, sname char(10), gender enum(‘男’,’女’) not null, class_id int );

    insert into student values(1,’乔丹’,’女’,1卡塔尔,(2,’艾弗森’,’女’,1卡塔尔,(3,’Black Manba’,’男’,2State of Qatar,(4,’葫芦娃’,’男’,3卡塔尔(قطر‎,(5,’张君宝’,’男’,5卡塔尔国,(6,’洞房不败’,’男’,4卡塔尔(قطر‎,(7,’樱木花道’,’男’,2卡塔尔(قطر‎,(8,’松岛菜菜子’,’女’,3State of Qatar,(9,’洞房不败’,’女’,5卡塔尔国;

sql语句怎么写?

select min(id) from team group by name)

 

1992          3            2.3

select min(a1.id) from team a1

  1. 班级表class

    create table class ( cid int primary key auto_increment, caption char(10), grade_id int );

    insert into class values(1,’少一一班’,1卡塔尔国,(2,’少二一班’,2卡塔尔(قطر‎,(3,’少三二班’,3卡塔尔(قطر‎,(4,’少四一班’,4State of Qatar,(5,’少五三班’,5卡塔尔(قطر‎;

10State of Qatar 依据性别分组查询全体的平均年龄

where score60)

Answer:

或者: select * from score where s_name in

不刊之论,不采纳 max,寻觅表 ppp 中 num 最大的数:

(

1992          2            2.2

name course score 张青 语文 72 王华 数学 72 张华 英语 81 张青 物理 67
李立 化学 98 张燕 物理 70 张青 化学 76

删除除了自行编号差异, 其余都平等的学子冗余音讯

delete from team where id not in

②:select b.id,b.name,(select ID,Name,ROW_NUMBER() over(partition by ID) ‘排名’from A) b
where b.排名>3—仅SQL SEVER

几道精华的SQL笔试标题

1992          1            2.1

group by s_name

Year Salary 

select 名称 from 商品表 group by 名称 having avg(进价) 2

year m1 m2 m3 m4

表名:student

1991 1.1 1.2 1.3 1.4

select gender,count(id) from club group by gender

1. 不应用 min,寻找表 ppp 中 num(列)最小的数

表名:team ID(number型卡塔尔 Name(varchar2型State of Qatar 1 a 2 b 3 b 4 a 5 c 6 c
必要:实践贰个去除语句,当Name列上有相符期,只保留ID这列上值小的
例如:删除后的结果应如下: ID(number型卡塔尔 Name(varchar2型State of Qatar 1 a 2 b 5 c
请写出SQL语句。

**9、说出以下聚合数的含义:avg ,sum ,max ,min , count ,count(\)

交给平均进价在2元以下的商品名称

2State of Qatar 改进学子表的布局,增多一列新闻,教育水平

group by name having avg(score) 75)

6)delect from stu where 姓名 like ‘C%’ and
 性别=‘男’

select 准考证号 from 高等学园统一招考信息表 group by 准考证号 having sum(成绩卡塔尔 600

约束 constraint

查询出“张”姓学子中平均战表抢先75分的学子音讯

1991          2            1.2

表名:高等高校统一招考新闻表 准考证号 科目 成绩 2005001 语文 119 2005001 数学 108
二零零七002 物理 142 2007001 化学 136 二〇〇五001 物理 127 二〇〇七002 数学 149
二零零五002 俄文 110 二零零六002 语文 105 二零零六001 英语 98 2005002 化学 129 ……

8卡塔尔 查询学子表的数据,查询全体音讯,列出前十分六的笔录

where s_name not in

表情势如下: 

3。表内容如下 —————————– ID LogTime 1 二〇〇八/10/10
10:00:00 1 二〇〇九/10/10 10:03:00 1 二零零六/10/10 10:09:00 2 二零一零/10/10
10:10:00 2 二零零六/10/10 10:11:00 …… —————————–

(case   when  英语>=80 then ‘优秀’ when
 英语>=60 then ‘及格’ else ‘不及格’) AS 英语

付出高等学园统一招考总分在600以上的上学的小孩子准考证号

张三 数学 75

(select s_name from score

2 B 21 男 119 中学

表名:高等高校统一招考音信表 准考证号 数学 语文 罗马尼亚语 物理 化学 2007001 108 119 98
127 136 二零零五002 149 105 110 142 129 ……

只回去单独的一条记下

请问各位高手,如何询问登录时间隔开分离不超过5分钟的装有记录.

3. 面试题:怎么把这么二个表儿(aaa)

表名:商品表 名称 产地 进价 苹果 烟台 2.5 苹果 云南 1.9 苹果 四川 3 西瓜
江西 1.5 西瓜 北京 2.4 ……

1 A 22 男 123456 小学

(


表名:成绩表 姓名 课程 分数 张三 语文 81 张三 数学 75 李四 语文 56 李四
数学 90 王五 语文 81 王五 数学 100 王五 英语 49 ……

(case   when  语文>=80 then ‘优秀’ when
 语文>=60 then ‘及格’ else ‘不及格’) AS 语文,

发表评论

电子邮件地址不会被公开。 必填项已用*标注