oracle10g经典实战第4章 数据库的查询和视图

合集下载

oracle数据库中的表与视图

oracle数据库中的表与视图

oracle数据库中的表与视图Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。

对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。

表和视图Oracle中表是数据存储的基本结构。

ORACLE8引入了分区表和对象表,ORACLE8i 引入了临时表,使表的功能更强大。

视图是一个或多个表中数据的逻辑表达式。

本文我们将讨论怎样创建和管理简单的表和视图。

管理表表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。

用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。

例如:CREATE TABLE products( PROD_ID NUMBER(4),PROD_NAME VAECHAR2(20),STOCK_QTY NUMBER(5,3));这样我们就建立了一个名为products的表,关键词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。

在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。

在建立或更改表时,可以给表一个缺省值。

缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。

下列数据字典视图提供表和表的列的信息:. DBA_TABLES. DBA_ALL_TABLES. USER_TABLES. USER_ALL_TABLES. ALL_TABLES. ALL_ALL_TABLES. DBA_TAB_COLUMNS. USER_TAB_COLUMNS. ALL_TAB_COLUMNS表的命名规则表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。

表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。

第四章理论课数据库对象

第四章理论课数据库对象

《Oracle数据库应用》理论课数据库对象⏹本章技能目标◆使用同义词◆使用序列◆创建视图◆创建索引1.数据库对象Oracle 数据库对象又称模式对象。

数据库对象是逻辑结构的集合,最基本的数据库对象是表。

其他数据库对象包括:同义词,序列,视图,索引。

下面我们依次讲解这几个数据库对象的使用。

2.同义词同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,例如用户USER1要访问用户USER2的表EMP,必须使用USER2.EMP,那么USER1就可以使用同义词像访问自己的表一样引用USER2.EMP了。

同义词有以下用途:简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问为分布式数据库德远程对象提供了位置透明性同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。

但是同义词不能代替权限,在使用同义词之前确保用户已得到访问对象的权限。

可以通过同义词执行SELECT,INSERT,UPDA TE,DELETE,LOCK TABLE ,GRANT和REVOKE 等语句。

同义词只是表的一个别名,因此对它的操作都会影响到表。

同义词共有两种类型:公有同义词。

私有同义词。

2.1私有同义词和公有同义词2私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。

要在其它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM 系统权限.。

创建私有同义词语法如下:OR REPLACE 表示在同义词存在的情况下替换该同义词。

synonym_name 表示要创建的同义词的名称。

object_name 指定要为之创建同义词的对象的名称。

例1:假定两个用户模式:ACCP 和SCOTT ,SCOTT 用户拥有EMP表,ACCP 用户需要频繁引用EMP表,为了简化SQL语句,需要为ACCP 用户创建一个同义词。

oracle查询视图sql语句

oracle查询视图sql语句

Oracle查询视图SQL语句是一种将多个表格数据融合在一起的技术,它可以方便用户提取、更新和管理多个表格中的数据。

本文将介绍Oracle查询视图的用法,以及如何使用SQL语句来查询视图。

第一,Oracle查询视图是一种技术,它可以将多个表的数据融合成一个视图,使用户可以轻松提取、更新和管理多个表格中的数据。

它可以满足不同的需求,如汇总多个表格的数据、为报表提供数据等。

第二,Oracle查询视图使用SQL语句来查询视图,可以通过SELECT语句从视图中获取数据,也可以使用UPDATE语句更新视图中的数据。

下面是一个使用SELECT语句从视图中获取数据的实例:SELECT * FROM view_name;这条语句将从视图中检索所有数据。

第三,Oracle视图可以使用WHERE子句来筛选特定的行,以满足特定的需求。

例如,如果要检索只包含“Tom”的行,则可以使用SELECT * FROM view_name WHERE name=“Tom”;这条语句将从视图中检索名为“Tom”的行。

第四,Oracle视图可以使用ORDER BY子句对检索出来的行进行排序,以更好地满足用户需求。

例如,如果要对检索出来的行按照名字进行排序,可以使用SELECT * FROM view_name ORDER BY name;这条语句将以名字的顺序检索视图中的行。

第五,Oracle查询视图可以使用GROUP BY子句把多个行分组,以满足特定的需求。

例如,如果要把多个行按照年龄分组,可以使用SELECT * FROM view_name GROUP BY age;这条语句将多个行按照年龄分组。

