当前位置: 首页 > 科技观察

三分钟带你分清MySQL和Oracle之间的误区

时间:2023-03-14 20:38:07 科技观察

三分钟带你分清MySQL和Oracle的误区。本质区别:Oracle数据库是一个对象关系数据库管理系统(付费)MySQL是一个开源关系数据库管理系统(免费)数据库安全:mysql使用三个参数来验证用户,即用户名、密码和位置Oracle使用了更多的安全功能,如用户名、密码、配置文件、本地认证、外部认证、高级安全增强功能等权限MySQL的权限系统是通过继承形成的层次结构。当权限授予高层时,其他底层隐式继承授予的权限,当然底层也可以重写这些权限。根据授权范围,MySQL有以下几种授权方式:全局;基于每个主机;基于表格;基于表列。每个级别在数据库中都有一个授权表。MySQL在进行权限检查时,对每张表按照从高到低的顺序进行检查,低权限优先于高权限。与Oracle不同,MySQL没有角色的概念。也就是说,如果给一组用户授予相同的权限,则需要对每个用户分别进行授权。模式迁移模式包含表、视图、索引、用户、约束、存储过程、触发器等数据库相关概念。大多数关系数据库都有类似的概念。内容如下:模式对象的相似性;模式对象的名称;表格设计中的问题;多数据库集成;关注MySQL模式集成。Schema对象的相似性就schema对象而言,Oracle和MySQL有很多相似之处,但也有一些不同的schema对象名称。Oracle不区分大小写,模式对象在写入时存储在行中。在Oracle世界中,列、索引、存储过程、触发器和列别名不区分大小写,这在所有平台上都是如此。MySQL是区分大小写的,比如数据库的相对存储路径和表对应的文件。当关键字用引号引起来时,Oracle和MySQL都允许在模式对象中使用这些关键字。但是对于一些关键字,MySQL可以不用引号。表格设计的重点1.字符数据的类型;2.列的默认值。3.2.3.1字符数据类型(1)Oracle支持4种字体类型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大长度为2000字节,NVARCHAR2和VARCHAR2的最大长度为4000字节。(2)MySQL和Oracle在保存和读取字符数据方面存在一些差异。MySQL字符类型如CHAR、VARCHAR的长度小于65535字节。Oracle支持4种字体类型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大长度为2000字节,NVARCHAR2和VARCHAR2的最大长度为4000字节。(3.2.3.2Columndefaultvalue)MySQL会处理columndefaultvalue,不允许为空,这一点和Oracle不同。在Oracle中,如果向表中插入数据,需要拥有所有不允许为NULL的列。多数据库迁移如果多个MySQL数据库位于同一数据库服务器上,则支持迁移。数据存储概念MySQL数据库对应服务器上数据目录中的目录。这种数据存储方式不同于包括Oracle在内的多数据数据库。数据库中的表对应数据库目录下的一个或多个文件,以及存储表时使用的存储引擎。Oracle数据库包含一个或多个表空间。表空间对应于磁盘上数据的物理存储。表空间由一个或多个数据文件构成。数据文件是文件系统中的文件或原始存储块。语法差异:主键:mysql一般采用自增类型。创建表时指定表的主键为自增,主键会自动自增。Oracle中没有自动增长,主键一般使用序列,插值时可以按顺序赋值。引号:Oracle不使用双引号,会报错。Mysql对引号没有限制。分页查询:MySQL分页查询使用关键字limit来实现,Oracle没有实现分页查询的关键字,实现起来比较复杂。每个结果集中只有一个rownum字段表示其位置,只能使用rownum<=某个数,不能使用rownum>=某个数,因为ROWNUM是一个伪列。使用的时候需要给ROWNUM取一个别名,变成一个逻辑列,然后对数据类型进行操作:mysql中的Integer:int(),string类型:varchar()Oracle中的Integer:number(),string类型:varchar2()