mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

(-1)写在前面

文章参考http://blog.sina.com.cn/willcaty。

针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答。

(0) 基础数据

student表

+-----+--------+------+-------+------------+--------------+

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

+-----+--------+------+-------+------------+--------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+------------+--------------+

score表

+----+--------+-----------+-------+

| Id | Stu_id | C_Name    | Grade |

+----+--------+-----------+-------+

| 23 |    901 | 计算机    |    98 |

| 24 |    901 | 英语      |    80 |

| 25 |    902 | 计算机    |    65 |

| 26 |    902 | 中文      |    88 |

| 27 |    903 | 中文      |    95 |

| 28 |    904 | 计算机    |    70 |

| 29 |    904 | 英语      |    92 |

| 30 |    905 | 英语      |    94 |

| 31 |    906 | 计算机    |    90 |

| 32 |    906 | 英语      |    85 |

+----+--------+-----------+-------+

(1)查询同时参加计算机和英语考试的学生的信息

方式一:

SELECT a.* FROM student a ,score b ,score c

WHERE a.id=b.stu_id

AND b.c_name=‘计算机‘

AND a.id=c.stu_id

AND c.c_name=‘英语‘;

方式二:

SELECT *  FROM student

WHERE id =ANY

( SELECT stu_id FROM score

WHERE stu_id IN (

SELECT stu_id FROM

score WHERE c_name=  ‘计算机‘)

AND c_name= ‘英语‘ );

方式三:

select * from student where id in(

select s.stu_id from (select stu_id from score where c_name = ‘计算机‘) s

(select stu_id from score where c_name=‘英语‘) as t where s.stu_id=t.stu_id)

方式四:

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 =‘计算机‘));

 (2) 正确答案

+-----+--------+------+-------+------------+--------------+

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

+-----+--------+------+-------+------------+--------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+------------+--------------+

时间: 2024-12-25 19:24:26

mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风的相关文章

MySQL中查询获取每个班级成绩前三名的学生信息

今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore(    pk_id INT PRIMARY KEY,    c_name VARCHAR(50) ,    c_score INT,    c_class INT )DEFAULT CHARSET=utf8; INSERT INTO t_testscore VALUES (1, '张三6', 66, 1),(2, '张三5', 65,

mysql练习题二

建立表格 1.创建student和score表 CREATE  TABLE  student ( id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  , name  VARCHAR(20)  NOT NULL , sex  VARCHAR(4)  , birth  YEAR, department  VARCHAR(20) , address  VARCHAR(50) ); 创建score表.SQL代码如下: CREATE  TABLE  score ( id

MYSQL之查询篇

2. 数据库操作 数据库在创建以后最常见的操作便是查询 2.1 查询 为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示 students表的内容: id class_id name gender score 1 1 小明 M 90 2 1 小红 F 95 3 1 小军 M 88 4 1 小米 F 73 5 2 小白 F 81 6 2 小兵 M 55 7 2 小林 M 85 8 3 小新 F 91 9 3 小王 M 89 10 3 小丽

计算机常用英语词汇

计算机常用英语词汇一.硬件类(Hardware)二.软件类(Software)三.网络类(Network)四.其它CPU(Center Processor Unit)中央处理单元Main board主板RAM(random access memory)随机存储器(内存)ROM(Read Only Memory)只读存储器Floppy Disk软盘Hard Disk硬盘CD-ROM光盘驱动器(光驱)Monitor监视器Keyboard键盘Mouse鼠标Chip芯片CD-R光盘刻录机HUB集线器Mo

mysql SQL优化之嵌套查询-遁地龙卷风

(-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select查询练习题. 我使用的是mysql自带的命令行 (1)数据准配 student 表 +---------+-----------+------+------+--------------+ | sno     | Sname     | Ssex | Sage | Sdept        | +-

Python/ MySQL练习题(一)

Python/ MySQL练习题(一) 2.查询"生物"课程比"物理"课程成绩高的所有学生的学号 1 SELECT 2 * 3 FROM 4 ( 5 SELECT 6 * 7 FROM 8 course 9 LEFT JOIN score ON score.course_id = course.cid 10 WHERE 11 course.cname = '生物' 12 ) AS A 13 INNER JOIN ( 14 SELECT 15 * 16 FROM 17

MySQL学习——查询表里的数据

MySQL学习——查询表里的数据 摘要:本文主要学习了使用DQL语句查询表里数据的方法. 数据查询 语法 1 select [distinct] 列1 [as '别名1'], ..., 列n [as '别名n'] from 表名 2 [where 表达式] 3 [group by 表达式] 4 [having 表达式] 5 [order by 表达式] 6 [limit 起始编号, 查询条数] 说明 1 列1, ..., 列n:表示查询的字段,查询多个字段用“,”分隔,使用“*”号表示查询全部字

windows下如何启用mysql慢查询日志

今天在测试4000000条记录的mysql慢查询,数据库安装在windows上,百度了很多,都没有个测试可行的的解决方案或者经验之谈,可能是因为mysql版本不一样吧!这里做个记录以备忘记时候可以查看,也让其他朋友借鉴一下. 这里用的mysql版本是5.6.17 首先,修改mysql中的my.ini文件,关键代码如下: datadir="D:/MySQL5.6/MySQL Server 5.6/data\" log-output=FILE(这个一定要改成FILE,否则慢查询日志不会输出

第三章 MySQL高级查询(一)

第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1.       DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSERT,UPDATE,DELECT. 2.       DDL(Data Definition Language)(数据定义语言):创建或删除数据库对象操作,有CREATE,DROP,ALTER三个语法组成. 3.       DQL (STructured Query Language)(数据查询语