当前位置:文档之家 > 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差不多,效果
一样)

(我试了下,这个作用其实和那个把两个表中相同的如 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 --default-character-set=latin1 -u root -p 输入密码登录 不能显示中文: Set...

Mysql多表查询,多表插入和多表更新

多表查询: CREATE TABLE IF NOT EXISTS contact( contact_id int(11) NOT ...mysql_insert_id()函数的作用是:取得上一步 INSERT 操作产生的 ID。 This ...

mysql-多表关联实例

mysql-多表关联实例_计算机软件及应用_IT/计算机_专业资料。sql多表关联操作详解(结合具体实例) Mysql 学习中 ,单表查询每个人都很容易掌握;但是多表之间的关联查...

MySQL中基本的多表连接查询教程

MySQL中基本的多表连接查询教程 - MySQL 中基本的多表连接查询教程 一、多表连接类型 1. 笛卡尔积(交叉连接) 在 MySQL 中可以为 CROSS JOIN 或者省略 CROSS ....

MySQL多表查询

MySQL多表查询 一使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.name,a....

MYSQL_多表查询学习

103f MYSQL 多表查询学习 - Web源码共享 - ╄中国飞客网╄ 技术前线首页 共享 论坛 Web前台开发 | 虚拟机研讨区 | 虚拟现实技术 | Web项目开发 | Web源码...

day20-总结(mysql单表和多表查询)

day20-总结(mysql单表和多表查询) - day 20 mysql单表和多表查询 ===...

msyql 多表查询

多表查询 1.简单查询 内连接查询 1】简单的连接查询 给两个表找中间桥梁: ...feiker (2010-1-15 17:12:27) MYSQL: 1.问题:检索出本校学生所在的地区...