天天看點

[資料庫基礎]-- SQL内連結、外連結舉例

主題:SQL内連結、外連結定義和舉例

一、SQL内連結、外連結定義

1、SQL内連結:将2張表按照on的條件,傳回公共部分

表示如圖:

[資料庫基礎]-- SQL内連結、外連結舉例

(1)sql第一種形式

select * from  Table_1 t1,Table_2  t2 where t1.id=t2.id;

(2)sql第二種形式

select * from Table_1  t1 inner join Table_2  t2 on t1.id=t2.id;

2、SQL外連接配接:包含左連結和右連接配接

--1)、左連結,如圖

[資料庫基礎]-- SQL内連結、外連結舉例

select * from Table_1 t1 left join Table_2 t2 on t1.id =t2.id ;

select * from Table_1 t1 left outer join Table_2 t2 on t1.id =t2.id;

--2)、右連結,如圖

[資料庫基礎]-- SQL内連結、外連結舉例

sql舉例:select * from Table_1 t1  right join Table_2 t2 on t1.id=t2.id;

select * from Table_1 t1 right outer join Table_2 t2 on t1.id =t2.id;

二、SQL内連結、外連結舉例

1、建立2張測試表、并且添加測試資料

-- 1、建立學生表
CREATE TABLE `t_student` (
  `id` int(11) COMMENT '課程id',
  `name` varchar(40) NOT NULL COMMENT '姓名',
  `student_id` int(4) NOT NULL COMMENT '學生編号'
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT '學生表';


-- 2、建立課程表
CREATE TABLE `t_course` (
  `id` int(11) COMMENT '課程id',
  `name` varchar(40) NOT NULL COMMENT '名稱'
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT '課程表';

--3、插入測試資料
INSERT INTO `t_student` VALUES (1,'張三',101);
INSERT INTO `t_student` VALUES (2,'李四',102);
INSERT INTO `t_student` VALUES (3,'王五',103);
INSERT INTO `t_student` VALUES (4,'張三',101);
INSERT INTO `t_student` VALUES (5,'李四',102);
INSERT INTO `t_student` VALUES (7,'李四',103);
INSERT INTO `t_course` VALUES (1,'國文');
INSERT INTO `t_course` VALUES (2,'數學');
INSERT INTO `t_course` VALUES (3,'英語');
INSERT INTO `t_course` VALUES (4,'實體');
INSERT INTO `t_course` VALUES (5,'化學');
INSERT INTO `t_course` VALUES (6,'生物');      

2、測試内連結

-- 内連結:

    select * from t_student ts inner join t_course  tc on ts.id=tc.id;

-- 結果:

[資料庫基礎]-- SQL内連結、外連結舉例

3、測試外連結(左連接配接和右連結)

  --1)、左連結:select * from t_student ts left join t_course  tc on ts.id=tc.id;

[資料庫基礎]-- SQL内連結、外連結舉例

--2)、右連結:select * from t_student ts right join t_course  tc on ts.id=tc.id;

[資料庫基礎]-- SQL内連結、外連結舉例

注:以上内容可能有不全面,歡迎各位朋友批評指正!謝謝