首页 > 数据库 >MySQL - [17] Oracle、SQLServer、MySQL数据类型对比

MySQL - [17] Oracle、SQLServer、MySQL数据类型对比

时间:2024-07-15 10:32:19浏览次数:11  
标签:字符 字节 17 30 数据类型 VARCHAR2 MySQL Oracle

题记部分

 

一、数据类型对比

对应关系

(1)整数类型

  • Oracle的NUMBER(*,0) 对应 SQL Server的INT 和 MySQL的INT

  • Oracle的BIGINT 可能需要映射到SQL Server的BIGINT 和 MySQL的BIGINT

(2)浮点数类型

  • Oracle的BINARY_FLOAT/BINARY_DOUBLE 对应 SQL Server的FLOAT 和 MySQL的DOUBLE

(3)字符串类型

  • Oracle的VARCHAR2 对应 SQL Server的VARCHAR 和 MySQL的VARCHAR

  • Oracle的CLOB 对应 SQL Server的NVARCHAR(MAX) 和 MySQL的LONGTEXT

(4)日期时间类型

  • Oracle的DATE/TIMESTAMP 对应 SQL Server的DATETIME/DATETIME2 和 MySQL的DATETIME/TIMESTAMP

(5)布尔类型

  • Oracle没有直接的布尔类型,但可以使用TINYINT(1) 或 NUMBER(1) 来对应 SQL Server的BIT 和 MySQL的BOOLEAN/TINYINT(1)

 

 

 

 

二、相对而言

1、在mysql中如果字段数据类型为varchar(30),那么在Oracle中是?

varchar2(60)

2、varchar和varchar2的区别?

  在MySQL中,VARCHAR(30)意味着该字段可以存储最多30个字符,每个字符的长度通常是1到4个字节,具体取决于所使用的字符集。例如,在使用UTF-8编码时,大多数字符占3个字节,而某些特殊字符(如表情符号)可能占用4个字节。

  然而,在Oracle中,VARCHAR2类型同样用来存储可变长度的字符串,但是Oracle中的字符存储方式略有不同。Oracle默认使用的是内部的多字节字符集,这可能会影响字符的实际存储大小。如果在Oracle中使用的是单字节字符集,那么VARCHAR2(30 BYTE)将允许你存储最多30个字节的数据,但这通常不足以存储30个非ASCII字符,因为非ASCII字符可能需要更多的字节来表示。

  当从MySQL迁移到Oracle时,如果你的字符串包含的是单字节字符(如ASCII),那么VARCHAR2(30 BYTE)可能就足够了。但是,如果包含多字节字符(如UTF-8编码下的汉字或其他语言字符),为了安全起见,你可能需要增加VARCHAR2的长度。一个常用的规则是在Oracle中将VARCHAR2的长度设置为MySQL中VARCHAR长度的两倍,以确保可以存储所有可能的多字节字符。

  因此,对于MySQL中的VARCHAR(30),在Oracle中,你可以选择使用VARCHAR2(60 BYTE)来确保能够存储相同数量的多字节字符。但是,如果确定字符集中每个字符不会超过3字节,那么使用VARCHAR2(90 BYTE)会更保险一些。如果Oracle数据库使用的是字符模式(CHAR),那么可以指定VARCHAR2(30 CHAR),这将基于字符计数而非字节计数。

  最后,如果你不确定具体的字符集或字符长度需求,最安全的方法是增加目标字段的长度,例如使用VARCHAR2(100 BYTE)或更高,以避免任何潜在的数据截断问题。

3、varchar和varchar2可以设置的最大长度是?

 

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

标签:字符,字节,17,30,数据类型,VARCHAR2,MySQL,Oracle
From: https://www.cnblogs.com/houhuilinblogs/p/18302616

相关文章

  • MySQL操作大全
    目录文章目录目录@[toc]基础操作基本命令1、用命令登录MySql2、查看MySql版本3、显示数据库列表创建数据库4、选择数据库5、显示库中的数据表6、显示数据表的结构7、导出数据8、导入数据9、创建用户10、用户授权11、事件11.1、查看事件是否开启......
  • Python常用数据类型 新手必看 超详细介绍
    目录一、Int整型二、Float浮点型科学计数法三、Bool布尔类型bool函数四、Str字符型字符串的声明字符串的常见操作查找:计数:大小写转换:编码与解码:切割与拼接:替换:五、None六、List列表列表的声明列表的常见操作 增加元素:删除元素:其他:七、Tuple元组元组的......
  • MySQL8.0.33 主主复制高可用部署
    一、服务器规划1.1服务器详情主机名IP配置备注MySQLMasterVIP10.0.0.10虚拟IP跳转MySQL连接地址MySQLMaster0110.0.0.112H4GMySQLMaster0210.0.0.122H4G1.2修改主机名##修改各主机的主机名如:10.0.0.11服务器[root@localhost~]#hostnamectlset-hostnamemysqlmas......
  • 运维系列:拒绝用户‘root‘@‘172.17.0.1‘访问在本地Docker容器中运行的mysql数据库
    拒绝用户'root'@'172.17.0.1‘访问在本地Docker容器中运行的mysql数据库拒绝用户'root'@'172.17.0.1‘访问在本地Docker容器中运行的mysql数据库问题:答案:拒绝用户’root’@'172.17.0.1‘访问在本地Docker容器中运行的mysql数据库问题:我正在尝试连接到在本地Dock......
  • Java基础04:数据类型拓展
    整型拓展十进制整数,如:99,-500,0。八进制整数,要求以0开头,如:015。十六进制数,要求0x或0X开头,如:0x15。//整型inti=10;inti2=010;inti3=0x10;System.out.println(i);//10System.out.println(i2);//8System.out.println(i3);//16浮点型拓展浮点类型float,d......
  • mysql不支持bool类型需要使用int表示
    typeCoreAutoTaskstruct{IDuint`gorm:"primary_key;AUTO_INCREMENT"json:"id"`SourceIdstring`gorm:"type:varchar(200);notnull;index:source_idx"json:"source_id"`DataBasestring`gorm:"......
  • MySQL存储引擎的选择:深入解析与策略
    MySQL数据库管理系统之所以强大,部分原因在于它提供了多种存储引擎,每种引擎都针对特定的应用场景进行了优化。尽管MySQL支持多种存储引擎,但其中最常用且值得深入探讨的无疑是MyISAM、InnoDB以及MEMORY(HEAP)这三种。每种存储引擎都有其独特的优缺点,合理选择能够显著提升数据库的性......
  • 1117java jsp SSM Springboot在线答疑系统学生考试问题发布教师疑难解答(源码+文档+PPT
     项目技术:Springboot+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:window......
  • mysql面试2
                   ......
  • MySQL面试题
    基础篇InnoDB和MyISAM有什么区别?InnoDB支持事务、外键和行锁MyISAM不支持事务、外键和行锁,仅支持表锁;InnoDB不仅缓存索引还缓存真实的数据,MyISAM仅缓存索引,不缓存真实数据;InnoDB中有聚簇索引和非聚簇索引,MyISAM中仅存在非聚簇索引;InnoDB的索引和数据存储在同......