mysql多表成绩查询_MySQL多表数据记录查询(一)
1.交叉连接SQL语句的语法结构如下:
select * from表1 cross join 表2;
或
Select * from表1,表2;
2.内连接SQL语句有两种表示形式:
使用inner join 语法结构如下:
Select表达式1,表达式2,...,表达式n
From表1 【inner】join 表2
On连接条件
【where过滤条件】;
或
使用where字句定义连接条件语法结构如下:
Select表达式1,表达式2,...,表达式n
From表1,表2
Where连接条件【and过滤条件】;
主要参数说明:
表达式1,表达式2,...表达式n :表示为需要检索的名称或列名。
表1和表2 :是进行内连接的表名。
连接条件 :连接查询中用来连接两个表的条件。
一般格式是:表名1.字段名1 比较运算符 表名2.字段名2
比较运算符主要有:=,,>=,<=,当比较运算符为“=”时表示
等值连接,其他则为非等值连接
1:查询学生表与成绩表的交叉连接:
在库db_school下创建tb_class、tb_student、tb_course、tb_score四张表
show databases;usedb_school;
show tables;select * from tb_student cross jointb_score;
或Select * from tb_student,tb_score;
2:查询每个学生选修课程的情况:
Select tb_student.*,tb_score.* fromtb_student,tb_scoreWhere tb_student.studentNo=tb_score.studentNo;
或Select tb_student.*,tb_score.*bFrom tb_student inner jointb_scoreOn tb_student.studentNo=tb_score.studentNo;
3:查询与“数据库”这门课学分相同的课程信息:
Select c1.* //c1表示tb_course的别名//
From tb_course as c1,tb_course asc2Where c1.credit=c2.credit and c2.courseNa=’数据库’;
或Select c1.*
From tb_course as c1 join tb_course asc2On c1.credit=c2.creditWhere c2.courseName=’数据库’;
4:用自然连接查询每个学生及其选修课程的情况,要求显示每个学生学号、姓名、选修的课程号和成绩;
Selecta.studentNo,studentName,courseNo,scoreFrom tb_student as a natural join tb_score as b;
注意:自然连接只有当连接字段在两张表中的字段名都相同才可以使用,否则返回的就是笛卡儿积的结果集!
5:使用左外连接查询所有学生及其选修课程的情况,包括没有有选修课程的学生,要求显示学号、姓名、性别、班号、选修的课程号和成绩:
向学生表中插入一条数据:
Insert intotb_student bValues(‘2013310102’,’林海’,’男’,’19960118’,’北京’,’满’,’IS1301’);
然后进行左连接查询:Selecta.studentNo,studentName,sex,classNo,courseNo,scoreFrom tb_student as a left outer join tb_score asbOn a.studentNo=b.studentNo;
6:使用右外连接查询所有学生及其选修课程的情况,包括没有有选修课程的学生,要求显示学号、姓名、性别、班号、选修的课程号和成绩:
SelectcourseNo,score,b.studentNo,studentName,sex,classNoFrom tb_score as a right outer join tb_student asbOn a.studentNo=b.studentNo;
连接查询?
连接查询是关系数据库中重要的查询方式,其包括交叉连接,内连接和外连接。
什么是笛卡儿积?
就是没有连接条件表关系返回的结果。
自连接和自然连接的区别?
自然连接操作就是表关系的笛卡儿积中,首先根据表关系中相同名称的字段自动进行记录匹配,然后去掉重复的字段
等值与非等值连接的区别
一个选择所匹配字段值相等的数据记录一个不相等
连接条件及其格式是怎么样的?
字段数据所要达成的效果,内连接、外连接、交叉连接,自然连接、自连接,等值连接、不等连接,
左连接、右连接、全外连接
外连接根据连接表的顺序分为几种?它们有什么区别?
左 连 接:连接于第一个为主
右 连 接:连接于第二个为主
全外连接:除了选择相匹配的数据记录,还包含关联左右两边表中不匹配的数据记录
mysql多表成绩查询_MySQL多表数据记录查询(一)相关推荐
- mysql 查询多个记录查询_MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql
mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...
- mysql 单表数据_Mysql--单表数据记录查询
1.简单数据记录查询 1.1 简单数据查询 1.1.1 查询所有字段数据 例子: 1.1.2 "*"符号的使用 语法: 例子: 1.1.3 查询指定字段数据 例子: 1.2 避免重 ...
- MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- 第七章-单表数据记录查询
7.2 简单数据记录查询 7.2.1 查询所有字段 select *|字段名 from 表名: 7.2.2 查询指定字段 select 字段名 from 表名: 7.2.3查询指定记录 select ...
- sql如何遍历几百万的表_关于SQL查询效率,100w数据,查询只要1秒
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询 ...
- mysql教程中插入语句_mysql中插入数据Insert into语句用法
在mysql中要向数据库中保存数据我们最常用的一种方法就是直接使用Insert into语句来实现了,下面我来给大家详细介绍Insert into语句用法 INSERT用于向一个已有的表中插入新行.I ...
- 关于SQL查询效率,100w数据,查询只要1秒
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询 ...
- mysql多表成绩查询_MySQL多表查询答案
一.综合练习 1.1 init.sql文件内容 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Serv ...
最新文章
- python简单代码hello-实现简单的hello/hi程序——python
- python预处理c语言_详解C语言编程中预处理器的用法
- linux yum install和yum localinstall、rpm -ivh的区别
- Python 模块之 time datetime
- java恶搞程序半成品,打开将程序本身写到c盘隐藏,并设置开机启动项。可无限开机,可加影藏cmd while死循环 卡爆cpu
- 如何用python设计一个计算器程序_如何使用 50 行 Python 代码制作一个计算器
- 解决ThinkServer TS250中网卡在centos6.5中没有安装驱动(驱动安装)
- bootbox.js文档中文版
- OpenCV——常用函数
- 时间与时间戳之间的转换
- Android 应用在后台弹出提示相关的笔记1
- 设计模式——C++版
- python一入深似海-模块化编程-钢铁侠战甲(二)
- 会员营销中,数字会员模式如何打造差异化会员服务
- 字符串中空格相关操作
- 布尔教育 mysql高级_布尔教育 Mysql高级 燕十八
- [业界新闻] 网络多媒体老大Macromedia被Adobe收购!
- 双出口NAT+PBR+IPSec V*N
- Jquery(二)之高级用法
- Windows系统移动/复制安装(和原来的系统无丝毫差别)