MySQL和Oracle虽然在架构上有很大的不同,但是如果从某些方面比较起来,它们有些方面也是相通的。
毕竟学习的主线是MySQL,所以会从MySQL的角度来对比Oracle的一些功能。大体总结了以下的内容,欢迎大家拍砖,
查看当前的数据库名
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
+++ Oracle的实现方法 ++++
因为架构的不同,所以列举了数据库,实例级的查询方法。
方法一,通过数据库参数来查看
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
instance_name string TRUABP4
方法二:通过数据字典来查看
数据库级
SQL> select name from v$database;
NAME
---------------------------
TRUABP4
实例级
SQL> select instance_name from v$instance;
INSTANCE_NAME
------------------------------------------------
TRUABP4
方法三:通过内置函数来实现,这种方法相比前两种更为通用。
SQL> select sys_context('USERENV','instance_name') from dual;
SYS_CONTEXT('USERENV','INSTANCE_NAME')
----------------------------------------------------
TRUABP4
得到数据库创建的脚本
得到数据库名为mysql的创建脚本,毕竟在架构实现上不同,有点类似oracle中的用户级别。
mysql> show create database mysql;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| mysql | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
+++ Oracle的实现方法 ++++
Oracle中的实现方式相比要复杂很多。叫法一样,但是实现还是有很大的差别。
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY pz6r58
USER SYSTEM IDENTIFIED BY y1tz5p
LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M,
GROUP 2 ('/u01/oracle/oradata/mynewdb/redo02.log') SIZE 100M,
GROUP 3 ('/u01/oracle/oradata/mynewdb/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
查看当前的用户
mysql> SELECT USER();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
+++ Oracle的实现方法 ++++
方法一,通过sql*plus中的show user命令杰克得到
SQL> show user
USER is "N1"
方法二:通过内置函数来实现,比较通用的方式。
SQL> select sys_context('USERENV','current_user') from dual;
SYS_CONTEXT('USERENV','CURRENT_USER')
--------------------------------------------------
N1
查看含有的表信息
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)
+++ Oracle的实现方法 ++++
方法一:通过cat同义词来实现
SQL> select *from cat where rownum<3;
TABLE_NAME TABTYPE
------------------ ---------------------
AAA TABLE
AAAA TABLE
方法二:通过tab同义词来实现
SQL> select *from tab where rownum<3;
TNAME TABTYPE CLUSTERID
------------------ --------------------- ----------
AAA TABLE
AAAA TABLE
方法三:通过数据字典user_tables来实现
SQL> select table_name from user_tables where rownum<3;
TABLE_NAME
------------------
AAA
AAAA
查看指定数据库中的表信息
比如查询数据库名为mysql里面含有的表。
mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)
+++ Oracle的实现方法 ++++
Oracle中的实现还是根据数据字典表*_tables
SQL> select table_name from all_tables where owner='REFWORK';
TABLE_NAME
------------------------------
OFFER
查看test数据库中的表temp结构
>mysqlshow test temp
Database: test Table: temp
+---------+-------------+-----------------+------+-----+---------+--------------
| Field | Type | Collation | Null | Key | Default | Extra
+---------+-------------+-----------------+------+-----+---------+--------------
| id | int(11) | | NO | PRI | | auto_incremen
| char | char(50) | utf8_general_ci | NO | MUL | |
| varchar | varchar(50) | utf8_general_ci | NO | MUL | |
| text | text | utf8_general_ci | NO | MUL | |
+---------+-------------+-----------------+------+-----+---------+--------------
+++ Oracle的实现方法 ++++
可以通过all_tab_cols来实现
select table_name,column_name from all_tab_cols where owner='N1' and table_name='TEST';
查看表的建表语句
mysql> show create table event\G
*************************** 1. row ***************************
Table: event
Create Table: CREATE TABLE `event` (
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`body_utf8` longblob,
PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'
1 row in set (0.00 sec)
+++ Oracle的实现方法 ++++
oracle中一直直观的方式是使用dbms_metadata.get_ddl来实现
SQL> select DBMS_METADATA.GET_DDL(object_type=>'TABLE',name=>'CSM_OFFER')from dual
DBMS_METADATA.GET_DDL(OBJECT_TYPE=>'TABLE',NAME=>'CSM_OFFER')
--------------------------------------------------------------------------------
CREATE TABLE "REFWORK"."OFFER"
( "OWNER" VARCHAR2(30) NOT NULL ENABLE,
"OBJECT_NAME" VARCHAR2(30) NOT NULL ENABLE,
"SUBOBJECT_NAME" VARCHAR2(30),
"OBJECT_ID" NUMBER NOT NULL ENABLE,
"DATA_OBJECT_ID" NUMBER,
"OBJECT_TYPE" VARCHAR2(19),
"CREATED" DATE NOT NULL ENABLE,
"LAST_DDL_TIME" DATE NOT NULL ENABLE,
"TIMESTAMP" VARCHAR2(19)...
得到表结构的信息
mysql> desc columns_priv
-> ;
+-------------+----------------------------------------------+------+-----+-----
| Field | Type | Null | Key | Defa
+-------------+----------------------------------------------+------+-----+-----
| Host | char(60) | NO | PRI |
| Db | char(64) | NO | PRI |
| User | char(16) | NO | PRI |
| Table_name | char(64) | NO | PRI |
| Column_name | char(64) | NO | PRI |
| Timestamp | timestamp | NO | | CURR
| Column_priv | set('Select','Insert','Update','References') | NO | |
+-------------+----------------------------------------------+------+-----+-----
7 rows in set (0.01 sec)
+++ Oracle的实现方法 ++++
这一点完全一样
SQL> desc offer
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED NOT NULL DATE
LAST_DDL_TIME NOT NULL DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
得到表中的列信息
mysql> show columns from columns_priv;
+-------------+----------------------------------------------+------+-----+-----
| Field | Type | Null | Key | Defa
+-------------+----------------------------------------------+------+-----+-----
| Host | char(60) | NO | PRI |
| Db | char(64) | NO | PRI |
| User | char(16) | NO | PRI |
| Table_name | char(64) | NO | PRI |
| Column_name | char(64) | NO | PRI |
| Timestamp | timestamp | NO | | CURR
| Column_priv | set('Select','Insert','Update','References') | NO | |
+-------------+----------------------------------------------+------+-----+-----
7 rows in set (0.01 sec)
+++ Oracle的实现方法 ++++
通过user_tab_cols来实现。
SQL> select column_name from user_tab_cols where table_name='OFFER';
COLUMN_NAME
------------------------------
OWNER
OBJECT_NAME
SUBOBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
OBJECT_TYPE
CREATED
LAST_DDL_TIME
得到索引的信息
mysql> show index from columns_priv;
+--------------+------------+----------+--------------+-------------+-----------
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation
+--------------+------------+----------+--------------+-------------+-----------
| columns_priv | 0 | PRIMARY | 1 | Host | A
| columns_priv | 0 | PRIMARY | 2 | Db | A
| columns_priv | 0 | PRIMARY | 3 | User | A
| columns_priv | 0 | PRIMARY | 4 | Table_name | A
| columns_priv | 0 | PRIMARY | 5 | Column_name | A
+--------------+------------+----------+--------------+-------------+-----------
5 rows in set (0.00 sec)
+++ Oracle的实现方法 ++++
通过User_indexes来实现
SQL> select index_name,index_type from user_indexes where table_name='OFFER';
INDEX_NAME INDEX_TYPE
------------------------------ ---------------------------
INX_OFFER NORMAL
基于列的模糊查找
可能在这方面MySQL提供的直观方式要多一些。
mysql> show columns from columns_priv like '%ab%';
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| Table_name | char(64) | NO | PRI | | |
+------------+----------+------+-----+---------+-------+
1 row in set (0.01 sec)
+++ Oracle的实现方法 ++++
Oracle里面还是用user_tab_cols,一用倒底。
SQL> select column_name from user_tab_cols where table_name='OFFER' and column_name like '%OBJE%';
COLUMN_NAME
------------------------------
OBJECT_NAME
SUBOBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
OBJECT_TYPE
精确查找列名
mysql> show columns from columns_priv where field='User';
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| User | char(16) | NO | PRI | | |
+-------+----------+------+-----+---------+-------+
1 row in set (0.01 sec)
+++ Oracle的实现方法 ++++
还是使用usre_tab_cols,一用倒底。
SQL> select column_name from user_tab_cols where table_name='OFFER' and column_name= 'OBJECT_NAME';
COLUMN_NAME
------------------------------
OBJECT_NAME
查看进程相关的信息
mysql> show processlist
-> ;
+----+------+-----------------+-------+---------+------+-------+----------------
| Id | User | Host | db | Command | Time | State | Info
+----+------+-----------------+-------+---------+------+-------+----------------
| 3 | root | localhost:49479 | mysql | Query | 0 | init | show processlis
+----+------+-----------------+-------+---------+------+-------+----------------
1 row in set (0.00 sec)
+++ Oracle的实现方法 ++++
Oracle中提供了比较全面的视图,可以通过v$session,v$process来查找
USERNAME MACHINE PROGRAM SID
------------------------------ -------------------- ------------------------- ----------
REFWORK rac1 sqlplus@rac1 (TNS V1-V3) 257
select *from v$process;
查���数据字典的信息
MySQL中的数据字典信息都包含在schema information_schema里面
>mysqlshow information_schema
Database: information_schema
+---------------------------------------+
| Tables |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| OPTIMIZER_TRACE |
| PARAMETERS |
| PARTITIONS |
| PLUGINS |
| PROCESSLIST |
| PROFILING |
| REFERENTIAL_CONSTRAINTS |
| ROUTINES |
+---------------------------------------+
+++ Oracle的实现方法 ++++
Oracle中的视图更加丰富,除了常说的数据字典表,还有动态性能视图,调优诊断很是方便。
select *from dict; --数据字典表
select *from v$fixed_table;--动态性能视图表
- 浏览: 266537 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
1260533105:
uncaught invalidstateerror:Fail ...
WebSocket -
sh747665463:
压力好大啊
【转】如果你不知道接下去学什么,就看这个
发表评论
-
转:一条UPDATE从生到死的整个过程的深入解析
2019-02-23 14:23 516一条UPDATE从生到死的整 ... -
转:scn问题详解
2019-02-23 14:21 583ORACLE SCN问题详解(1)--基础概念详解 ... -
转:Redo Level 11 - Table Operation (DML)
2019-02-23 14:12 532Redo Level 11 - Table Operatio ... -
转发:LogMiner配置使用手册
2018-01-10 18:11 309http://www.cnblogs.com/shishan ... -
oracle 12c pdb
2018-01-10 18:07 612ORACLE 12C中提出来CDB和PDB的概念,对于 ... -
转;v$session,v$session_wait,v$session_wait_history,v$active_session_history
2018-01-10 17:55 487v$session,v$session_wait,v$ ... -
转:sqlplus非交互使用
2017-10-26 14:13 1232sqlplus的非交互式使用 ... -
转:archive log 日志已满
2016-12-15 16:22 1894转帖:原文地址http://blog.csdn.net/p ... -
转:linux系统mysql安装后文件分布情况
2016-01-19 20:31 0MySQL安装完成后不象SQL Server默认安装在一个目 ... -
NLS_COMP和NLS_SORT
2016-01-06 18:49 904oracle中gbk和utf8的数据库在默认nls_com ... -
oracle的collation
2016-01-05 22:40 741一、 In Microsoft SQL Server, ... -
How do I find my database collation and what collations are recommended for Serv
2016-01-05 22:33 0How do I find my database coll ... -
转:mysql 的charaset 与 collation
2016-01-05 22:20 746http://zhongwei-leg.iteye.com ... -
数据仓库之拉链算法(转)
2013-11-22 10:17 1553数据仓库之拉链算法(转)链:古代软兵器的中介之物,故名思意 ... -
配置oracle11g通过dblink+透明网关访问GBase
2013-06-10 17:53 2519一、在oracle的服务器 ... -
数据仓库入门
2013-02-17 09:59 1494数据仓库,英文名称为Data Warehouse, ... -
ODS
2013-02-17 09:46 1010ODS(英语:Operational Data Store) ... -
摘录:mysql视图
2012-01-03 12:06 882第22章:视图 目录 ... -
MYSQL Query Cache
2011-12-27 16:36 1501Query Cache,查询缓存,是m ... -
hibernate 主键生成策略
2011-11-25 09:48 897在hibernate2.1中,主键生成策略中uuid分为uui ...
相关推荐
- PD Server:作为集群的控制平面,负责元数据管理、调度和负载均衡。 - TiKV Server:提供分布式键值存储服务,承载数据的存储和检索。 - TiSpark:将 TiDB 与 Apache Spark 集成,支持大规模数据的分析处理。 ...
2. **MySQL与Oracle数据库特性对比**:分析这两种数据库在语法和功能上的异同,以及它们对JDBC元数据的影响。 3. **使用JDBC元数据优化查询**:展示如何利用元数据来提高查询效率,包括动态构建SQL语句和优化查询...
这类工具通常能够自动化地从SQL脚本或实际运行的数据库中提取元数据,并将其整理成易于阅读和理解的文档,如Word文件。这样,开发人员和DBA可以快速查阅数据库设计,进行数据分析、性能优化或文档编写工作。 描述中...
理解这些元数据的重要性在于确保目标数据库能正确地存储源数据库的数据。 2. 数据迁移:工具会逐条读取SQL Server中的记录,根据字段映射规则将其转换为符合MySQL数据类型的格式,然后插入到对应的MySQL表中。这一...
3. **创建MySQL结构**:在MySQL中创建对应的数据库和表结构,根据Oracle的元数据调整数据类型。 4. **数据转换**:将Oracle导出的文件转换为适合MySQL导入的格式,例如使用专门的迁移工具,如ora2mysqcn.exe(这个...
本文将详细介绍Oracle与MySQL在数据库管理、查询语法、系统特性等方面的主要差异,旨在为读者提供一份全面的对比指南。 #### 1. 用户与数据库的管理 - **Oracle**: 在Oracle中,一个用户可以对应多个模式(schema...
- **HiveMetastoreClientService**: 提供与Hive Metastore交互的能力,用于元数据管理。 ### 操作与验证 1. **配置验证**:确保NiFi、MySQL、Hive环境正常运行,所有需要的连接和配置参数(如数据库URL、用户名、...
- **数据字典**:介绍Oracle数据库中的数据字典,了解如何通过查询数据字典视图获取数据库的元数据信息,如表结构、索引、权限等。 - **Oracle数据类型**:全面解析Oracle支持的各种数据类型,包括数值型、字符型、...
6. 锁管理:MySQL使用了多种锁类型,如表锁、行锁、元数据锁等,以实现不同级别的并发控制。在源码中,可以在`lock.cc`文件中找到锁相关的实现。 7. 日志系统:包括redo log(重做日志)和binlog(二进制日志)。...
#### 六、MySQL与Oracle对比 - **功能差异**:MySQL在某些高级功能方面可能不如Oracle全面,但在易用性和性能上有一定优势。 - **成本**:MySQL作为开源软件,在成本上通常比Oracle更有竞争力。 - **社区支持**:...
9. **数据字典**:介绍Oracle系统内部的数据字典,帮助理解数据库的内部结构和元数据。 10. **Oracle数据类型**:详细解析Oracle支持的各种数据类型,包括字符、数字、日期等,确保数据的准确存储和处理。 11. **...
- **定义与特点**:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL因其速度快、性能高和成本低而受到普遍欢迎。 - **应用场景**:适用于各种规模的应用程序,从小型个人项目...
用户可以对元数据进行发布、查看历史版本、导出历史版本以及进行版本对比操作。这一功能确保了元数据的完整性和一致性,同时也为用户提供了一种跟踪和管理元数据变更的有效手段。 #### 八、实时的元数据变更监控 ...
1.1.20 可动态关闭innodb更新元数据的统计功能 37 1.2 安全性、稳定性的显著改变 38 1.2.1 复制功能加强 38 1.2.2 中继日志relay-log可自我修复 39 1.2.3 开启innodb严格检查模式 39 1.3 动态更改系统配置参数...
对人员能力要求高实例统一管理规则+流程自助变更规则+流程自动审核变更非运维操作规则化、自助化统一入口、多维度权限细化、全操作审计日志广泛数据源支持数据管理DMS架构与案例企业级数据库DevOps架构统一入口员工...
这些内容不仅涵盖了Oracle数据库的基础知识,还深入探讨了Oracle与MySQL的对比、Oracle的不同版本特点、Oracle服务器的核心架构、数据表管理、数据类型映射等多个方面,为学习者提供了全面的视角和深入的理解。