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; use db_school; show tables; select * from tb_student cross join tb_score; 或 Select * from tb_student,tb_score;
2:查询每个学生选修课程的情况:
Select tb_student.*,tb_score.* from tb_student,tb_score Where tb_student.studentNo=tb_score.studentNo; 或 Select tb_student.*,tb_score.* b From tb_student inner join tb_score On tb_student.studentNo=tb_score.studentNo;
3:查询与“数据库”这门课学分相同的课程信息:
Select c1.* //c1表示tb_course的别名// From tb_course as c1,tb_course as c2 Where c1.credit=c2.credit and c2.courseNa=’数据库’; 或 Select c1.* From tb_course as c1 join tb_course as c2 On c1.credit=c2.credit Where c2.courseName=’数据库’;
4:用自然连接查询每个学生及其选修课程的情况,要求显示每个学生学号、姓名、选修的课程号和成绩;
Select a.studentNo,studentName,courseNo,score From tb_student as a natural join tb_score as b;
注意:自然连接只有当连接字段在两张表中的字段名都相同才可以使用,否则返回的就是笛卡儿积的结果集!
5:使用左外连接查询所有学生及其选修课程的情况,包括没有有选修课程的学生,要求显示学号、姓名、性别、班号、选修的课程号和成绩:
向学生表中插入一条数据:
Insert into tb_student b Values(‘2013310102’,’林海’,’男’,’19960118’,’北京’,’满’,’IS1301’); 然后进行左连接查询: Select a.studentNo,studentName,sex,classNo,courseNo,score From tb_student as a left outer join tb_score as b On a.studentNo=b.studentNo;
6:使用右外连接查询所有学生及其选修课程的情况,包括没有有选修课程的学生,要求显示学号、姓名、性别、班号、选修的课程号和成绩:
Select courseNo,score,b.studentNo,studentName,sex,classNo From tb_score as a right outer join tb_student as b On a.studentNo=b.studentNo;
连接查询?
连接查询是关系数据库中重要的查询方式,其包括交叉连接,内连接和外连接。
什么是笛卡儿积?
就是没有连接条件表关系返回的结果。
自连接和自然连接的区别?
自然连接操作就是表关系的笛卡儿积中,首先根据表关系中相同名称的字段自动进行记录匹配,然后去掉重复的字段
等值与非等值连接的区别
一个选择所匹配字段值相等的数据记录一个不相等
连接条件及其格式是怎么样的?
字段数据所要达成的效果,内连接、外连接、交叉连接,自然连接、自连接,等值连接、不等连接,
左连接、右连接、全外连接
外连接根据连接表的顺序分为几种?它们有什么区别?
左 连 接:连接于第一个为主
右 连 接:连接于第二个为主
全外连接:除了选择相匹配的数据记录,还包含关联左右两边表中不匹配的数据记录