MySQL数据库实验三:连接查询

实验三    连接查询

实验名称:连接查询(2课时)

一、实验目的

理解JOIN语句的操作和基本使用方法,掌握内连接、外连接、自身连接的概念和使用。

二、实验环境

是MS SQL SERVER 2005的中文客户端。

三、实验示例

1、 查询每个学生及其选修课程的情况

SELECT  Student.*,SC.*

FROM     Student,SC

WHERE  Student.Sno = SC.Sno;

2、检索至少选修课程号为C2和C4的学生学号

SELECT X.S#

FROM SC AS X,SC AS Y

WHERE X.S# =Y.S# AND X.C# =‘C2‘         AND Y.C# =‘C4‘;

3、检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。

SELECT S.S#,SNAME

FROM   S,SC,C,T

WHERE S.S#=SC.S# AND SC.C#=C.C#

AND C.T# =T.T# AND TNAME =‘LIU‘;

4、  SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

FROM  Student  LEFT OUT JOIN SC ON (Student.Sno=SC.Sno);

5、查询选修2号课程且成绩在90分以上的所有学生

SELECT Student.Sno, Sname

FROM    Student, SC

WHERE Student.Sno = SC.Sno AND    /* 连接谓词*/

C.Cno= ‘2’ AND SC.Grade > 90;/* 其他限定条件 */

6、查询每个学生的学号、姓名、选修的课程名及成绩

SELECT Student.Sno,Sname,Cname,Grade

FROM    Student,SC,Course    /*多表连接*/

WHERE Student.Sno = SC.Sno

and SC.Cno = Course.Cno;

四、实验内容与步骤

1、检索学号为S3学生所学课程的课程名与任课教师名。

2、检索至少选修LIU老师所授课程中一门课程的女学生姓名。

3、检索WANG同学学的课程的课程号。

4、检索至少选修两门课程的学生学号。

时间: 2024-12-24 06:49:36

MySQL数据库实验三:连接查询的相关文章

数据库---实验三 嵌套查询和视图操作

(一) 嵌套查询 1. 求选修了’MA’的学号和姓名. SQL> select sno,sname from student where sno in(select sno from sc where cno=(select cno from course where cname='数学')); 2. 查询与刘明在同一个系学习的学生. SQL> select * from student where sdept=(select sdept from student where sname='刘

数据库多表连接查询的实现方式

数据库多表连接查询的实现方式 连接查询是关系数据库中最主要的查询,主要包括自连接.内连接.外连接和交叉连接.通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中.当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息.连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型.为不同实体创建新的表,然后通过连接进行查询. 内连

Access数据库多表连接查询

第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * from A inner join B on A.ID=B.ID inner join C on B.ID=C.ID 此写法在Access中报错,Access对SQL语法理解方式不一样,它将两表连接后当作一个表然后再与第三个表连接,因此要改成 select * from (A inner join B o

mysql数据库可以远程连接或者说用IP地址可以访问

mysql数据库可以远程连接或者说用IP地址可以访问 一般情况不建议直接修改root的权限, 先看下,自己mysql数据库的用户级权限 mysql -u root -p----->用root登陆   use mysql------->切换到mysql数据库(这个mysql是数据库的名字,---->安装的时候系统自带的吧) 可以看到我的是这样的,至于为什么有2个root我还不太清楚,我记得mysql安装的时候有个选项是---(是否可以远程访问)可能第一个root是这个作用吧,而我们常用的是

MySQL数据库实验四:嵌套查询

实验四          嵌套查询 一.实验目的 掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法. 二.实验环境 三.实验示例 1.  查询与"刘晨"在同一个系学习的学生. SELECT Sno,Sname,Sdept FROM Student WHERE Sdept  IN (SELECT Sdept FROM Student WHERE Sname= ' 刘晨 '): 用自身连接完成 SELECT  S1.Sno,S1.Sname,S1.

PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案. PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展.MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的.因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性.由于太古老,又

数据库实验三(单表查询)

实验三: select sno,sname from student;//(1)查询全体学生的学号和姓名 select * from student;//(2)查询全体学生的详细记录 select sname,sage,sdept from student where sdept='MA';//(3)查询软件学院的学生姓名.年龄.系别 select distinct sno from sc;//(4)查询所有选修过课程的学生学号(不重复) select distinct sno from sc

MySQL 数据库实现远程连接

1,刚开始我使用的是Navicat for MySQL工具连接远程的mysql的数据库. 报错了.报错信息是 Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL server. 我查询网上的解决方法共有两种: a. 该表法.可能是你的账号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登录mysql后,更改“mysql”数据库里的'user'表的"host"

MySQL数据库之单双表查询

单表查询 先创建表 #创建表 create table employee( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), pos