mysql与oracle 表字段定义比较

Jun 07, 2016 pm 03:14 PM
mysql or oracle 分野 意味 比較する

mysql与oracle 表字段定义比较 说明 mysql oracle VARCHAR 变长字符串 VARCHAR[0-65535] 定义长度默认按字符长度计算,如果是 GBK 编码的汉字将占用 2 个字节 VARCHAR2[1-4000] VARCHAR 是 VARCHAR2 的同义词 定义默认按字节长度计算 TINYINT SMALLINT MEDIU

mysql与oracle 表字段定义比较

 

 

说明

mysql

oracle

VARCHAR

变长字符串

VARCHAR[0-65535]

定义长度默认按字符长度计算,如果是GBK编码的汉字将占用2个字节

VARCHAR2[1-4000]
VARCHAR
VARCHAR2的同义词

定义默认按字节长度计算

TINYINT

SMALLINT

MEDIUMINT

INT
BIGINT

整数

TINYINT(-128-127)

SMALLINT(-32768-32767)

MEDIUMINT(-8388608-8388607)

INT(-2147483648-2147483647)
BIGINT(-9223372036854775808-9223372036854775807) 

无专用类型,

TINYINT可以用NUMBER(3,0)代替

SMALLINT可以用NUMBER(5,0)代替

MEDUIMINT可以用NUMBER(7,0)代替

INT可以用NUMBER(10,0)代替

BIGINT可以用NUMBER(20,0)代替



ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词

DECIMAL
NUMERIC

数值类型

DECIMAL[1-65[,0-30]]
NUMERIC
DECIMAL的同义词

NUMBER 可表示数范围: 1*10^-1301*10^126

NUMBER([1-38][,-84-127])

 

DECIMALNUMERICDECNUMBER的同义词

FLOAT

浮点型

FLOAT(D,M)

oracle10g开始增加BINARY_FLOAT类型

10g以前无专用类型,可以用NUMBER代替

ORACLE中有FLOATREAL类型,不过这是NUMBER的同义词

DOUBLE

双精度浮点型

DOUBLE(D,M)

oracle10g开始增加BINARY_DOUBLE类型

10g以前无专用类型,可以用NUMBER代替

ORACLE中有DOUBLE PRECISION类型,不过这是NUMBER的同义词

BIT

位类型

BIT(1-64)

DATETIME

日期类型

DATE3字节存储,只存储日期,没有时间,支持范围是[1000-01-01][9999-12-31]
TIME
3字节存储,只存储时间,没有日期,支持范围是[-838:59:59][838:59:59]
DATETIME
,占8字节存储,可表示日期和时间,支持范围是[1000-01-01 00:00:00][9999-12-31 23:59:59]
TIMESTAMP
,占4字节存储,可表示日期和时间,范围是[1970-01-01 00:00:00][2038-01-19 03:14:07]

DATE类型
7字节存储,可表示日期和时间,支持范围是[-4712-01-01 00:00:00][9999-12-31 23:59:59]

TIMESTAMP

高精度日期

5.6.4以前不支持小数秒精度
5.6.4开始TIME,DATETIME,TIMESTAMP支持,最多可以6位小数秒,也就是微秒级别

TIMESTAMP[0-9]
占用空间7-11个字节,当小数秒精度为0时与DATE类型相同,小数秒最高精度可达9位,也就是纳精度

YEAR

年份

YEAR1字节存储,只存储年份,支持范围是[1901][2155]

无对应类型,可以用NUMBER(3,0)代替

CHAR

定长字符串

CHAR[0-255],定义长度默认按字符长度计算,最大保存255字符

CHAR[1-2000]

定义默认按字节长度计算

UNSIGNED

无符号说明

支持,用于数值类型

不支持

CLOB

大字符串,一般用于存储文本文件或超大描述及备注类信息

TINYTEXT 最大支持255个字节
TEXT最大支持65535个字节
MEDIUMTEXT最大支持16MB个字节
LONGTEXT最大支持4GB字节

