- 浏览: 247258 次
- 性别:
- 来自: Shanghai
文章分类
最新评论
-
a790851624:
本人刚到公司,接到一个任务:在java代码中集成kettle的 ...
java应用程序中集成Kettle -
obnijeh:
谢谢共享,正需要。
Kettle 简介及Kettle用户操作手册 -
zhaokui:
很好,很好
Java中SimpleDateFormat用法详解——获得常用时间表示法(二) -
zhaokui:
,不错,不错
Java中SimpleDateFormat用法详解(一) -
babaoqi:
学习下,O(∩_∩)O谢谢了
Kettle 简介及Kettle用户操作手册
一. 视图概述
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
二. 创建视图——CREATE VIEW
1. 语法
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW [db_name.]view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
通过该语句可以创建视图,若给定了[OR REPLACE],则表示当已具有同名的视图时,将覆盖原视图。select_statement是一个查询语句,这个查询语句可从表或其它的视图中查询。视图属于数据库,因此需要指定数据库的名称,若未指定时,表示在当前的数据库创建新视图。
表和数据库共享数据库中相同的名称空间,因此,数据库不能包含相同名称的表和视图,并且,视图的列名也不能重复。
2. 使用举例
Eg. 本例创建一个产品表(product)和一个购买记录表(purchase),再通过视图purchase_detail查询出购买的详细信息。
CREATE TABLE product
(
product_id INT NOT NULL,
name VARCHAR(50) NOT NULL,
price DOUBLE NOT NULL
);
INSERT INTO product VALUES(1, ‘apple ‘, 5.5);
CREATE TABLE purchase
(
id INT NOT NULL,
product_id INT NOT NULL,
qty INT NOT NULL DEFAULT 0,
gen_time DATETIME NOT NULL
);
INSERT INTO purchase VALUES(1, 1, 10, NOW());
CREATE VIEW purchase_detail AS SELECT product.name as name, product .price as price, purchase.qty as qty, product .price * purchase.qty as total_value from product, purchase where product.product_id = purchase.product_id;
创建成功后,输入:SELECT * FROM purchase_detail;
运行效果如下:
+——-+——-+—–+————-+
| name | price | qty | total_value |
+——-+——-+—–+————-+
| apple | 5.5 | 10 | 55 |
+——-+——-+—–+————-+
1 row in set (0.01 sec)
3. 注意事项
创建视图存在如下注意事项:
(1) 运行创建视图的语句需要用户具有创建视图(CRATE VIEW)的权限,若加了[OR REPLACE]时,还需要用户具有删除视图(DROP VIEW)的权限;
(2) SELECT语句不能包含FROM子句中的子查询;
(3) SELECT语句不能引用系统或用户变量;
(4) SELECT语句不能引用预处理语句参数;
(5) 在存储子程序内,定义不能引用子程序参数或局部变量;
(6) 在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句;
(7) 在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图;
(8) 在视图定义中命名的表必须已存在;
(9) 不能将触发程序与视图关联在一起;
(10) 在视图定义中允许使用ORDER BY,但是,如果从特定视图进行了选择,而该视图使用了具有自己ORDER BY的语句,它将被忽略。
三. 修改视图——ALTER VIEW
1. 语法
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
该语句用于更改已有视图的定义。其语法与CREATE VIEW类似。
2. 使用举例
Eg. 将上一小节中中创建的视purchase_detail进行修改,去掉qty列,语句如下:
ALTER VIEW purchase_detail AS SELECT product.name as name, product .price as price, product .price * purchase.qty as total_value from product, purchase where product.product_id = purchase.product_id;
此时通过语句:select * from purchase_detail;对视图进行查询时,结果如下:
+——-+——-+————-+
| name | price | total_value |
+——-+——-+————-+
| apple | 5.5 | 55 |
+——-+——-+————-+
3. 注意事项
修改视图的注意事项除了第一条外跟创建视图的注意事项是一样的。第(1)条应改为:
该语句需要具有针对视图的CREATE VIEW和DROP权限,也需要针对SELECT语句中引用的每一列的某些权限。
四. 删除视图——DROP VIEW
1. 语法
DROP VIEW [IF EXISTS]
view_name [, view_name] …
[RESTRICT | CASCADE]
该语句用户删除视图,可一次删除多个视图。[IF EXISTS]选项确保语句正确运行。若没有该子句,当指定的视图不存在时,将发生错误。
2. 使用举例
Eg1. 删除在前面的小节中创建的视图purchase_detail:DROP VIEW purchase_detail;
Eg2. 删除一个未知的视图:DROP VIEW IF EXISTS test_view;
Eg3. 删除多个视图:DROP VIEW IF EXISTS test_view1, test_view2;
3. 注意事项
必须对要删除的一个或多个视图拥有DROP VIEW的权限
发表评论
-
利用Spring的AbstractRoutingDataSource解决多数据源的问题(一)
2014-10-25 19:52 1216多数据源问题很常见,例如读写分离数据库配置。 原来的项目出 ... -
数据库连接池的使用
2014-10-25 19:28 635关于数据库连接池的使用,首先我们要明白我们为什么要用它,对应 ... -
sqlplus 中 & 转义
2014-02-14 10:39 834方法一: excute 'set define off' ... -
SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作
2012-04-10 18:04 0所谓的数据传输,其实是指SQLServer访问Access、E ... -
有享商城--有精彩,齐分享,享购物,享自游,享团购,享优惠
2012-03-29 12:35 0有享商城于2012-03-29上线运营 有 ... -
(转)Oracle导出数据库 PLSQL怎样导出表结构
2012-02-10 17:00 3184导出某张表: 具体步骤如下: 在cmd窗口输入 exp use ... -
ORACLE日期时间函数大全(二)
2011-11-24 11:10 97324,round[舍入到最接近的日期](day:舍入到最接近的 ... -
ORACLE日期时间函数大全(一)
2011-11-24 11:08 900TO_DATE格式(以时间:2007-11 ... -
oracle恢复误删除数据,解除锁定的等sql语句
2011-11-24 10:51 1086注意:数据库版本是10g,不过大部分9i的也适用,闪回9i就没 ... -
在oracle10g数据库中修改表的结构
2011-11-24 10:48 969在oracle10g数据库中修改表的结构 以下以已经创建的表( ... -
plsql连oracle服务器时,ORA-12154解决总结
2011-11-15 16:20 21851.可能因为字符串有问题: 首先检查一下tnsnames.o ... -
sql*plus 执行sql文件
2011-11-15 16:13 9381.在SQL*Plus中执行单个sql脚本文件: S ... -
Mysql 时间类型格式转换及处理
2011-02-28 13:52 1577对于每个类型拥有的值范围以及并且指定日期何时间值的有 ... -
Mysql跨服务器查询
2011-01-25 11:15 2169最近遇到一个问题,需要在两个服务上的两个数据库进行联表查询,本 ... -
mysql同步复制搭建方法指南详细步骤
2011-01-25 11:10 8321.利用MySQL自身的数据库同步功能(下面参考自网上的文章, ... -
SQL Server里面可能经常会用到的日期格式转换方法
2010-12-30 17:48 969sql server使用convert来取得datetime日 ... -
c3p0配置介绍
2010-11-25 14:10 837C3P0是一个开放源代码的JDBC连接池,它在lib目录中与H ... -
sql server 2005学习笔记之触发器简介(一)
2010-11-13 14:28 8411.http://www.360doc.com/content ... -
对Sql Server中的表添加级联更新和级联删除的几种方法
2010-11-13 14:19 1633create trigger trg_Aon Afor upd ... -
mysql数据库远程连接不上
2010-11-03 13:42 1249改表法。可能是你的帐号不允许从远程登陆,只能在localhos ...
相关推荐
#### 注意事项 - **安全性**:通过视图,您可以限制用户对敏感数据的访问。确保只授予用户对视图的访问权限,而不是直接访问基础表。 - **性能考虑**:虽然动态视图非常有用,但过多地使用它们可能会降低查询性能。...
### MySQL视图详解 #### 一、视图概述 视图是MySQL中一种重要的功能,它为用户提供了灵活的数据访问方式。简而言之,视图是一个虚拟表,其内容由一条SELECT语句定义。尽管视图看起来像是一个独立的表,但实际上它...
#### 二、MySQL视图 ##### 1、基本概念 视图是一种虚拟表,它不实际存储数据,而是根据定义的查询从一个或多个实际表中动态获取数据。视图的主要用途之一是提高数据的安全性,通过限制用户对敏感数据的访问,仅展示...
5. **注意事项**:跨数据库操作需要注意性能问题,因为每次对视图的操作都会触发与Oracle的网络通信。因此,视图的设计应尽可能减少数据传输量和提高查询效率。 6. **安全性**:确保在配置数据源和编写SQL语句时,...
在学习MySQL的过程中,了解一些使用注意事项至关重要,这有助于确保数据库的安全性和高效性。以下是一些关于MySQL使用的关键点: 1. **启动和停止MySQL服务**: 在Windows NT操作系统上,你可以通过命令行来控制...
### Oracle转MySQL注意事项详解 #### 一、概述 在企业级应用中,有时需要将现有的Oracle数据库迁移到MySQL,这不仅涉及到技术上的挑战,还可能影响到整个系统的稳定性和性能。本文档旨在提供一个全面的指南,帮助...
本教程将详细介绍MySQL的基本概念、功能以及安装过程中的注意事项。 一、MySQL基本介绍 MySQL的核心特性包括支持ACID(原子性、一致性、隔离性和持久性)事务、多种存储引擎(如InnoDB用于事务处理,MyISAM用于快速...
数据库视图是数据库中一个非常重要的概念,它提供了一种虚拟表的概念,使得用户可以...通过本文的介绍,相信读者已经掌握了在Oracle和MySQL中创建和执行视图的基本方法,以及它们在实际应用中的一些差异和注意事项。
实验还强调了在创建和使用视图时应注意的一些限制和注意事项,如: - 用户需要相应的权限(create view、drop view)。 - 视图定义不能包含子查询、系统或用户变量、预处理语句参数。 - 不能在存储子程序内引用子...
4.6.1 Linux RPM注意事项 4.6.2 构造客户程序 4.6.3 系统特定的问题 4.6.3.1 Linux 注意事项 4.6.3.2 HP-UX 注意事项 4.7 安装 MySQL源代码分发 4.7.1 快速安装概述 4.7.2 运用补丁...
创建数据库的注意事项 在创建数据库时,需要注意以下几点: * 需要有足够的权限来创建数据库,否则会出现错误。 * 创建数据库时,可以指定数据库的字符集和排序规则。 * 如果数据库已经存在,可能会出现错误,需要...
4.6.2 构造客户程序 4.6.3 系统特定的问题 4.6.3.1 Linux 注意事项 4.6.3.2 HP-UX 注意事项 4.7 安装 MySQL源代码分发 4.7.1 快速安装概述 4.7.2 运用补丁 4.7.3 典型的...
这份名为"mySql数据库相关资料大全(入门,常用函数大全、语句注意事项、技术等).rar"的压缩包提供了全面的学习资源,涵盖了从初学者到高级用户的各个阶段。 1. **SQL语句的注意事项.docx**: 这份文档可能包含...
+ 4.11.5 Linux (所有的Linux版本)注意事项 # 4.11.5.1 Linux-x86 注意事项 # 4.11.5.2 RedHat 5.0 注意事项 # 4.11.5.3 RedHat 5.1 注意事项 # 4.11.5.4 Linux-SPARC 注意事项 # 4.11.5.5 Linux-Alpha 注意...
#### 六、注意事项 - 在设置远程服务器访问权限时,需要注意安全性和性能问题。 - 使用 OpenRowSet() 或链接服务器查询远程数据时,可能会因为网络延迟而影响性能。 - 对于复杂的跨服务器查询,建议优化查询语句,...
8. **其他注意事项**: - 检查表结构、索引、视图、触发器等其他数据库对象,确保它们能在MySQL中正确创建和工作。 - 数据类型兼容性和大小限制需要仔细检查,因为不同数据库系统有不同的限制。 - 考虑性能和并发...
4. 视图的限制与注意事项 - 不支持所有类型的DML操作,如`INSERT`、`UPDATE`和`DELETE`可能受到限制,取决于基础表和视图的定义。 - 视图无法包含`ORDER BY`和`LIMIT`子句,除非使用`WITH READ ONLY`选项创建。 -...
在Oracle中创建存储过程的CREATE OR REPLACE语句在MySQL中需要调整,赋值语句也有所改变。例如,Oracle的赋值操作符":"在MySQL中变为"="。 四、任务(Job)的移植 Oracle的Job对应MySQL的Event,用于实现定时任务。...
4. 使用视图的注意事项: - **权限管理**:创建视图时需要有`CREATE VIEW`权限,并确保对引用的表有读取权限。 - **命名规范**:视图的命名通常遵循`view_xxx`或`v_xxx`的格式,以便识别。 - **更新规则**:当...