mysql与Oracle数据类型比较

MYSQL 与 Oracle 之间的数据类型转换

关键字: mysql, oracle, 数据类型, 转换

Table 2-4 Default Data Type Mappings Used by Oracle SQL Developer

MySQL Data Type Oracle Data Type

BIGINT NUMBER(19, 0)

BIT RAW

BLOB BLOB, RAW

CHAR CHAR

DATE DATE

DATETIME DATE

DECIMAL FLOAT (24)

DOUBLE FLOAT (24)

DOUBLE PRECISION FLOAT (24)

ENUM VARCHAR2

FLOAT FLOAT

INT NUMBER(10, 0)

INTEGER NUMBER(10, 0)

LONGBLOB BLOB, RAW

LONGTEXT CLOB, RAW

MEDIUMBLOB BLOB, RAW

MEDIUMINT NUMBER(7, 0)

MEDIUMTEXT CLOB, RAW

NUMERIC NUMBER

REAL FLOAT (24)

SET VARCHAR2

SMALLINT NUMBER(5, 0)

TEXT VARCHAR2, CLOB

TIME DATE

TIMESTAMP DATE

TINYBLOB RAW MySQL Data Type Oracle Data Type

TINYINT NUMBER(3, 0)

TINYTEXT VARCHAR2

VARCHAR VARCHAR2, CLOB

YEAR NUMBER

合集下载

opengauss和mysql语法

opengauss和mysql语法

opengauss和mysql语法

OpenGauss 和 MySQL 都是关系型数据库管理系统,但它们有一些语法和功能上的差异。以下是一些常见的 SQL 语法差异:

1.数据类型:

(1)OpenGauss 支持更多的数据类型,如数组类型、位串类型等。

(2)MySQL 也有一些独特的数据类型,如 ENUM、SET 等。

2.分页查询:

(1)OpenGauss 使用 FETCH FIRST 和 OFFSET 来实现分页查询。

(2)MySQL 使用 LIMIT 和 OFFSET。

3.连接表:

(1)OpenGauss 使用 JOIN 关键字来连接表。

(2)MySQL 也使用 JOIN,但有时也可以使用逗号分隔的方式连接表。

4.事务控制:

OpenGauss 和 MySQL 都支持事务的开始、提交和回滚操作。但语法上有些差异。

5.函数和操作符:

OpenGauss 和 MySQL 都提供了丰富的内置函数和操作符,但它们的具体实现可能有所不同。

6.存储过程和触发器: OpenGauss 和 MySQL 都支持存储过程和触发器,但它们的语法和功能可能会有所不同。

7.系统表和视图:

OpenGauss 和 MySQL 都提供了系统表和视图来查询数据库元数据。但具体的表和视图名称可能会有所不同。

8.默认值:

(1)OpenGauss 支持在创建表时为列设置默认值。

(2)MySQL 也支持,但语法上可能略有不同。

9.索引:

OpenGauss 和 MySQL 都支持索引,但索引的创建和使用语法可能有所不同。

10.语法差异:

除了上述的差异外,OpenGauss 和 MySQL 在一些特定的 SQL

语法上可能存在差异。因此,当从一个数据库迁移到另一个数据库时,需要注意这些差异并进行适当的调整。

需要注意的是,随着时间的推移,数据库的版本可能会更新和变化。

数据库的介绍和类型

数据库的介绍和类型

数据库的介绍和类型

⼀、 什么是数据库?

简单的说,数据库(英⽂Dtabase)就是⼀个存放数据的仓库,这个仓库是按照⼀定的数据结构(数据结构是指数据的组织形式或数据之间的联

系)来组织、存储的、我们可以通过数据库提供的多种⽅法来管理数据库⾥的数据更简单的形象理解,数据库和我们⽣活中存放杂物的仓库性质⼀

样,区别只是存放的东西不同。

⼆、数据库的种类有哪些?

早期⽐较流⾏的数据库模型有三种,分别为:层次式数据库、⽹络式数据库和关系型数据库。

