正在更新中

MySQL 视图的(增删改 查)

电脑版发表于:2019/3/9 17:11
要显示视图的定义,需要在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;
关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