CREATE TABLE A
INSERT INTO A
(+id+, +title+)
VALUES
(1, 'ab'),
CREATE TABLE B
INSERT INTO B
(+id+, +author+)
(1, 'zhang'),
查询下面的语句:
select * from A ,B where A.ID=B.ID;
要点:left
join,right
join,inner
join
首先有如下两个表:
student:
id(int)
name(nvarchar)
a
b
c
d
e
f
quiz:
id(int)
score(int)
①.00
内连接:(inner
join)包括连接表的匹配行
select
student.name,quiz.score
from
quiz
inner
student
on
student.id=quiz.id
name
score
左连接:(left
join)包括连接表匹配行以及左连接表的所有行
left
null
右连接:(right
join)结果包括连接表的匹配行以及右连接表的所有行
right
当然,也可以看出左连接也可以写成右连接的形式:
student.id=quiz.id等价于
MySQL在多个数据表上创建视图
在MySQL中,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图.
实例
在department表和worker表上创建一个名为worker_view1的视图.
① 创建视图的代码如下:
CREATE ALGORITHM=MERGE VIEW
worker_view1(name,department,sex,age,location)
AS SELECT name,department.d_name,sex,birthday,address
FROM worker,department WHERE worker.d_id=department.d_id
WITH LOCAL CHECK OPTION;
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果.如下图所示:
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果
从上图中可以看出,代码的执行结果显示视图创建成功.
使用DESC语句查询虚拟表的结构
从上图中可以看出,视图worker_view1的属性分别为name、department、sex、age和location.
视图指定的属性列表对应着两个不同的表的属性列(字段).
视图的属性名与属性列表中的属性名相同.
该实例中的SELECT语句查询出了department表的d_name字段,还有worker表的name、sex、birthday和address.其中,department表的d_name字段对应视图的department字段;worker表的birthday字段对应视图的age字段.
同时,视图worker_view1的ALGORITHM的值指定为MERGE.还增加了WITH LOCAL CHECK OPTION约束.
本示例说明,视图可以将多个表上的操作简洁的表示出来.
提示