1. oracle select *, id需要在星号前加别名,mysql则不需要
mysql语法:
select *, id from xin_student_t;
oracle语法:
select st.*, st.id from xin_student_t st;
2. oracle表定义了别名,在查询时可以不用别名指定字段,mysql必须用别名
3. mysql不同的表可以有相同的索引名称,而oracle的索引名称需要在整个库中都是唯一的
同样,删除时mysql需要指定表名,oracle则不需要
mysql: drop index index_name on table_name;
oracle: drop index index_name;
4. mysql大部分函数使用时都会导致索引失效,比如instr,而oracle则不是,像instr就可以使用到索引
5. 联合索引的第一个列未命中索引的情况下,此联合索引在mysql中无法命中了已经,但在oracle中第一个列会使用跳跃式索引,第二列若使用到也会命中索引
6. mysql有反引号`,oracle没有
7. oracle有clob来保存大量字符,最大4GB,mysql没有clob,有类似的
CLOB(Character Large Object)是一种用于存储大量字符数据的数据类型。它可以容纳高达2^32-1个字节的文本数据,适合存储大文本如文章、文档、XML等。
在MySQL的具体实现中,由于历史原因,没有直接对应的CLOB类型,而是通过TEXT类型来支持大文本数据。MySQL提供了四种TEXT类型:
- TINYTEXT:最大长度为255个字符。
- TEXT:最大长度为65,535个字符。
- MEDIUMTEXT:最大长度为16,777,215个字符。
- LONGTEXT:最大长度为4,294,967,295个字符,通常用来替代CLOB类型。
如果你需要存储大量的字符数据,并且期望与标准SQL中的CLOB相对应,那么可以选择使用LONGTEXT类型字段。例如:
CREATE TABLE my_table (
id INT PRIMARY KEY,
large_text LONGTEXT
);
在这个例子中,large_text字段就可以存储类似CLOB的大文本数据。
8. oracle中有number(30, 6)类型,mysql中没有,mysql中有如下数据类型
8.1 mysql数值类型
整数类型:
- TINYINT:占用1字节存储空间,范围-128至127(有符号)或0至255(无符号)。
- SMALLINT:占用2字节存储空间,范围-32,768至32,767(有符号)或0至65,535(无符号)。
- MEDIUMINT:占用3字节存储空间,范围-8,388,608至8,388,607(有符号)或0至16,777,215(无符号)。
- INT 或 INTEGER:占用4字节存储空间,范围-2,147,483,648至2,147,483,647(有符号)或0至4,294,967,295(无符号)。
- BIGINT:占用8字节存储空间,范围-9,223,372,036,854,775,808至9,223,372,036,854,775,807(有符号)或0至18,446,744,073,709,551,615(无符号)。
浮点数类型:
- FLOAT:单精度浮点数,可以指定总位数(如FLOAT(M,D)),但不推荐使用这种方式。
- DOUBLE 或 DOUBLE PRECISION:双精度浮点数,提供更高的精度。
- DECIMAL 或 NUMERIC:高精度定点数,常用于需要精确计算的情况,例如财务应用。可以指定总位数和小数位数(如DECIMAL(M,D))。
在实际应用中,根据具体的数值大小和精度要求选择合适的数字类型。同时,也可以通过ZEROFILL属性来控制填充零以达到固定宽度显示的效果。
8.2 oracle数值类型
数值类型主要用于存储整数和浮点数数据。
- NUMBER:
-
Oracle的核心数值类型是NUMBER,它可以存储任意精度(从1到38位)的正负整数、定点数或浮点数。
-
定义格式为 NUMBER(precision, scale),其中:
- precision(精度):总数字位数,包括小数点两边的数字。如果省略,最大默认值为38。
- scale(小数位数):小数点右边的数字位数。如果省略,默认值为0。若scale为负数,则表示该数字会被四舍五入到小数点左边相应的位置。
例如:文章来源:https://www.toymoban.com/news/detail-666195.html
- NUMBER(5,2) 表示最多可以存储5位数字,其中2位是小数部分,如123.45。
- NUMBER(10) 表示最多可以存储10位数字,无小数部分,如1234567890。
- NUMBER(5,-2) 表示最多可存储5位数字,并将结果四舍五入到小数点前两位,如12.34会变成12。
- BINARY_FLOAT 和 BINARY_DOUBLE:
从Oracle 10g开始引入了两种二进制浮点类型以提高浮点计算性能:
- BINARY_FLOAT 是单精度浮点类型,占用4字节内存空间。
- BINARY_DOUBLE 是双精度浮点类型,占用8字节内存空间。
总的来说,NUMBER类型非常灵活,可以根据实际需求来定义适合的精度和规模,而BINARY_FLOAT和BINARY_DOUBLE则更适合进行高性能的浮点运算场景。文章来源地址https://www.toymoban.com/news/detail-666195.html
到了这里,关于Mysql Oracle 区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!