oracle数据库中的表与视图【VIP专享】
Oracle常用数据字典表及动态视图

Oracle常用数据字典表查看当前用户的缺省表空间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;查看用户下所有的表的列属性SQL>select * from USER_TAB_COLUMNS where table_name=:table_Name;显示用户信息(所属表空间)select default_tablespace,temporary_tablespacefrom dba_users where username='GAME';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';显示特权用户select * from v$pwfile_users;显示用户信息(所属表空间)select default_tablespace,temporary_tablespacefrom dba_users where username='GAME';显示用户的PROFILEselect profile from dba_users where username='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_segmentswhere 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_segmentswhere 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_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder 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'); 常用的数据字典:dba_data_files:通常用来查询关于数据库文件的信息dba_db_links:包括数据库中的所有数据库链路,也就是databaselinks。
视图和数据表之间的主要区别是什么?使用视图有哪些优点?

主要区别:
视图(View)和数据表(Table)是数据库中的两个不同的概念。
1. **数据表**是数据库中的一个实体,它是由行和列组成的二维数据结构,用于存储和组织数据。
数据表包含实际的数据记录,每一行代表一个实体,每一列代表一个属性。
2. **视图**是一个虚拟的表,它是基于一个或多个数据表的查询结果集。
视图并不实际存储数据,而是通过基础数据表的定义和查询条件动态生成。
视图可以根据需要提供对数据表的不同视角或子集的访问。
优点:
使用视图具有以下几个优点:
1. **数据安全性**:视图可以限制对数据的访问权限。
通过只向用户提供需要的数据,可以保护敏感数据的安全性,并确保用户只能访问他们具有权限的数据。
2. **简化数据访问**:视图可以为用户隐藏数据表的复杂性和结构细节,提供更简单和直观的数据访问接口。
用户可以
使用视图而不必了解底层表的结构和关系。
3. **数据组织和抽象**:视图可以用来组织和抽象数据,从而使用户能够更轻松地进行数据分析、查询和报告生成。
视图可以对数据进行过滤、排序、计算和聚合操作,从而提供用户更方便的数据处理方式。
4. **逻辑数据独立性**:使用视图可以实现逻辑数据独立性,即在不改变应用程序代码的情况下,可以调整底层数据表的结构和关系。
这使得应用程序可以对视图进行操作,而不必关心底层数据表的变化。
总之,视图在数据库中是一种强大的工具,它提供了数据安全性、数据组织和抽象、简化数据访问以及逻辑数据独立性等优点。
通过使用视图,可以提高数据库的灵活性和可维护性,同时简化用户对数据的操作和访问。
oracleEBS常用表,视图,会计分录,mtl_serial_numbers,总账