总之,Oracle查询视图SQL语句可以使用SELECT、UPDATE、WHERE、ORDER BY和GROUP BY 等子句,从而方便用户提取、更新和管理多个表格中的数据。

第4章查询和视图0

第4章查询和视图0

记录有效性规则除了可在数据库表的“表设计器”
对话框中设置,也可在CREATE TABLE-SQL命令中通过
CHECK子句或在ALTER TABLE-SQL命令中通过SET
CHECK子句进行设置。在ALTER TABLE-SQL命令中通过
DROP CHECK可删除记录的有效性规则。
20
12:39
表的触发器
通过命令创建数据库表
如果数据库已被打开,则利用 CREATE TABLE-SQL命令创建的表,如 果不使用FREE关键字,则该表不是自 由表,而是属于当前数据库的数据库 表。
13
12:39
二、数据库表的字段扩展属性
14
12:39
字段显示属性
字段的格式(Format)
字段的格式用于指定字段显示时的格式,包括在浏览 窗口、表单或报表中显示时的大小写和样式等。
永久关系的创建
确定两张具有一对一或一对多关系的表
建立主表的主索引或候选索引
建立子表的主索引或候选索引(一对一关系)或建立 子表的普通索引(一对多关系)
在“数据库设计器”窗口中,将主表的主索引或候选 索引标识拖放到子表相应的索引标识上,即完成了永 久关系的设置
(如下图所示)
28
12:39
永久关系的创建(续)
值。在使用ALTER TABLE-SQL命令修改表结构时,
可通过SET CHECK子句、SET DEFAULT子句设置
字段的有效性规则(信息)、默认值;通过
DROP CHECK和DROP DEFAULT子句删除字段的有
效性规则(信息)、默认值。
18
12:39
三、数据库表的表的 “表设计器”对话框 中的“表”选项卡中 的“表名”文本框中 输入长表名。也可在 使用CREATE TABLESQL命令创建表时, 用NAME子句指定长表 名。

Oracle视图

Oracle视图

Oracle视图Oracle视图1:什么是视图 视图也被称为虚表,即虚拟的表,是⼀组数据的逻辑表⽰,其本质是对应⼀条select语句,结果集被赋予⼀个名字,即视图的名

字。视图本⾝并不包含任何数据,只包含映射到基表的⼀个查询语句,当基表数据发⽣变化时,视图数据也会随之变化。2:创建视图的⽅法 create [or replace] view view_name [alias] as subquery;

3:视图创建后可以像操作基表⼀样操作视图 语法中的subquery是select查询语句,对应的表被称为基表;

4:视图的种类 根据视图所对应的⼦查询分: 1:select语句是基于单表建⽴的,且不包含任何函数运算,表达式或分组函数,叫做简单视图,此视图是基表的⼦查询。 2:select语句是基于单表建⽴的,且包含函数,表达式,分组函数或group by ⼦句,叫做复杂视图。 3:select语句是基于多表建⽴的,叫做连接视图。

5:视图的作⽤ a:简化复杂查询 b:限制数据访问,对基表中的其他列起到限制和保护作⽤;

6:授权创建视图 创建是视图的DDL语句为,create view,⽤户必须有create view系统权限,才能创建视图。如果没有权限,创建视图会提

⽰:权限不⾜。 管理员可以通过DCL语句授予⽤户创建视图的权限,语句为:grant create view to tarena;

7:查询视图 查询视图和查询表的操作⼀样,此时视图的列明和创建视图时的列名⼀致,不⼀定是原基表列名。 select * from 视图名;

8:对视图进⾏insert操作 视图不包含任何数据,只是基表数据的逻辑映射。所以当对视图进⾏dml操作时,实际上是对基表数据的dml操作,对视图进⾏

dml操作的原则是: 1:简单视图能够执⾏dml操作,下列情况除外:在基表中定义了⾮空列,但是简单视图对应的select语句并没有包含这个

oracle查看视图的sql语句

oracle查看视图的sql语句

oracle查看视图的sql语句Oracle数据库是一种关系数据库管理系统,它是由美国Oracle 公司开发的。

由于其功能强大、可靠性高,因此广泛应用于企业信息管理和电子商务等领域。