⽽在当今的互联⽹中,最常⽤的数据库模型主要是两种,即关系型数据库和⾮关系型数据库。

1.关系型数据库介绍

(1)关系型数据库由来

⽹络数据库和层次数据库很好地解决了数据的集中和共享问题,但是在数据独⽴性和抽象级别上仍有很⼤⽋缺。⽤户对这两种数据库进⾏存取

时,依然需要明确数据的存储结构,⽀出存储路径。⽽关系数据库就可以较好地解决这些问题

(2)关系型数据库介绍

关系型数据库模型是把复杂的数据结构归结为简单的⼆元关系(即⼆维表格形式)。 Oracle 在数据库领域⾥上升到了霸主地位,形成每年⾼达数

百亿美元的庞⼤市场,⽽MySQL也是不容忽视的数据库,以⾄于被Oracle重⾦收购

MySQL 互联⽹市场 ———— Oracle 传统企业

2.⾮关系型数据库的介绍

(1) ⾮关系型数据库诞⽣背景

⾮关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL” 。指的是⾮关系型数据库,⽽不是“No SQL”的意思,因

此,NoSQL的产⽣并不是要彻底地否定⾮关系型数据库,⽽是作为传统关系型数据库的⼀个有效补充。NOSQL数据库在特定的场景下可以发挥出难

以想象的⾼效率和⾼性能。

(2) 随着互联⽹Web2.0⽹站的星期,传统的关系型数据库在应付web2,0⽹站,特别是对于规模⽇益扩⼤的海量数据,超⼤规模和⾼并发的微博、

微信、SNS类型的web2.0纯动态⽹站已经显得⼒不从⼼,暴露了很多难以克服的问题。例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突

oracle与Mysql的增删改语法区别对比

oracle与Mysql的增删改语法区别对比

oracle与Mysql的增删改语法区别对⽐

1. 创建表

MySQL:

create table test

(id int(10) not null primary key comment '主键id',

amt decimal(18,2) default null comment '⾦额'

)comment='测试表';

Oracle:

create table t1(

id varchar2(32) defaule 0 not null primary key,

name varchar2(32) ,

age varchar2(32)

)

添加表注释:comment on table t1 is '个⼈信息';

添加字段注释:comment on column t1.id is 'id';

comment on column is '姓名';

comment on column t1.age is '年龄';

2. 删除表

MySQL:drop table if exists tableName;

Oracle:drop table tableName;

注:Oracle没有if exists关键字,也没⽤类似if exists的SQL语法。drop、truncate、delete的区别:

1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除⾮新增⼀个表。

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会

变为:invalid。2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据⽽已。

注意:truncate 不能删除⾏数据,要删就要把表清空。3、delete (删除表中的数据):delete 语句⽤于删除表中的⾏。delete语句执⾏删除的过程是每次从表中删除⼀⾏,并且同时将该⾏的

SQLServerMySqlOracle语法对比及区别

SQLServerMySqlOracle语法对比及区别

SQLServerMySqlOracle语法对⽐及区别

操作SQLServerOracleMysql

查看

表结

构exec sp_help 表名desc 表名

在command window看desc 表名 或 describe 表名 或

show columns from 表名;

修改

数据

库名

称exec sp_renamedb ‘旧数据库

名’,’新数据库名’不详

修改

表名exec sp_rename ‘旧表明’,’新表

明’rename 旧表名 to 新表名alter table 表名 rename to 新表名

修改

列名exec sp_rename ‘表.旧列名’,’新

列名’alter table 表名 rename column 旧列名 to 新列

名alter table test change column address address1 varchar(30)--修改

表列名

删除

数据

库drop database 数据库名不详Drop database

添加

表中

⼀列alter table 表名 Add 列名 数据库

类型alter table 表明 add(列名 数据类型) 或

alter table 表名 Add 列名 数据库类型alter table test add column name varchar(10); --添加表列

删除

表中

⼀列alter table 表名 drop column 列

名alter table 表名 drop column 列名alter table test drop column name;

修改

表现

有列alter table 表名 alter column 列