attribute7 --额外属性
)
VALUES (1,
'CREATE',
'*********',
'*********************',
***,
1,
'FG',
'Inactive',
'Tai',
''
);
2.通过API导入帐户别名接收
2.运行导入物料,选择相应的参数(处理集)
接口表导入示范:
INSERT INTO mtl_system_items_interface
(process_flag, --1为待处理,2为分配完成,3为异常,4为验证通过导入异常,5为导入过
程中,6为导入成功
transaction_type, --新分配物料则为CREATE,更新物料状态则为UPDATE
--记录接收的事务所产生的批次信息表
5、mtl_transaction_lot_numbers
--transaction_id=mtl_material_transactions.transaction_id
--lot_number=mtl_onhand_quantities.lot_number
item_number, --物料编码
description, --物料描述
organization_id, --需分配到的组织
set_process_id, --处理集,自己定义,届时在后续的导入物料的请求中作为参数
item_type, --物料类型
Oracle EBS常用表和视图

fnd_user系统用户表fnd_application应用信息表FND_PROFILE_OPTIONS_VL 系统配置文件fnd_menus 菜单fnd_menu_entries_tlFND_NEW_MESSAGES消息表FND_FORM表单表FND_CONCURRENT_PROGRAMS_VL 并发程序视图FND_CONCURRENT_PROGRAMS_TLFND_CONCURRENT_PROGRAMSFND_DESCR_FLEX_COL_USAGE_VLFND_DESCR_FLEX_COL_USAGE_TLFND_DESCR_FLEX_COLUMN_USAGESFND_EXECUTABLES_FORM_V 可执行并发程序视图FND_EXECUTABLES_TLFND_EXECUTABLESFND_DESCRIPTIVE_FLEXSFND_CONC_REQ_SUMMARY_V 并发请求视图FND_CONCURRENT_REQUESTSFND_RESPONSIBILITY职责表FND_RESPONSIBILITY_VL 职责FND_USER_RESP_GROUPS 用户职责fnd_flex_value_sets值集表FND_FLEX_VALUESFND_IREP_ALL_INTERFACES 接口表FND_IREP_CLASSESFnd_Irep_Classes_Tlfnd_territories_vl 国家视图fnd_log_messages 日志表fnd_form_functions 功能FND_DOCUMENT_SEQUENCES 单据序列FND_DOC_SEQUENCE_ASSIGNMENTS 序列分配fnd_id_flexs 关键弹性域定义表FND_ID_FLEX_STRUCTURES 弹性域结构表FND_ID_FLEX_SEGMENTS 弹性域段表fnd_descriptive_flexs 描述性弹性域属性表FND_DESCR_FLEX_CONTEXTS 弹性域列类别表FND_DESCR_FLEX_COLUMN_USAGES 弹性域列类别属性表FND_FLEX_VALUE_SETS 值集表FND_FLEX_VALUES 值表Fnd_Flex_Values_Tl 值描述表FND_FLEX_VALUE_NORM_HIERARCHY 值层次关系表FND_FORM_CUSTOM_RULES 个性化视图fnd_profile_options_tl 配置文件------------------------------------------------------------------------------------------------------PER_ALL_PEOPLE_F员工表per_people_f员工视图MTL_PLANNERS计划员表po_buyers_all_v采购员视图org_organization_definitions 库存组织视图hr_operating_units OU视图cux_wip_location_sign 位置号表HCM_PRODUCTION_LINE 生产线车间表user_objectsALL_SOURCEALL_PROCEDURES 存储过程wf_local_user_rolesad_bugs 补丁ad_applied_patchesXDO_TEMPLATES_B 模板XDO_TEMPLATES_TL------------------------------------------------------------------------------------------------po_vendors供应商信息表po_vendor_sites_all供应商地点信息视图AP_SUPPLIER_SITES_ALL 供应商地点表po_vendor_contacts------------------------------------------------------------------------------------------------------------------------------------------------wip_entities作业名信息表wip_discrete_jobs离散作业表wip_requirement_operations作业名物料需求发放表WIP_ACCOUNTING_CLASSES 工单分类表-------------------------------------------------------------------------------------------------------------------hr_locations交货地点hr_all_organization_unitsrcv_transactions_interface接收事务接口表po_interface_errors 接口错误信息表(pie.interface_line_id = rti.interface_transaction_id)po_requisitions_interface_all 请购接口表po_requisition_headers_all 请购单头信息po_requisition_lines_all请购单行信息po_req_distributions_all请购单分配行po_headers_all 采购订单头表po_lines_all 采购订单行表po_line_locations_all采购发运表po_distributions_all分配po_releases_all发放rcv_shipment_headers接收发送头表rcv_shipment_lines接收发送行表rcv_transactions接收交易表rcv_receiving_sub_ledger暂记应付表mtl_material_transactions物料事务处理mtl_transaction_types物料事务处理类型RCV_SUPPLYpo_buyers_all_v 采购员视图PO_AGENTS采购员表------------------------------------------------------------------------------------------------------------------------------------------------bom_bill_of_materials物料清单表bom_inventory_components物料清单构成表bom_departments 部门表bom_operational_routings 工艺路线头表BOM_OPERATION_SEQUENCES 工艺路线行表bom_operation_resources资源表------------------------------------------------------------------------------------------------------------------------------------------MTL_CATEGORY_SET_VALID_CATS_V 物料类别视图mtl_categories_b_kfv 物料类别视图(不含物料类别集)mtl_category_set_valid_cats 物料类别集表mtl_item_categories物料与类别对应表mtl_categories_b物料类别表mtl_system_items_b物料主表MTL_SYSTEM_ITEMS_TLmtl_item_sub_defaults默认接收子库mtl_secondary_inventories子库表mtl_onhand_quantities库存数据表MTL_ONHAND_QUANTITIES_DETAIL 库存现有量表MTL_SECONDARY_INVENTORIES 仓库表mtl_item_locations 项目货位表mtl_material_transactions 出入库记录表mtl_transaction_types事务处理类型表MTL_TXN_REQUEST_HEADERS 物料搬运单头表MTL_TXN_REQUEST_LINES物料搬运单行表mtl_supply 供应表mtl_demand 需求表mtl_parameters 组织参数cst_item_costs物料成本cst_cost_types成本类型MTL_SERIAL_NUMBERS序列号MTL_MATERIAL_STATUSES_TL序列号状态MFG_LOOKUPS序列号状态(SERIAL_NUM_STATUS)------------------------------------------------------------------------------------------------------------------------hr_organization_units 组织及库存组织视图hz_parties 客户表hz_relationships客户关系表HZ_PARTY_SITES 客户地点表HZ_LOCATIONS地点表hz_cust_accounts 客户账户表HZ_CUST_ACCT_SITES_ALL 客户地点账户表HZ_CUST_SITE_USES_ALL 客户地点业务目的表HZ_CUSTOMER_PROFILES 账户配置文件表HZ_CUST_PROFILE_AMTS 账户配置文件金额表HZ_CONTACT_POINTS联系方式表HZ_CODE_ASSIGNMENTS 客户的税表HZ_CUSTOMER_PROFILES 滞纳费用表---------------------------------------------------------------------------------------------wsh_trips 发运记录表wsh_trip_stops 发运停靠站记录表wsh_new_deliveries 交付记录wsh_delivery_legswsh_delivery_details 交付表wsh_delivery_assignments----------------------------------------------------------------------------------------mrp_sourcing_rules来源补充规则mrp_sr_receipt_orgmrp_sr_source_orgmrp_sr_assignmentsMRP_ASSIGNMENT_SETS来源规则分配集表po_approved_supplier_list批准的供应商列表PO_ASL_ATTRIBUTES批准的供应商列表属性-------------------------------------------------------------------------------------------------------------------------------------------------ENG_CHANGE_STATUSES_VL E CO状态pjm_seiban_numbers内外销标识表pa_projects_allmrp_designatorsDRP名称mrp_forecast_designators预测名称表mrp_forecast_dates预测表mrp_forecast_updates预测更改mrp_gross_requirements毛需求mrp_item_purchase_ordersMRP采购计划mrp_item_wip_entitiesMRP项目离散作业mrp_plans计划表mrp_recommendations计划建议mrp_workbench_bucket_datesMTL_SUPPLY_DEMAND_TEMP 物料供应需求-------------------------------------------------------------------------------------------------------------------------------------------MTL_TRANSACTION_FLOW_HEADERS公司间事务处理流mtl_transaction_flow_lines_v公司间事务处理流节点MTL_INTERCOMPANY_PARAMETERS_V 公司间关系QP_LIST_HEADERS_B价目表QP_LIST_HEADERS_TL价目表Qp_List_LinesQp_Pricing_Attributes--------------------------------------------------------------------------------------------------------------------------------------------------MTL_UNITS_OF_MEASURE单位MTL_UNITS_OF_MEASURE_TLMTL_UOM_CLASSES单位分类mtl_uom_classes_tlMTL_UOM_CONVERSIONS单位换算标准MTL_UOM_CLASS_CONVERSIONS单位换算分类间--------------------------------------------------------------------------------------------------------------------------------------------------AP_INVOICES_ALL 发票头AP_INVOICE_LINES_ALL 发票行xla_ae_headers 会计分录头xla_ae_lines 会计分录行--------------------------------------------------------------------------------------------------------------oe_system_parameters_allOM 系统参数ak_web_user_sec_attr_valuesORG_ACCT_PERIODS库存会计期间GL_PERIODS总账会计期间ZX_RATES_B税率代码ZX_PARTY_TAX_PROFILE供应商的税的配置文件xla_event_types_tlxla_event_classes_tl-------------------------------------------------------------------------------------------------------------------ap_suppliers 供应商头信息ap_supplier_sites_all 供应商地点信息hz_code_assignments 供应商税率zx_party_tax_profile 供应商税信息iby_ext_bank_accounts 供应商银行账号iby_ext_bank_branches_v 供应商银行支行iby_ext_banks_v 供应商银行iby_account_owners 银行账户的拥有者iby_pmt_instr_uses_all 银行账户所在的地点ap_supplier_contacts 供应商联系人hz_contact_points 供应商联系人电话等信息pos_supp_prof_ext_b 供应商地点附加信息iby_external_payees_all 供应商付款信息。
oracle 表对象索引、视图

1.创建表结构(员工医疗保险系统表)企业表:医院表:医保卡表:员工表:就诊表:消费表:医保表:2.查看表结构(1) 利用OEM查看员工医疗保险系统所有表的字段信息和约束信息。
(2) 利用SQL*Plus或iSQL*Plus从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表的字段信息。
(3) 利用SQL*Plus或iSQL*Plus从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表的约束信息。
SELECT * FROM DBA_TABLES WHERE TABLE_NAME= 'STAFF';3.修改表结构(1) 利用SQL*Plus或iSQL*Plus将表“staff_sql”重新命名为“staff_sql0”。
Alter table staff rename to staff_sql0;(2) 利用企业管理器为“staff_sql0”表添加“age INT”字段,利用DESC命令查看“staff_sql0”表的字段信息。
(3) 利用SQL*Plus或iSQL*Plus为“staff_sql0”表添加“salary NUMBER(5,2)”、“salary_add NUMBER(3,1)”两个字段,利用DESC命令查看“staff_sql0”表的字段信息。
(4) 利用SQL*Plus或iSQL*Plus向“staff_sql0”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
(5) 利用SQL*Plus或iSQL*Plus删除“staff_sql0”表上“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
(6) 利用企业管理器从“staff_sql0”表删除“age”字段,利用DESC命令查看“staff_sql0”表的字段信息。
精品课件-Oracle数据库SQL和PL SQL实例-第4章 表和视图

第4章 表和视图
【训练1】 创建图书和出版社表。 步骤1:创建出版社表,输入并执行以下命令: CREATE TABLE 出版社( 编号 VARCHAR2(2), 出版社名称 VARCHAR2(30), 地址 VARCHAR2(30), 联系电话 VARCHAR2(20) ); 执行结果: 表已创建。
图
书
编
号
VARCHAR2(5)
图
书
名
称
VARCHAR2(30)
出版社编来自号VARCHAR2(2)
作
者
VARCHAR2(10)
第4章 表和视图
说明:在以上训练中,列名和数据类型之间用空格分隔, 数据类型后的括号中为宽度(日期类型除外)。对于有小数的数 字型,前一个参数为总宽度,后一个参数为小数位。用逗号分 隔各列定义,但最后一列定义后不要加逗号。
2.通过子查询创建表 如果要创建一个同已有的表结构相同或部分相同的表,可 以采用以下的语法: CREATE TABLE 表名(列名...) AS SQL查询语句; 该语法既可以复制表的结构,也可以复制表的内容,并可 以为新表命名新的列名。新的列名在表名后的括号中给出,如 果省略将采用原来表的列名。复制的内容由查询语句的WHERE 条件决定。
第4章 表和视图 表4-1 图书表
图书编号
图书名称
A0001 计算机原理
A0002 C 语言程序设计
A0003 汇编语言程序设计
出版社编号 作者
Oracle中常用表和视图
Oracle中常用表和视图2.分类视图有三种实例:user_*(当前用户所拥有对象的有关信息),all_*(当前用户可访问对象的信息),dba_*(数据库中所有对象的信息)。
查询数据字典数据时使用大写字母。
可用upper\lower函数转换。
一下以user_*实例举例(如没有user_*,则依次以all_*、dba_*举例)。
3.类别3.1 关系群集、表、视图群集 user_clusters 群集user_cluster_hash_expressions 群集使用的群集散列函数user_clu_columns 表列到群集列的映射(无all_*)表和视图 user_tables 关系表user_all_tables 表(user_all_tables是user_tables与user_object_tables的集合)user_tab_columns 表列user_tab_comments 表的注释user_col_comments 表和视图的列的注释user_refs 对象类型列的属性和REF列user_partial_drop_tabs 被部分放弃的表user_unused_col_tabs 带有未使用列的表user_updatable_columns 联合视图中更新的列user_views 视图3.2 集合、LOB、对象类型和对象表集合 user_coll_types 集合类型user_varrays varray数组类型user_nested_tables 嵌套表大型对象 user_lobs LOB对象表类型user_types 对象类型user_type_attrs 对象类型的属性user_type_methods 对象类型的方法user_object_tables 对象表3.3 oracle视图设备环境 all_conext(all_context) 设备环境维数 user_dimensions 维数user_dim_hierarchies 维数分层user_dim_levels 维数的级别user_dim_level_key 维数级别的列user_dim_attributes 维数的相关列和维数级之间的关系user_dim_child_of 维数级别之间的关系user_dim_join_key 维数间的联合操作符 user_operators 操作符的基本信息user_opancillary 操作符的辅助信息user_oparguments 操作符的参数user_opbindings 操作符的绑定功能摘要 user_outlines 摘要user_outline_hints 摘要的提示策略 user_policies 表和视图的策略3.4 其他数据库对象数据库任务 user_jobs 数据库任务数据库连接 user_db_links 数据库连接目录 all_directories 目录库 user_libraries 库(字典)序列 user_sequences 序列替代名 user_synonyms 替代名(同义词)3.5 分区和子分区user_part_tables 已分区表user_tab_partitions 表的分区user_tab_subpartitions 表的子分区user_part_indexes 已分区索引user_ind_partitions 索引分区user_ind_subpartitions 索引子分区user_part_lobs 表中的LOB数据分区user_lob_partitions LOB分区user_lob_subpartitions LOB子分区user_part_key_columns 已分区对象的分区关键字列user_subpart_key_columns 使用组合范围/散列法分区的表的子分区关键字列user_part_col_statistics 表分区统计和其他信息user_subpart_col_statistics 表子分区的列统计user_part_histograms 表的分区的直方图user_subpart_histograms 表的子分区的直方图3.6 索引user_indexes 索引user_ind_columns 索引列user_ind_expressions 索引的函数索引表达式user_indextypes 索引类型user_indextype_operators 索引类型支持的操作符3.7 实现视图、摘要、快照实现视图 user_mviews 物化视图user_mview_logs 物化视图日志user_mview_comments 物化视图注释user_mview_refresh_times 物化视图刷新时间user_mview_analysis 物化视图的附加信息user_mview_detail_relations 物化视图FROM列表的详细关系user_mview_keys 物化视图列(或者 GROUP BY子句中的列)user_mview_joins 物化视图WHERE子句中各列间的联合user_mview_aggregates 物化视图选择列表中的成组功能快照 user_refresh 快照刷新组user_refresh_children 快照刷新组的对象user_snapshots 快照user_snapshot_logs 快照日志user_snapshot_refresh_time 快照的刷新次数user_registered_snapshots 已注册快照all_refresh_dependencies 快照的从属或容器表(只要all 一种)摘要 user_summaries 摘要user_summary_detail_tables 摘要FROM列表的详细关系user_summary_keys 摘要列(或者 GROUP BY子句中的列)user_summary_joins 摘要WHERE子句中各列间的联合user_summary_aggregates 摘要选择列表中的成组功能3.8 子程序、方法、触发器子程序user_procedures 子程序名(包括过程、函数、包)user_arguments 子程序参数(包括过程、函数、包)方法 user_method_params 对象类型方法的参数user_method_results 对象类型方法的返回值触发器 user_triggers 触发器user_trigger_cols 触发器的列3.9 源代码和编译错误源代码user_source 包,包体,函数,过程,对象类型,对象类型体的源代码编译错误user_errors 视图和包,包体,函数,过程的编译错误3.10 相关和限制相关 user_dependencies 对象之间的相关(引用)限制 user_constraints 表的限制(约束)user_cons_columns 约束的列user_cons_obj_columns3.11 统计和审计统计 user_ustats 对象的统计user_tab_col_statistics 表列的统计user_tab_histograms 表和视图的直方图user_associations 数据库对象的用户自定义统计审计 all_def_audit_opts 对象的默认审计选项audit_actions 审计跟踪类型码的说明3.12 权限和授权系统权限 user_sys_privs 用户系统权限表权限user_tab_privs 授予作为拥有者、授权者、权限受让者对象的权限user_tab_privs_made 授予当前用户对象的权限all_tab_privs_recd 授予作为权限受让者的用户对象的权限列权限 user_col_privs 授予作为拥有者、授权者、或受让者的用户的可授访问表或视图列的权限user_col_privs_made 授予当前用户表或视图列的权限user_col_privs_recd 授予作为权限受让者用户表或视图列权限4.属性表(视图)的属性(列)信息查看sql如下(以视图user_coll_types举例):select lower(column_name) column_name,nullable,decode(data_type,'VARCHAR2',data_type ||'('||char_length||')',data_type) data_typefrom dba_tab_columnswhere lower(table_name)='user_coll_types' order by column_id;--》调整类型select lower(column_name) column_name,nullable,data_type||'('||data_length||')' data_type from dba_tab_columnswhere lower(table_name)='user_coll_types' order by column_id;4.1 集合、LOB、对象类型和对象表1.集合user_coll_types 集合类型user_varrays varray数组类型user_nested_tables 嵌套表user_coll_types列是否为空类型说明type_name N VARCHAR2(30) 集合名称coll_type N VARCHAR2(30) 集合类型,可以是表或可变数组upper_bound Y NUMBER 数组类型元素的最大上限elem_type_mod Y VARCHAR2(7) 元素类型修改符(如REF)elem_type_owner Y VARCHAR2(30) 元素类型的拥有者(只在与集合自身的拥有者不同时有效)elem_type_name Y VARCHAR2(30) 元素类型的名称length Y NUMBER 如果元素类型是CHAR或VARCHAR2,则为其长度precision Y NUMBER 如果元素是NUMBER类型,则为精度scale Y NUMBER 如果元素是NUMBER类型,则为比例character_set_name Y VARCHAR2(44) 在说明了CHARCS或NCHARCS时为字符集名称。
数据库表和视图区别理解
数据库表和视图区别理解
⼀,表
1>,表是以每秒⾁眼看不见的速度刷新的,每次插⼊数据,修改数据,检索数据都是,刷新表状态的,否则你看到的就是不准确的数据
2>,表是⽤来增删改的,已经不是⽤来查的了,除⾮你的访问密度⼩
⼆,视图
1>,视图和表的机制完全不同,视图是被动更新,只有删除,修改,插⼊的时候才刷新,⽽且不是针对表,是它⾃⼰copy了数据,在内存给你看
2>,视图对内存的要求⼤,但是换来的是读写分离,避免⾼并发的死锁问题
3>,合理的运⽤视图,可以把数据库的负担降低很多,⼀般情况下是⼤量的查询造成的死锁,要解决锁,就需要转移查询的主体
4>,创建视图也有个忌讳,不要把内容很⼤的字段放进去⽐如⽂章内容,这样会消耗你很多内存空间,⽽且查的慢,这些部分只能是分拆成查视图和查表了。
oracle系统表和视图说明
1. desc user_tables; 2. select table_name from user_tables; 3. select * from user_tables;
当前锁住的对象 静态数据字典:这类数据字典主要是由表和视图组成 数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。 静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。
1. user_*
该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
注意:DBA_OBJECTS、ALL_OBJECTS 和 USER_OBJECTS 显示了模式对象的信息,包括同义词。 索引 DBA_INDEXS 、 ALL_INDEXS 、 USER_INDEXS 、 DBA_IND_COLUMNS 、 ALL_IND_COLUMNS 和 USER_IND_COLUMNS。 用户 DBA_USERS。 角色 DBA_ROLES。 表空间定额 DBA_TS_QUOTAS。 配置 Oracle 表 DBA_PROFILES。 表空间 DBA_TABLESPACES。 数据文件 DBA_DATA_FILES。 段 DBA_SEGMENTS、USER_SEGMENT。 回滚段 DBA_ROLLBACK_SEGS、V$ROLLNAME、V$ROLLSTAT
对于 dba_开头的需要管理员权限, 查询表空间的信息(当前用户必须拥有 DBA 角色)。
1. select * from dba_data_files
Oracle数据库的视图
Oracle数据库的视图使⽤视图的优点:1.简化数据操作:视图可以简化⽤户处理数据的⽅式。
2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。
3.视图提供了⼀个简单⽽有效的安全机制,可以定制不同⽤户对数据的访问权限。
4.提供向后兼容性:视图使⽤户能够在表的架构更改时为表创建向后兼容接⼝。
创建或修改视图语法CREATE [OR REPLACE] [FORCE] VIEW view_nameAS subquery[WITH CHECK OPTION ][WITH READ ONLY]OR REPLACE :若所创建的试图已经存在,ORACLE ⾃动重建该视图;FORCE :不管基表是否存在 ORACLE 都会⾃动创建该视图;subquery :⼀条完整的 SELECT 语句,可以在该语句中定义别名;WITH CHECK OPTION :插⼊或修改的数据⾏必须满⾜视图定义的约束;WITH READ ONLY :该视图上不能进⾏任何 DML 操作。
删除视图语法DROP VIEW view_name键保留表是理解连接视图修改限制的⼀个基本概念。
该表的主键列全部显⽰在视图中,并且它们的值在视图中都是唯⼀且⾮空的。
也就是说,表的键值在⼀个连接视图中也是键值,那么就称这个表为键保留表。
物化视图:创建物化视图语法、CREATE METERIALIZED VIEW view_name[BUILD IMMEDIATE | BUILD DEFERRED ]REFRESH [FAST|COMPLETE|FORCE][ ON [COMMIT |DEMAND ] | START WITH (start_time) NEXT(next_time) ] ASsubqueryBUILD IMMEDIATE 是在创建物化视图的时候就⽣成数据BUILD DEFERRED 则在创建时不⽣成数据,以后根据需要再⽣成数据。
默认为 BUILD IMMEDIATE。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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个字符串。
表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。
从其它表中建立表 可以使用查询从基于一个或多个表中建立表,表的列的数据类型和大小有查询结果决定。
建立这种形式的表的查询可以选择其他表中所有的列或者只选择部分列。
在CREATETABLE语句中使用关键字AS,例如:SQL>CREATE TABLE emp AS SELECT * FROM employeeTABLE CREATEDSQL> CREATE TABLE Y AS SELECT * FROM X WHERE no=2 需要注意的是如果查询涉及LONG数据类型,那么CREATE TABLE....AS SELECT....将不会工作。
更改表定义 在建立表后,有时候我们可能需要修改表,比如更改列的定义,更改缺省值,增加新列,删除列等等。
ORACLE使用ALTER TABLE语句来更改表的定义 1、增加列 语法:ALTER TABLE [schema.] table_name ADD column_definition 例:ALTER TABLE orders ADD order_date DATE;TABLE ALTER 对于已经存在的数据行,新列的值将是NULL. 2、更改列 语法:ALTER TABLE [schema.] table_name MODIFY column_name new_attributes; 例:ALTER TABLE orders MODITY (quantity number(10,3),status varchar2(15)); 这个例子中我们修改了表orders,将STATUS列的长度增加到15,将QUANTITY列减小到10,3; 修改列的规则如下: . 可以增加字符串数据类型的列的长度,数字数据类型列的精度。
. 减少列的长度时,该列应该不包含任何值,所有数据行都为NULL. . 改变数据类型时,该列的值必须是NULL. . 对于十进制数字,可以增加或减少但不能降低他的精度。
3、删除数据列 优化ORACLE数据库,唯一的方法是删除列,重新建立数据库。
在ORACLE8i中有很多方法删除列,你可以删除未用数据列或者可以标示该列为未用数据列然后删除。
删除数据列的语法是:ALTER TABLE [schema.] table_name DROP {COLUM column_names |(column_names)}[CASCADE CONSTRAINS] 要注意的是在删除列时关于该列的索引和完整性约束也同时删除。
注意关键字CASCADE CONSTRAINS,如果删除的列是多列约束的一部分,那么这个约束条件相对于其他列也同时删除。
如果用户担心在大型数据库中删除列要花太多时间,可以先将他们标记为未用数据列,标记未用数据列的语法如下:ALTER TABLE [schema.] table_name SET UNUSED {COLUM column_names |(column_names)}[CASCADE CONSTRAINS] 这个语句将一个或多个数据列标记为未用数据列,但并不删除数据列中的数据,也不释放占用的磁盘空间。
但是,未用数据列在视图和数据字典中并不显示,并且该数据列的名称将被删除,新的数据列可以使用这个名称。
基于该数据列的索引、约束,统计等都将被删除。
删除未用数据列的语句是:ALTER TABLE [schema.] table_name DROP {UNUSED COLUM | COLUMN CONTINUE}删除表和更改表名 删除表非常简单,但它是一个不可逆转的行为。
语法:DROP TABLE [schema.] table_name [CASCADE CONSTRAINTS] 删除表后,表上的索引、触发器、权限、完整性约束也同时删除。
ORACLE不能删除视图,或其他程序单元,但oracle将标示他们无效。
如果删除的表涉及引用主键或唯一关键字的完整性约束时,那么DROP TABLE语句就必须包含CASCADE CONSTRAINTS子串。
更改表名 RENAME命令用于给表和其他数据库对象改名。
ORACLE系统自动将基于旧表的完整性约束、索引、权限转移到新表中。
ORACLE同时使所有基于旧表的数据库对象,比如视图、程序、函数等,为不合法。
语法:RENAME old_name TO new_name; 例:SQL> RENAME orders TO purchase_orders;TABLE RENAMED 截短表 TRUNCATE命令与DROP命令相似,但他不是删除整个数据表,所以索引、完整性约束、触发器、权限等都不会被删除。
缺省情况下将释放部分表和视图空间,如果用户不希望释放表空间,TRUNCATE语句中要包含REUSE STORAGE子串。
TRUNCATE命令语法如下:TRUNCATE {TABLE|CLUSTER} [schema.] name {DROP|REUSE STORAGE} 例:SQL> TRUNCATE TABLE t1;TABLE truncate. 管理视图 视图是一个或多个表中的数据的简化描述,用户可以将视图看成一个存储查询(stored query)或一个虚拟表(virtual table).查询仅仅存储在oracle数据字典中,实际的数据没有存放在任何其它地方,所以建立视图不用消耗其他的空间。
视图也可以隐藏复杂查询,比如多表查询,但用户只能看见视图。
视图可以有与他所基于表的列名不同的列名。
用户可以建立限制其他用户访问的视图。
建立视图 CREATE VIEW命令创建视图,定义视图的查询可以建立在一个或多个表,或其他视图上。
查询不能有FOR UPDATE子串,在早期的ORACLE8i版本中不支持ORDER BY 子串,现在的版本中CREATE VIEW可以拥有ORDER BY子串。
例:SQL> CREATE VIEW TOP_EMP ASSELECT empno EMPLOYEE_ID,ename EMPLOYEE_NAME,salaryFROM empWHERE salary >2000 用户可以在创建视图的同时更改列名,方法是在视图名后立即加上要命名的列名。
重新定义视图需要包含OR REPLACE子串。
SQL> CREATE VIEW TOP_EMP(EMPLOYEE_ID,EMPLOYEE_NAME,SALARY) ASSELECT empno ,ename ,salaryFROM empWHERE salary >2000 如果在创建的视图包含错误在正常情况下,视图将不会被创建。
但如果你需要创建一个带错误的视图必须在CREATE VIEW语句中带上FORCE选项。
如:CREATE FORCE VIEW ORDER_STATUS ASSELECT * FROM PURCHASE_ORDERSWHERE STATUS='APPPOVE';SQL>/warning :View create with compilation errors 这样将创建了一个名为ORDER_STATUS的视图,但这样的视图的状态是不合法的,如果以后状态发生变化则可以重新编译,其状态也变成合法的。
从视图中获得数据 从视图中获得数据与从表中获得数据基本一样,用户可以在连接和子查询中使用视图,也可以使用SQL函数,以及所有SELECT语句的字串。
插入、更新、删除数据 用户在一定的限制条件下可以通过视图更新、插入、删除数据。
如果视图连接多个表,那么在一个时间里只能更新一个表。
所有的能被更新的列可以在数据字典USER_UPDATETABLE_COLUMNS中查到。
用户在CREATE VIEW中可以使用了WITH子串。
WITH READ ONLY子串表示创建的视图是一个只读视图,不能进行更新、插入、删除操作。
WITH CHECK OPTION表示可以进行插入和更新操作,但应该满足WHERE子串的条件。
这个条件就是创建视图WHERE子句的条件,比如在上面的例子中用户创建了一个视图TOP_EMP,在这个视图中用户不能插入salary小于2000的数据行。
删除视图 删除视图使用DROP VIEW命令。
同时将视图定义从数据字典中删除,基于视图的权限也同时被删除,其他涉及到该视图的函数、视图、程序等都将被视为非法。
例:DROP VIEW TOP_EMP;把.dbf的数据导入到Oracle数据库中(VFP -> ACCESS -> Oracle )在access中导入.dbf 数据:access 新建数据库(空数据库)->点击右键导入(文件类型选择ODBC数据库())->机器数据源中新建->系统数据库->选择Microsoft FoxPro VFP Driver(*.dbf)输入内容: Data Source Name: myforproPath:找出所要转换的FORPRO的数据源(如:xtrc.dbc)其它的默认。