当前位置: 首页 > news >正文

国内产品设计网站网页qq空间登录界面

国内产品设计网站,网页qq空间登录界面,饿了么网站做要多少钱,手机网址被禁止访问是怎么回事文章目录 1. 视图1.1 视图语法1.2 检查选项1.3 视图的更新1.4 视图的作用 2. 触发器2.1 介绍2.2 语法介绍2.3 触发器示例2.3.1 插入数据触发器2.3.2 修改数据触发器2.3.3 删除数据触发器 1. 视图 视图#xff08;View#xff09;是一种虚拟存在的表。视图中的数据并不在数据… 文章目录 1. 视图1.1 视图语法1.2 检查选项1.3 视图的更新1.4 视图的作用 2. 触发器2.1 介绍2.2 语法介绍2.3 触发器示例2.3.1 插入数据触发器2.3.2 修改数据触发器2.3.3 删除数据触发器 1. 视图 视图View是一种虚拟存在的表。视图中的数据并不在数据库中实际存在行和列数据来自定义视图的查询中使用的表并且是在使用视图时动态生成的。 通俗的讲视图只保存了查询的SQL逻辑不保存查询结果。所以我们在创建视图的时候主要的工作就落在创建这条SQL查询语句上。 1.1 视图语法 创建 CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]查询 查看创建视图语句SHOW CREATE VIEW 视图名称;查看视图数据SELECT * FROM 视图名称 ...... ;修改 方式一CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]方式二ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]删除 DROP VIEW [IF EXISTS] 视图名称 [,视图名称] ...代码演示 -- 创建视图 create or replace view user_v_1 as select id,name,phone,age from tb_user where age 30; -- 查询视图 show create view user_v_1; select * from user_v_1; select * from user_v_1 where age27; -- 修改视图 create or replace view user_v_1 as select id,name,phone from tb_user where age 40; alter view user_v_1 as select id,name,phone from tb_user where id 40; -- 删除视图 drop view if exists user_v_1;创建了上述视图后我们向视图中插入数据如下 insert into user_v_1 values(25,莱希奥, 12345678910, 29); insert into user_v_1 values(26,坤小满, 12345678911, 31);然后我们再执行查询语句查询视图可以发现只有 id 为25的数据在视图中但是这两条数据都已经插入到了表格中。 那么如果我们定义视图时如果指定了条件然后我们在插入、修改、删除数据时是否可以做到必须满足条件才能操作否则不能够操作呢 答案是可以的这就需要借助于视图的检查选项了。 1.2 检查选项 当使用WITH CHECK OPTION子句创建视图时MySQL会通过视图检查正在更改的每个行例如 插入更新删除以使其符合视图的定义。 MySQL允许基于另一个视图创建视图它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围mysql提供了两个选项 CASCADED 和 LOCAL默认值为 CASCADED 。 CASCADED CASCADED 是级联。比如v2视图是基于v1视图的如果在v2视图创建的时候指定了检查选项为 cascaded但是v1视图创建时未指定检查选项。 则在执行检查时不仅会检查v2还会级联检查v2的关联视图v1。 LOCAL LOCAL 是本地。比如v2视图是基于v1视图的如果在v2视图创建的时候指定了检查选项为 local 但是v1视图创建时未指定检查选项。 则在执行检查时知会检查v2不会检查v2的关联视图v1。 1.3 视图的更新 要使视图可更新视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项则该视图不可更新 聚合函数或窗口函数SUM()、 MIN()、 MAX()、 COUNT()等DISTINCTGROUP BYHAVINGUNION 或者 UNION ALL 代码演示 create view stu_v_count as select count(*) from student;上述的视图中就只有一个单行单列的数据如果我们对这个视图进行更新或插入的将会报错。 1.4 视图的作用 简单 视图不仅可以简化用户对数据的理解也可以简化他们的操作。那些被经常使用的查询可以被定义为视图从而使得用户不必为以后的操作每次指定全部的条件。 安全 数据库可以授权但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据 数据独立 视图可帮助用户屏蔽真实表结构变化带来的影响。 2. 触发器 2.1 介绍 触发器是与表有关的数据库对象指在 insert/update/delete 之前(BEFORE)或之后(AFTER)触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的记录内容这与其他的数据库是相似的。现在触发器还只支持行级触发不支持语句级触发。 触发器类型New和OLDINSERT 型触发器NEW 表示将要或者已经新增的数据UPDATE 型触发器OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据DELETE 型触发器OLD 表示将要或者已经删除的数据 2.2 语法介绍 创建 CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON tbl_name FOR EACH ROW -- 行级触发器 BEGINtrigger_stmt ; END;查看 SHOW TRIGGERS ;删除 DROP TRIGGER [schema_name.]trigger_name ; -- 如果没有指定 schema_name默认为当前数据库 2.3 触发器示例 通过触发器记录 tb_user 表的数据变更日志将变更日志插入到定义的日志表user_logs中, 包含增加修改删除 ; 表结构准备: -- 准备工作 : 日志表 user_logs create table user_logs(id int(11) not null auto_increment,operation varchar(20) not null comment 操作类型, insert/update/delete,operate_time datetime not null comment 操作时间,operate_id int(11) not null comment 操作的ID,operate_params varchar(500) comment 操作参数,primary key(id) )engineinnodb default charsetutf8;2.3.1 插入数据触发器 create trigger tb_user_insert_triggerafter insert on tb_user for each row begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, insert, now(), new.id, concat(插入的数据内容为:id,new.id,,name,new.name, , phone, NEW.phone, , email, NEW.email, ,profession, NEW.profession)); end;测试如下 -- 查看 show triggers ; -- 插入数据到tb_user insert into tb_user(id, name, phone, email, profession, age, gender, status, createtime) VALUES (26,三皇子,18809091212,erhuangzi163.com,软件工程,23,1,1,now());测试完毕之后检查日志表中的数据是否可以正常插入以及插入数据的正确性。 2.3.2 修改数据触发器 create trigger tb_user_update_trigger after update on tb_user for each row begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, update, now(), new.id,concat(更新之前的数据: id,old.id,,name,old.name, , phone, old.phone, , email, old.email, , profession, old.profession, | 更新之后的数据: id,new.id,,name,new.name, , phone, NEW.phone, , email, NEW.email, , profession, NEW.profession)); end;测试如下 -- 查看 show triggers ;-- 更新 update tb_user set profession 会计 where id 23; update tb_user set profession 会计 where id 5;2.3.3 删除数据触发器 create trigger tb_user_delete_trigger after delete on tb_user for each row begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, delete, now(), old.id, concat(删除之前的数据: id,old.id,,name,old.name, , phone, old.phone, , email, old.email, , profession, old.profession)); end;测试如下 -- 查看 show triggers ;-- 删除数据 delete from tb_user where id 26;
http://www.dnsts.com.cn/news/61102.html

