200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Hbase数据库 视图 事务 存储过程 触发器------周东海

Hbase数据库 视图 事务 存储过程 触发器------周东海

时间:2023-08-28 22:39:31

相关推荐

Hbase数据库 视图 事务 存储过程 触发器------周东海

视图

1.定义

视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

2.为什么用

简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

安全性:通过视图用户只能查询和修改他们所能见到的数据。但不能授到数据库特定行和特定的列上。

逻辑数据独立性:视图可帮助用户屏蔽真实表结构变化带来的影响。

3.用法

1.创建视图CREATE VIEW v_blog(编号,标题,内容,作者编号) AS SELECT * FROM blog WITH CHECK OPTION;2.查询视图select * from v_long;

修改视图字段会将基表字段修改掉

#修改试图数据-->修改基表数据UPDATE v_blog SET 内容 = '修改后的内容' WHERE 编号 = 1;

2.事务

1.定义

在数据库中,我们将一条 SQL 语句称为一次基本的操作。将若干条 SQL 语句“打包”在一起,共同执行一个完整的任务,这就是事务。

2.为什么要用

为了避免出现意外,可以将以上两条语句放到一个事务中,其中一条语句执行失败时,数据库将回滚到原来的状态。对于买家来说,数据库回滚会导致下单失败,但这很容易处理,让买家再次下单即可。数据库的正确性永远是最重要的。

3.用法

#开启事务BEGIN;#插入语句INSERT INTO runoob (id) VALUE(5);INSERT INTO runoob (id) VALUE(6);#提交事务COMMIT;BEGIN;#插入语句INSERT INTO runoob (id) VALUE('abc');INSERT INTO runoob (id) VALUE(8);#回滚ROLLBACK;

3.存储过程

是存储这个过程而不是存储的过程

1.定义

存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

2.为什么用

1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。

2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。

3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

3.语法

#创建存储过程DELIMITER $CREATE PROCEDURE test2()BEGIN#声明变量类型DECLARE un VARCHAR(32) DEFAULT '';#给username变量赋值SET un = '小心';#将查询结果赋值给un变量SELECT username INTO un FROM student WHERE stuid = 3;#查询un变量 返回SELECT un;END $DELIMITER ;#调用存储过程CALL test2();

4.触发器

1.定义

触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。

2.为什么用

触发器的主要好处在于它们可以包含使用 Transact-SQL 代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。实体完整性总应在最低级别上通过索引进行强制,这些索引或是 PRIMARY KEY 和 UNIQUE 约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过 CHECK 约束进行强制,而引用完整性(RI) 则应通过 FOREIGN KEY 约束进行强制。在约束所支持的功能无法满足应用程序的功能要求时,触发器就极为有用。

3.语法

#触发器 关键词:triggerCREATE TRIGGER ins_stuAFTER INSERT ON student FOR EACH ROWINSERT INTO cj(stu_id,stu_name,math,chinese,english)VALUES(new.stuid,new.username,88,66,95)#执行触发过程INSERT INTO student(username,PASSWORD,birthday)VALUES('张三','32323233','-08-23');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。