当前位置:文档之家 > msyql 多表查询

msyql 多表查询

多表查询

1.简单查询

内连接查询

1】简单的连接查询

给两个表找中间桥梁: select 字段列表from 表1,表2 where 表1.s_di=表2.s_id;

eg: select s_name,marks from student_info,marks_info where

student_info.s_id=marks_info.s_id;

eg: select s_name,marks,c_name from

student_info,marks_info,class_info where marks_info.s_id=student_info.s_id and

marks_info.c_id=class_info.c_id;

问题:如果表名很长,书写繁琐,代码不清晰。

解决:使用表别名

定义格式:1】表名as 别名

2】表名别名

别名作用域只在本查询语句中

eg : select s_name,c_name,marks from student_info s,marks_info

m,class_info c where s.s_id=m.s_id and m.c_id=c.c_id

查询学生的编号,姓名,科目,成绩

问题:如果查询的字段在多个表中存在,那么就必须在字段前添加表名或表的别名

select s.s_id,s_name,c_name,marks from student_info s,marks_info

m,class_info c where s.s_id=m.s_id and m.c_id=c.c_id

2】SQL内外连接(是SQL语言中的多表分类,查询效率比简单查询和子查询在某种情况下要高)

内连接格式:select 字段列表from 表1 inner join 表2 on 表1.字段=表2.字段

eg :查询学生的姓名和成绩

select s_name,c_name,marks from student_info inner join marks_info on

student_info.s_id=marks_info.s_id inner join class_info on

marks_info.c_id=class_info.c_id;

(我试了下,这个作用其实和那个把两个表中相同的如ID号再把其对应的字段放在一起。和select * from table1,table2 where
table1.id=table2.id差不多,效果一样) 3】自然查询: 是简单的查询中去掉重复的记录在字段中添加distinct

(我试了下,这个作用其实和那个把两个表中相同的如ID号再把其对应的字段放在一起。和select * from table1,table2 where table1.id=table2.id差不多,效果一样) 3】自然查询: 是简单的查询中去掉重复的记录在字段中添加distinct

外连接查询outer join

1】左连接(left join)select 字段列表from 表1 left join 表2 on 表1.字段=表2.字段

(查询语句以表1为参照表) 如果表2中有与表1相匹配的记录,那么就显示记录,如果表2中没有与表1相匹配的记录则在相对应的字段上填充null)

问题:如果查询的记录,必须以某个表作为参照表,打印出记录相同的所有的记录SELECT s_name, marks FROM student_info s LEFT JOIN marks_info m ON

s.s_id = m.s_id

2】右连接(right join) (查询语句以表2为参照表)

下载Word文档免费下载:

msyql 多表查询下载

(共17页)

MYSQL的多表操作查询

---另外需要注意的地方 在 MySQL 中涉及到多表查询的时候, 需要根 据查询的情况,想好使用哪种连接方式效率 更高。 1. 交叉连接(笛卡尔积)或者内连接 [INNER...

mysql多表查询

mysql多表查询 - 1.order by 排序 mysql> select * from xin order by id; +---+---+ | id | name...

第六部分MYSQL多表查询

第六部分MYSQL多表查询 - 多表查询—问题 学员内部测试成绩查询的每次显示的都是学员的编号信息, 因为该表中只存储了学员的编号; 实际上最好显示学员的姓名,而...

mysql多表查询

?查询MYSQL中支持的存储引擎 SHOW ENGINES InnoDB引擎:为用户操作非常大的数据库提供了一个强大的解决方法 提供了事务,回滚,崩溃修复,支持AUTO_INCREMENT 支持FOREIGN...

第5章 MySQL多表操作

第5章 MySQL多表操作 - 让IT教学更简单,让IT学习更有效 第五章 多表操作 ? 外键 ? 操作关联表 ? 连接查询 ? 子查询 ? 学习目标 1 让IT教学更简单,让...

MySQL数据库高级查询和多表查询(二)

MySQL数据库高级查询和多表查询(二) - 机试测试试卷 (MySQL 数据库应用与开发) 院校 : 方向 :Java 方向 日期 : 时间 : 总分数 :100 分 姓名: ...

MySql 多表联合查询

MySql 多表联合查询_计算机软件及应用_IT/计算机_专业资料。MySql 多表联合查询...mysql_insert_id()函数的作用是:取得上一步 INSERT 操作产生的 ID。 This ...

Java连接数据库,多表查询

Java连接数据库,多表查询 - Java 以编程的形式连接数据库,并实现多表查询,查询条件是三年级 2 班,语文 成绩大于 80 分的学生,并打出名单。代码如下: package...

mysql多表操作与练习笔记

mysql –u root –p mydb<c:/mydb.sql 2. source c:/mydb.sql 掌握多表设计 掌握外键的作用及创建方式 了解多表查询原理及迪卡尔积 掌握内连接 掌握外连接...

mysql-多表关联实例

mysql-多表关联实例 - sql多表关联操作详解(结合具体实例)... Mysql 学习中 ,单表查询每个人都很容易掌握;但是多表之间的关联查 询对于初学者是很难掌握的,以下...