在Oracle数据库中,视图是一种常用的数据库技术,能够在不改变基本表的情况下,将基本表的数据以不同的形式展示出来。

比如,通过创建视图,可以对表中的某一部分数据进行筛选,查看、更新或删除等操作;同时,也可以通过视图来实现数据权限控制,防止用户对某些敏感数据进行非法操作。

为了能够在Oracle数据库中查看视图,需要使用SQL语句进行查询。

在实际操作中,Oracle查看视图的SQL语句主要有两种,一种是查看某个特定视图的SQL语句;另一种是查看所有视图的SQL语句。

首先,查看某个特定视图的SQL语句主要使用的是SELECT语句,语句的格式如下:SELECT *FROM view_name;其中,view_name表示需要查看的视图名称,通过此SQL语句可以将视图中的所有数据返回给用户,用户可以根据需要选择性地查看视图中的数据。

其次,使用SELECT语句查看所有视图的SQL语句的格式如下: SELECT view_name FROM user_views;其中,user_views表示数据库中存储所有视图的系统表,通过此SQL语句可以查询出当前用户当前数据库中所有的视图名称,从而实现快速查看所有视图的目的。

另外,在使用SELECT语句进行查询时,还可以结合其他SQL语句,实现更多的功能。

如,可以添加WHERE子句,查询符合特定条件的视图;或者添加ORDER BY子句,按特定字段对视图进行排序等。

总之,Oracle查看视图的SQL语句主要有两种,一种是SELECT 语句查看某个特定视图;另一种是SELECT语句查看所有视图。

在实际操作中,还可以结合其他语句,实现更多的功能,从而实现对视图的更加精细化管理。

SQL Server2016实用教程 第4章 数据库的查询和视图


8.聚合函数
(1)SUM和AVG。 SUM和AVG分别用于求表达式中所有值项的总和与平均值,格式为:
SUM /AVG ( [ ALL | DISTINCT ] 表达式 ) 其中,“表达式”可以是常量、列、函数或表达式,其数据类型只能是int、smallint、
tinyint、bigint、decimal、numeric、float、real、money和smallmoney。 【例4.8】 求所有课程的总学分和选修101课程的学生的平均成绩。
1.选择所有列
执行结果如图4.1所示。
2.选择一个表中指定的列
可选择一个表中的部分列,各列名之间要以逗号分隔。 【例4.2】 查询xsb表中计算机专业学生的学号、姓名和总学分。 T-SQL命令如下, SELECT 学号, 姓名, 总学分 FROM xsb WHERE 专业 = '计算机'
3.定义列别名
第4章 数据库的查询和视图
——数据库的查询
数据库的查询
下面介绍SELECT语句,它是T-SQL的核心。语法主体格式如下:
SELECT <输出列> [ INTO 新表 ] [ FROM { <表源> } [ , ... ] ] [ WHERE <条件> ] [GROUP BY <分组条件> ] [ HAVING <分组统计条件>] [ ORDER BY <排序顺序>] [ FOR 子句] [ORVER 子句] [OPTION 子句] /*指定查询结果输出列*/ /*指定查询结果存入新表*/ /*指定查询源:表或视图*/ /*指定查询条件*/ /*指定查询结果分组条件*/ /*指定查询结果分组统计条件*/ /*指定查询结果排序顺序*/ /*指定查询结果 */ /*确定行集的分区和排序 */ /*指定的查询提示 */

常用查询Oracle的表,视图,存储过程,用户等SQL命令

常⽤查询Oracle的表,视图,存储过程,⽤户等SQL命令有时候需要导出某⽤户下的所有table、view、sequence、trigger等信息,下⾯的SQL可以将这些信息select出来:select * from user_tables;select * from user_views;select * from user_sequences;select * from user_triggers;查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables;1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,’LOG’)>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper(‘&table_name’); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&table_name’); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,’Y')>0;3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(‘&index_name’); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&index_name’);4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences;5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper(‘&view_name’);6、同义词 查看同义词的名称 SQL>select * from user_synonyms;7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name’); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper(‘&table_owner’) and c.table_name = upper(‘&table_name’) and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type=’FUNCTION’; SQL>select object_name,status from user_objects where object_type=’PROCEDURE’; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper(‘&plsql_name’);。

数据库管理系统数据查询与视图


