MySQL筆記002(檢視)

2020-09-23 16:00:43

這裡我建立了三張表來對其使用檢視

CREATE TABLE userd(
user_id INT(4) PRIMARY KEY,
loginid VARCHAR(10) NOT NULL,
name_ VARCHAR(10) NOT NULL,
mobile INT(11) NOT NULL,
email VARCHAR(20) NOT NULL
);
CREATE TABLE course(
course_id INT(4) PRIMARY KEY,
course_name VARCHAR(10) NOT NULL,
description VARCHAR(10) NOT NULL
);
CREATE TABLE user_course(
id INT(4) PRIMARY KEY,
user_id INT(4) NOT NULL,
course_id INT(4) NOT NULL
);
– 新增外來鍵約束 外來鍵約束只能再主鍵或者UNIQUE的約束條件下新增 如果新增兩個則稍微改下名就好
– 例如: user_course 和user_course1
ALTER TABLE user_course ADD CONSTRAINT fk_user_course
FOREIGN KEY(user_id) REFERENCES userd(user_id);
ALTER TABLE user_course ADD CONSTRAINT fk_user_course1
FOREIGN KEY(course_id) REFERENCES course(course_id);

建立好後的表:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

這裡我們使用userd和course作為user_course的外連線將三張表聯絡起來
– 查詢
SELECT u.name_,c.course_name,c.description
FROM userd u JOIN user_course uc ON u.user_id=uc.user_id JOIN course c ON c.course_id=uc.course_id
WHERE u.name_=‘花生’;
SELECT * FROM vw_user_course WHERE name_=‘花生’;
檢視
CREATE
VIEW test.vw_user_course
AS SELECT u.name_,c.course_name,c.description
FROM userd u JOIN user_course uc ON u.user_id=uc.user_id JOIN course c ON c.course_id=uc.course_id;
(SELECT * FROM vw_user_course);
檢視不是表,不儲存資料,只是一張虛擬表,檢視的資料來源於基表。
如果檢視的資料只來源與一張基表,那麼修改檢視相當於修改基表。