【Mysql】之视图操作
生活随笔
收集整理的這篇文章主要介紹了
【Mysql】之视图操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、視圖實例1-創(chuàng)建視圖及查詢數(shù)據(jù)操作
首先,創(chuàng)建三個表:user、course、user_course
表:user
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`account` varchar(200) NOT NULL,`name` varchar(200) NOT NULL,`address` varchar(500) DEFAULT NULL,`others` varchar(500) DEFAULT NULL,`others2` varchar(500) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into user (account,name,address,others1,others2)values (user1,'小張','天津',1,1), (user2,'小王','北京',2,2), (user3,'小李','上海',3,3);
表:course
CREATE TABLE `course` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(200) NOT NULL,`description` varchar(500) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into course (name,description) values ('JAVA','JAVA課程'), ('C++','C++課程'), ('C','C課程');表:user_course
CREATE TABLE `user_course` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`userid` bigint(20) NOT NULL,`courseid` bigint(20) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into user_course (userid,courseid) values (1,2), (1,3), (2,4), (3,5);其次,利用表關(guān)聯(lián)三表進(jìn)行聯(lián)合查詢:
SELECTuc.id AS id,u. NAME AS username,c.description AS coursename FROMUSER u LEFT JOIN user_course uc ON ((u.id = uc.userid)) LEFT JOIN course c ON ((uc.courseid = c.id)) WHEREu. NAME = '小王';最后,創(chuàng)建視圖進(jìn)行三表關(guān)聯(lián)查詢:
DROP VIEW IF EXISTS view_user_course;CREATE VIEW view_user_course AS (SELECTuc.id AS id,u. NAME AS username,c.description AS coursenameFROMUSER uLEFT JOIN user_course uc ON ((u.id = uc.userid))LEFT JOIN course c ON ((uc.courseid = c.id)) ); SELECT* FROMview_user_course vuc WHEREvuc.username = '小張';二、視圖實例2-增刪改數(shù)據(jù)操作
首先, 創(chuàng)建視圖:
視圖與表是一對一關(guān)系情況:如果沒有其它約束(如視圖中沒有的字段,在基本表中是必填字段情況),是可以進(jìn)行增刪改數(shù)據(jù)操作;
create view st_view as( select u.id as st_id, u.`name` as st_name, u.account as st_user from `user` u ); #視圖增刪改查 insert into st_view (st_name,st_user) values('小孫','user4');delete from st_view where st_name = '小孫';update st_view set st_name = '小田' where st_id = 7?
轉(zhuǎn)載于:https://www.cnblogs.com/Owen-ET/p/8710414.html
總結(jié)
以上是生活随笔為你收集整理的【Mysql】之视图操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 非线性辨识,非线性系统辨识
- 下一篇: SQL Server表分区-水平分区