4.1.1 创建查询
1.使用查询向导 使用查询向导可以快速、简捷地建立一个扩展 名为.qpr的查询文件。步骤:
⑴ 单击主菜单“文件”/→“新建”命令或工具栏上的 “新建”按钮→在“新建”对话框中选择“查询”, 单击“向导”→在“向导选取”对话框中选择“查询 向导”,单击“确定”按钮。 ⑵ “步骤1-字段选取”对话框:选取表中字段到选 定字段列表框中,单击“Next”。 ⑶ 如果选定字段只来自一个表或视图,直接进入“步 骤3-筛选记录”;如果选定的字段来自不同的表或 视图 ,则进入“步骤2-为表建立关系” 。
⑷ 在“查询设计器”中设置各选项卡:
“Fields”(字段)选项卡:指定查询所包含的字段或 表达式。 “Join”(联接)选项卡:建立、编辑或修改两个表 之间的连接关系 。 “Filter”(筛选)选项卡:设置记录的筛选条件。 “Order By”(排序依据)选项卡:设置排序字段和 排序方法。 “Group By”(分组依据)选项卡:设置分组字段。 “Miscellaneous”(杂项)选项卡:设置是否有重复 记录等。
4.2.4 参数化视图
参数化视图是一种通用视图,系统提供在运行 视图时传递参数值的功能,从而避免每查询一部分 记录就要单独创建一个视图 。
⑴ 在“视图设计器”的“Filter”(筛选依据)选项卡的 “Example”(实例)文本框中输入“?<参数>”。 ⑵ 对视图参数进一步定义:单击主菜单“视图参数”命 令,在“视图参数”对话框中定义参数名和类型。
2.使用“视图设计器” 打开数据库,用下面方法之一打开“视图设计 器”: 单击主菜单“文件”/“新建”命令,在“新建” 对话框中选择“视图”,单击“新建”按钮。 在“数据库设计器”窗口中,单击鼠标右键,快 捷菜单中选择“新建本地视图”命令,或单击主菜 单“数据库”下拉菜单中 “新建本地视图”命令, 打开“新建本地视图”对话框,单击“新建视图” 按钮。

数据库__VFP6第4章查询与视图


图4-15 查询设计器界面
(3)查询参数的设置 第一节 查询 ①确定输出的字段。在图4-15中的“可用字段”列表框中显示了上部窗 口中表的所有字段名称,通过“添加”或“全部添加”将“可用字段” 中所选择的字段移到“选定字段”列表框中。在本例中,B_xsxx表中除 szbj、xsjg、xspy等三个字段不选外其余全选,B_bjxx表中选择bjmc, B_dqxx表中选择dqmc ②设置联接条件 ③查询结果的排序。如果需要对查询的结果按一定的顺序排列,则可以 选择“排序依据”选项卡,以决定排序的依据。该选项卡如图4-16所示 。
第一节
图4-2 查询向导步骤之2 查询 查询向导步骤之2
第一节 查询 (4)步骤2:关联表
通常查询向导会自动查找两个表之间相匹配的字段 并显示在第二步的两个列表框中, 并显示在第二步的两个列表框中 , 如果这种关系正是 所需要的, 可以直接单击“ 添加” 按钮。 所需要的 , 可以直接单击 “ 添加 ” 按钮 。 如果在表之 间没有相匹配的字段, 就需要手工建立, 间没有相匹配的字段 , 就需要手工建立 , 只要分别在 两个下拉列表框中选取相应的字段即可。 两个下拉列表框中选取相应的字段即可。
图4-16 排序依据选项卡
第一节 查询 ④查询条件的设置。在“筛选”选项卡中可以设定查询的
条件,例如可以查询所有男同学的情况。“筛选”选项卡 如图4-17。
图4-17 筛选选项卡
⑤其他查询参数的设置 查询参数主要包括以上四项,其 他还有“分组依据”和“杂项”两个选项。
(4)查询结果的去向 第一节 查询
在查询设计的过程中,为了查看查询的结果, 可以随时单击“运行”按钮,VFP就会在屏幕上显 示查询的结果记录。在默认情况下,查询的结果直 接输出到屏幕上而且是不保存的。如果想改变查询 结果的去向,可以单击“查询设计器”工具栏中的 “查询去向”按钮,在图4-18所示的查询去向对话 框中选择不同的查询去向。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档