
- 要显示视图的定义,需要在SHOW CREATE VIEW子句之后指定视图的名称,
- 我们先来创建几张表,完事后在进行演示:
- -- 用户信息表(网站后台管理人员)
- CREATE TABLE UserInfo
- (
- id INT AUTO_INCREMENT PRIMARY KEY , -- 用户编号
- userName VARCHAR(20) NOT NULL UNIQUE, -- 用户名称
- userPwd VARCHAR(20) NOT NULL -- 用户密码
- )CHARSET utf8;
-
- -- 公告信息表
- DROP TABLE IF EXISTS Bulletin;
- CREATE TABLE Bulletin
- (
- id INT AUTO_INCREMENT PRIMARY KEY, -- 编号
- title VARCHAR(100) NOT NULL, -- 标题
- content TEXT NOT NULL, -- 内容
- userId INT NOT NULL , -- 发布者
- createTime VARCHAR(20) NOT NULL ,-- 发布时间
- FOREIGN KEY (userId) REFERENCES UserInfo(id)
- ) CHARSET utf8;
- SELECT * FROM Bulletin;
- 再插入用户信息数据和公告信息数据:
- INSERT INTO UserInfo VALUES (null,'admin','123456');
- INSERT INTO UserInfo VALUES (null,'zhangsan','123456');
- INSERT INTO UserInfo VALUES (null,'lisi','123456');
- INSERT INTO Bulletin VALUES (null,'测试数据1','公告内容1',1,NOW());
- INSERT INTO Bulletin VALUES (null,'测试数据2','公告内容2',1,NOW());
- INSERT INTO Bulletin VALUES (null,'测试数据3','公告内容3',1,NOW());
- INSERT INTO Bulletin VALUES (null,'测试数据4','公告内容4',1,NOW());
- 表建完了然后我们开始创建视图:
基本语法:
create view 视图名 as select语句;
select语句可以是查询中任意一种
新创建单表视图:基表只有一个
例如:CREATE VIEW view_UserInfo AS SELECT * FROM UserInfo;
-- 调用
SELECT * FROM view_UserInfo;
再创建多表视图:基表来源是两个以上,必须保证视图中不出现重复字段
例如:
CREATE VIEW view_select1
AS
SELECT a.*,userName,userPwd FROM Bulletin a,UserInfo b WHERE a.userId=b.id;
-- 调用
SELECT * FROM view_select1;
查看视图:
desc 视图名;
show create view 视图名;
视图一旦创建,系统会在视图对应的数据文件夹下创建一个对应的结构文件:frm文件
使用视图:select * from 视图名;
1. 插入视图:
INSERT INTO 视图名 VALUES(字段);
例如:INSERT INTO view_Userinfo VALUES(4,'wangfeng',123456);
2. 修改视图:
视图本身不可修改,但是视图中的来源是可以修改的
alter view 视图名 as 新的select语句
例如:UPDATE view_UserInfo SET userName='lisi' WHERE userPwd='456789';
3. 删除视图:drop view 视图名;
- 例如: DELETE FROM view_userinfo WHERE id=1;