字段不支持默认值

支持(CLOB)
oracle10g
以前最大支持4GB个字节

oracle10g开始最大支持4GB个数据块,数据块大小为2KB-32KB

oracle还有一个LONG类型,是早期的存储大字符串类型,最大支持2GB字节,现已不推荐使用

BLOB

大二进制对象,一般用于存储文件或图片数据

TINYBLOB 最大支持255个字节
BLOB最大支持65535个字节
MEDIUMBLOB最大支持16MB个字节

LONGBLOB最大支持4GB字节

 

字段不支持默认值

支持(BLOB)

oracle10g以前最大支持4GB个字节

oracle10g开始最大支持4G个数据块,数据块大小为2KB-32KB

oracle还有一个LONG RAW类型,是早期的存储二进制类型,最大支持2GB字节,现已不推荐使用

BINARY

二进制信息

BINARY(0-255),定长
VARBINARY(0-65535),变长

RAW(1-2000)

ENUM

枚举类型

ENUM(v1,v2,v3,...),最多65535个元素

不支持

SET

集合类型

SET(v1,v2,v3,...),最多64个元素

不支持

NATIONAL CHAR

国际化字符集类型,较少使用

无,MYSQL可以对每个字段指定字符编码

支持
NCHAR(1-2000)
NVARCHAR(1-4000)
NCLOB

BFILE

外部文件指针类型

不支持

支持
文件大小最大4GB
文件名称最长255字符

自定义数据类型

 

不支持

支持

XML类型

 

不支持

支持

自增类型

自动增长类型

支持
使用简单

不支持
一般使用SEQUENCE解决,用法与自增类型差别较大,使用较复杂,但能实现非常灵活的应用,包括字符自增主键、全局主键等等

字段默认值表达式

 

不支持函数和表达式
TEXTBLOB字段类型不支持默认值

支持函数和表达式

字段顺序修改

 

支持,例如,把emp表的id字段顺序放在name字段后面:
alter table emp modify column id varchar(20) after name;

不支持,只能重建表或字段

虚拟字段

虚拟字段是一个逻辑字段定义,其结果值通常是一个表达式,并在表中存储物理值,不占用空间,主要用于简化查询逻辑。比如有一个商品销售表有单价和数量两个字段,那可以建一个虚拟字段金额,其表达式=单价*数量

不支持

11g支持,例:
create table sales
(
  id       number,
  quantity number,
  price    number,
  amount   GENERATED always as (quantity*price) virtual
);

表字段数限制

 

INNODB 最大1000个字段
所有字段总定义长度不能超过65535字节
所有固定长度字段的总长度不超过半个数据块大小(数据块大小一般为16K)

最大1000个字段

 

我的新浪微博: http://weibo.com/yzsind

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Centosはmysqlをインストールします Centosはmysqlをインストールします Apr 14, 2025 pm 08:09 PM

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

MySQLをCentos7にインストールする方法 MySQLをCentos7にインストールする方法 Apr 14, 2025 pm 08:30 PM

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin

HDFSでCentosを構成するために必要な手順 HDFSでCentosを構成するために必要な手順 Apr 14, 2025 pm 06:42 PM

CENTOSシステムにHadoop分散ファイルシステム(HDFS)を構築するには、複数のステップが必要です。この記事では、簡単な構成ガイドを提供します。 1.初期段階でJDKをインストールする準備:すべてのノードにJavadevelopmentKit(JDK)をインストールすると、バージョンはHadoopと互換性がある必要があります。インストールパッケージは、Oracleの公式Webサイトからダウンロードできます。環境変数構成: /etc /プロファイルファイルを編集し、JavaおよびHadoop環境変数を設定して、システムがJDKとHadoopのインストールパスを見つけることができるようにします。 2。セキュリティ構成:SSHパスワードなしログインSSHキーを生成する:各ノードでSSH-KeyGenコマンドを使用する

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

See all articles