新数据库类型 ⼤⼩alter table 表明 modify(列名 数据类型)alter table test modify address char(10) --修改表列类型

||alter table test change address address char(40)

oracle sql大小比较写法

oracle sql大小比较写法

标题:Oracle SQL中的大小比较写法

在Oracle数据库中,大小比较是我们经常会用到的操作之一。在SQL语句中,我们需要通过大小比较来筛选出符合条件的数据。本文将详细介绍Oracle SQL中大小比较的写法,包括基本的比较操作符、使用函数进行比较以及一些实际应用场景中的大小比较技巧。

一、基本的比较操作符

在Oracle SQL中,可以使用一些基本的比较操作符来进行大小比较,这些操作符包括:

1. 大于(>):用于比较左操作数是否大于右操作数。

2. 小于(<):用于比较左操作数是否小于右操作数。

3. 大于等于(>=):用于比较左操作数是否大于或等于右操作数。

4. 小于等于(<=):用于比较左操作数是否小于或等于右操作数。

5. 等于(=):用于比较左操作数是否等于右操作数。

6. 不等于(<>):用于比较左操作数是否不等于右操作数。

下面是一些使用基本比较操作符的例子:

```

-- 查询员工工资大于5000的数据 SELECT * FROM employees WHERE salary > 5000;

-- 查询订单金额小于等于100的数据

SELECT * FROM orders WHERE amount <= 100;

```

二、使用函数进行大小比较

除了基本的比较操作符外,Oracle SQL还提供了一些函数来进行大小比较,这些函数包括:

1. MAX():用于获取指定表达式的最大值。

2. MIN():用于获取指定表达式的最小值。

3. GREATEST():用于获取指定值中的最大值。

4. LEAST():用于获取指定值中的最小值。

下面是一些使用函数进行大小比较的例子:

```

-- 查询员工表中工资的最大值

SELECT MAX(salary) FROM employees;

-- 查询员工表中芳龄最小的员工 SELECT * FROM employees WHERE age = (SELECT MIN(age)

orcle与mysql的sql语法区别

orcle与mysql的sql语法区别

路漫漫其修远兮,吾将上下而求索 - 百度文库

1 Orcle与MySQL的SQL语法区别:

1.在Oracle中用

select * from all_users显示所有的用户,而在MySQL中显示所有数据

库的命令是

show databases

对于我的理解,Oracle项目来说一个项目就应该有一个用户和其对应的

表空间,而MySQL项目中也应该有个用户和一个库,在Oracle(db2也一样

)中表空间是文件系统中的物理容器的逻辑表示,视图,触发器和存储过

程也可以保存在表空间中。而MySQL并并没有使用表空间来进行管理你。

2.查询当前所有的表

Oracle

select * from tab

MySQL

show tables

3.改变连接用户(库)

Oracle

conn 用户名/密码@主机字符串

MySQL

use 库名

4.显示当前连接用户(库)

Oracle

show user

MySQL

connect

5.执行外部脚本命令

Oracle

@a.sql

MySQL

source a.sql

Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。

1.组函数用法规则

mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错

eg:

select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。

2.自动增长的数据类型处理 路漫漫其修远兮,吾将上下而求索 - 百度文库

2 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。

CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START

PostgreSQL,mysql,MSSQL,Oracle性能对比

PostgreSQL,mysql,MsSQL、Oracle性能报价对比 PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、

外键、触发器、视图、事务完整性、多版本并发控制。同样,PostgreSQL可以用许多方法

扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并

且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发PostgreSQL,

不管是私用,商用,还是学术研究使用。 MySQL是一个开放源码的小型关联式数据库管理系统

MS SQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服

务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、

使用和维护数据库。

Oracle SQL Developer 是一个免费非开源的用以开发数据库应用程序的图形化工具,使用 SQL Developer 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL 语句。

另外还可以创建执行和保存报表。 性能 PostgreSQL MySQL MsSQL Oracle

支持系统 Windows下不太

稳定 很多 Windows 很多

可编写环境 较多 较多

用户普遍性 普遍 流行 较普遍

查询速度 比较慢 较慢 较快

应用灵活性 较灵活 可单独应用,也

可进行嵌套 灵活

查询包含性 较差 较强

负载程度 很低 很高

价格 免费开源 收费

管理简易程度 较容易 非常容易

中文支持 支持 支持,但开发和

转移数据时容易

出现中文字符问题 全中文环境

导入导出 支持视图 较难,速度快

的是字符操作界面 容易,全是图

形操作界面

维护监控 较难 容易

用户安全 较低 较高 较低

备份恢复 简单 较简单 简单

第三方软件 较多 较多 很多

开发难度 较低 高 较低

存储过程 简单 不容易使用 支持,图形化

MySQL与Oracle的语法区别详细对比

MySQL与Oracle的语法区别详细对⽐

Oracle和mysql的⼀些简单命令对⽐

1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;

SQL> select to_char(sysdate,'hh24-mi-ss') from dual;

mysql> select date_format(now(),'%Y-%m-%d');

mysql> select time_format(now(),'%H-%i-%S');

⽇期函数

增加⼀个⽉:

SQL> select to_char(add_months(to_date ('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual;

结果:2000-02-01

SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),5),'yyyy-mm-dd') from dual;

结果:2000-06-01

mysql> select date_add('2000-01-01',interval 1 month);

结果:2000-02-01

mysql> select date_add('2000-01-01',interval 5 month);

结果:2000-06-01

截取字符串:

SQL> select substr('abcdefg',1,5) from dual;

SQL> select substrb('abcdefg',1,5) from dual;

结果:abcdemysql> select substring('abcdefg',2,3);

结果:bcd

mysql> select mid('abcdefg',2,3);

结果:bcd

mysql和oracle的区别有哪些

mysql和oracle的区别有哪些

MySQL和Oracle有什么区别?两个数据库的特性是不同的,所以与Oracle相比,MySQL的使用方式不同;与MySQL相比,Oracle的使用情况有所不同。它们的特点也是不同的。下面我们就来具体看看MySQL和Oracle的区别有哪些。

1、本质的区别

Oracle数据库是一个对象关系数据库管理系统(ORDBMS)。它通常被称为Oracle RDBMS或简称为Oracle,是一个收费的数据库。

MySQL是一个开源的关系数据库管理系统(RDBMS)。它是世界上使用最多的RDBMS,作为服务器运行,提供对多个数据库的多用户访问。它是一个开源、免费的数据库。

2、数据库安全性

MySQL使用三个参数来验证用户,即用户名,密码和位置;Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。

3、SQL语法的区别

Oracle的SQL语法与MySQL有很大不同。Oracle为称为PL /

SQL的编程语言提供了更大的灵活性。Oracle的SQL * Plus工具提供了比MySQL更多的命令,用于生成报表输出和变量定义。

4、存储上的区别:

与Oracle相比,MySQL没有表空间,角色管理,快照,同义词和包以及自动存储管理。 5、对象名称的区别:

虽然某些模式对象名称在Oracle和MySQL中都不区分大小写,例如列,存储过程,索引等。但在某些情况下,两个数据库之间的区分大小写是不同的。

Oracle对所有对象名称都不区分大小写;而某些MySQL对象名称(如数据库和表)区分大小写(取决于底层操作系统)。

6、运行程序和外部程序支持:

Oracle数据库支持从数据库内部编写,编译和执行的几种编程语言。此外,为了传输数据,Oracle数据库使用XML。

MySQL不支持在系统内执行其他语言,也不支持XML。

7、MySQL和Oracle的字符数据类型比较:

mysql与oracle区别

mysql与Oracle 区别

一、并发性

并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。

mysql:

mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。

虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。

oracle:

oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。

二、一致性

oracle:

oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数据块来实现读一致性,

每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。

mysql:

mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。

session更新数据时,要加上排它锁,其他session无法访问数据。

三、事务

oracle很早就完全支持事务。

mysql在innodb存储引擎的行级锁的情况下才支持事务。

四、数据持久性

oracle

保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,

如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。

mysql:

默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档