相关文章:

  • 苏州市规划建设局网站网站备案接入商
  • 建设食品网站如何定位郑州大学科技园手机网站建设
  • 十大免费视频素材网站江西省城乡建设培训网站官方网站
  • 贵阳网站建设三思网络奉化区建设局网站
  • 帮人做网站推选的公司删除wordpress logo
  • 站长统计app网站人社系统网站一体化建设方案
  • 网站建设付款页面我的家乡网页制作代码
  • 赵艳红网站建设规划坪山网站建设资讯
  • 网站先做前端还是后台深圳最大的软件开发公司
  • 手机娱乐网站制作江门地区网站建设公司
  • 网站开发预算报表免费做网站自助建站
  • 菜鸟怎么做网站虚拟机怎么做网站空间
  • 荥阳市城乡建设规划网站百度网页翻译功能在哪
  • 网站建设总结经验宣城有做网站的公司吗
  • harry louis做受网站营销网站建设设计
  • 做阿里网站卖东西赚钱吗建设网站用凡科怎么样
  • 速度超快的wordpress模板一个网站多个域名的seo优化
  • 高端网站建设知识汽修厂营销活动方案
  • 免费的视频网站推广软件网站建设与运营公司主营业务收入与成本
  • 无锡专业制作网站便民平台推广怎么做
  • 网站类型的销售个人网站报价
  • 建立网站需要注册公司吗wordpress 英文改中文
  • 演示动画制作免费网站正规的抖音推广平台
  • 网站开发学习网站怎么添加关键词 好让百度收入_ 现在网站用的是模板做的
  • cms企业网站上海市建设咨询协会网站
  • 昆明网站制作方案定制做网站要注意些什么要求
  • 星乐seo网站关键词排名优化长沙建网站的公司一对一定制方案
  • 24小时学会网站建设 pdf上饶市建设局官方网站
  • 自己建设一个网站步骤微信第三方开发平台
  • 简易网站模板企业网站建立