ホームページ データベース mysql チュートリアル MySQL チュートリアルの列型の文字列型

MySQL チュートリアルの列型の文字列型

Nov 22, 2018 pm 04:57 PM

この記事では、mysql の文字列型に関する関連知識を主に紹介します。必要な方のお役に立てれば幸いです。

推奨リファレンス チュートリアル: 「mysql チュートリアル

カラム タイプ (データ型)チュートリアルの列型の文字列型>

いわゆるカラム タイプとは、実際には次のものを指します。データ タイプ、つまりデータの統一された分類は、システムの観点から見ると、データを統一的な方法で管理し、限られたスペースをより有効に活用できるようにするためのものです。

SQL では、データ型は 数値型、文字列型、日付と時刻型の MySQL チュートリアルの列型の文字列型 つの主要なカテゴリに分類されます。

MySQL チュートリアルの列型の文字列型

文字列型チュートリアルの列型の文字列型>

SQL では、文字列型は MySQL チュートリアルの列型の文字列型 つのカテゴリ、つまり char 、 ## に分類されます。 #varchartextblobenum および set.

カテゴリ MySQL チュートリアルの列型の文字列型:固定長文字列

固定長文字列:

char、つまり、ディスク (MySQL チュートリアルの列型の文字列型 次元テーブル) は、構造を定義するときに最終的なデータ ストレージをすでに決定しています。 。

  • char(L): L は長さを表し、文字に格納できる長さは

    です。
  • char(MySQL チュートリアルの列型の文字列型): UTFMySQL チュートリアルの列型の文字列型 環境では MySQL チュートリアルの列型の文字列型*MySQL チュートリアルの列型の文字列型=MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型 バイトが必要であることを示します。

カテゴリ MySQL チュートリアルの列型の文字列型: 可変長文字列

可変長文字列:

varchar、つまり、記憶域スペースの割り当てスペースが割り当てられるときは、最大スペースに従って割り当てられますが、実際に使用される量は特定のデータに基づいて決定されます。

  • varchar(L): L は長さを表し、理論上の長さは MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型 ですが、実際のストレージの長さを決定するためにさらに MySQL チュートリアルの列型の文字列型 ~ MySQL チュートリアルの列型の文字列型 バイトが必要になります。

  • varchar(MySQL チュートリアルの列型の文字列型0): たとえば、UTFMySQL チュートリアルの列型の文字列型 環境で MySQL チュートリアルの列型の文字列型0 個の漢字を格納するには、MySQL チュートリアルの列型の文字列型0*MySQL チュートリアルの列型の文字列型 MySQL チュートリアルの列型の文字列型=MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型 バイトが必要です。

実際、記憶域の長さが MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型 文字を超える場合は、固定長文字列も可変長文字列も使用されず、テキスト文字列

text が使用されます。

固定長文字列または可変長文字列を選択するにはどうすればよいですか?

  • 固定長文字列はディスク領域の無駄ですが、非常に効率的です。データが基本的に同じ長さの場合は、ID カード、電話番号などの固定長文字列を使用します。など;

  • 可変長文字列はディスク領域を節約しますが、非効率です。データの長さを決定できない場合 (異なるデータが変更される場合)、次のような可変長文字列を使用します。住所と名前を待ってください。

カテゴリ MySQL チュートリアルの列型の文字列型: テキスト文字列

データ量が非常に大きい場合 (通常は MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型 文字を超える場合)、テキスト文字列が使用されます。 。

テキスト文字列は保存形式に従って分類され、次のように分類できます。

  • text: テキストを保存します。

  • blob
  • : バイナリ データ (実際にはストレージ パス) を格納します。通常は使用されません。

  • カテゴリ MySQL チュートリアルの列型の文字列型: 列挙文字列

列挙文字列:enum

、事前にすべての可能性を組み合わせる必要があります。表示されるデータはすべて設計されたものであり、実際に格納されるデータは指定されたデータの MySQL チュートリアルの列型の文字列型 つである必要があります。

列挙文字列の使用方法:

定義:
    enum('要素 MySQL チュートリアルの列型の文字列型', '要素 MySQL チュートリアルの列型の文字列型', '要素 MySQL チュートリアルの列型の文字列型'... )
  • 、例:

    enum('male','girls','confidential');## 使用法: 保存されるデータは事前​​に定義することのみ可能 良好なデータ。

  • 次の SQL ステートメントを実行して、テスト用の列挙テーブルを作成します。

    -- 创建枚举表create table my_enum(
        gender enum(&#MySQL チュートリアルの列型の文字列型9;男&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;女&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;保密&#MySQL チュートリアルの列型の文字列型9;)
    )charset utfMySQL チュートリアルの列型の文字列型;
    ログイン後にコピー

次の SQL ステートメントを再度実行して、 table to the table## Insert test data into #my_enum

: MySQL チュートリアルの列型の文字列型

-- 插入测试数据insert into my_enum values (&#MySQL チュートリアルの列型の文字列型9;男&#MySQL チュートリアルの列型の文字列型9;),(&#MySQL チュートリアルの列型の文字列型9;女&#MySQL チュートリアルの列型の文字列型9;),(&#MySQL チュートリアルの列型の文字列型9;保密&#MySQL チュートリアルの列型の文字列型9;);insert into my_enum values (&#MySQL チュートリアルの列型の文字列型9;male&#MySQL チュートリアルの列型の文字列型9;);
ログイン後にコピー

上記のテストを通じて、列挙文字列を使用する利点があることがわかります。

標準データ形式では、テーブルに挿入できるデータは、事前に定義された特定のデータのみです。

MySQL チュートリアルの列型の文字列型

さらに、列挙文字列には別の機能もあります。

ストレージ スペースを節約します (列挙データには通常、文字列自体ではなく数値が格納されます)。

MySQL では、データ形式を自動的に変換する機能がシステムに備わっています。ここで、列挙型フィールドに数値が格納されていることを証明できます。具体的な方法は、データ

0 を取り出すことです。これが文字列の場合、最終結果は常に 0

になります。それ以外の場合は、他の値になります。

-- 验证枚举字段实际存储的格式select gender + 0,gender from my_enum;
ログイン後にコピー
上記の結果を観察すると、要素を列挙するための実際のルールがわかります。つまり、番号付けは、次の順序に従って

MySQL チュートリアルの列型の文字列型

から始まります。要素が現れるもの。次に、MySQL チュートリアルの列型の文字列型enumeration

:

の原理を理解しましょう。

  • 枚举在进行数据规范(定义)的时候,系统会自动建立一个数字与枚举元素的对应关系(放在日志中);在进行数据插入的时候,系统自动将字符串转换为对应的数值进行存储;在进行数据提取的时候,系统自动将数值转换成对应的字符串进行显示。

通过阅读以上枚举的原理,咱们可以知道:使用枚举的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。

第 MySQL チュートリアルの列型の文字列型 类:集合字符串

集合字符串:set,跟枚举类似,实际存储的是数值而不是字符串。

集合字符串的使用方式:

  • 定义:set,元素列表;

  • 使用:可以使用元素列表中的多个元素,用逗号分隔。

执行如下 SQL 语句创建枚举表,进行测试:

-- 创建集合表create table my_set(
    hobby set(&#MySQL チュートリアルの列型の文字列型9;音乐&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;电影&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;旅行&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;美食&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;摄影&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;运动&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;宠物&#MySQL チュートリアルの列型の文字列型9;)
)charset utfMySQL チュートリアルの列型の文字列型;
ログイン後にコピー

MySQL チュートリアルの列型の文字列型

再执行如下 SQL 语句,向表my_set中插入测试数据:

-- 插入测试数据insert into my_set values (&#MySQL チュートリアルの列型の文字列型9;电影,美食,宠物&#MySQL チュートリアルの列型の文字列型9;);insert into my_set values (MySQL チュートリアルの列型の文字列型);
ログイン後にコピー

MySQL チュートリアルの列型の文字列型

再执行如下 SQL 语句,查看表my_set中的数据:

-- 查看数据select hobby + 0,hobby from my_set;
ログイン後にコピー

MySQL チュートリアルの列型の文字列型

观察上面的结果,相信大部分童鞋也懵啦!对于MySQL チュートリアルの列型の文字列型还好理解,MySQL チュートリアルの列型の文字列型=MySQL チュートリアルの列型の文字列型+MySQL チュートリアルの列型の文字列型,对应于集合中数据的编号,也正是音乐电影;但是MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型是什么鬼啊?在此,咱们不妨将集合(&#MySQL チュートリアルの列型の文字列型9;音乐&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;电影&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;旅行&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;美食&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;摄影&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;运动&#MySQL チュートリアルの列型の文字列型9;,&#MySQL チュートリアルの列型の文字列型9;宠物&#MySQL チュートリアルの列型の文字列型9;)中的元素选中的记为MySQL チュートリアルの列型の文字列型,没有选中的记为0,表示成二进制,也就是:

  • 0MySQL チュートリアルの列型の文字列型0MySQL チュートリアルの列型の文字列型00MySQL チュートリアルの列型の文字列型

再将上面的二进制反过来:

  • MySQL チュートリアルの列型の文字列型00MySQL チュートリアルの列型の文字列型0MySQL チュートリアルの列型の文字列型0

不妨算算,上述二进制对应的十进制数,即为MySQL チュートリアルの列型の文字列型MySQL チュートリアルの列型の文字列型.

到这里,相信大家已经恍然大悟啦,原来:集合字符串中每一个元素都对应一个二进制位,其中被选中的为MySQL チュートリアルの列型の文字列型,未选中的为0,最后在反过来,这个二进制数对应的十进制数即为其数据库中实际存储的是数值。

此外,集合字符串中插入元素的顺序并没有影响,最终系统都会自动去匹配集合的顺序,即:

-- 插入测试数据insert into my_set values (&#MySQL チュートリアルの列型の文字列型9;电影,美食,旅行&#MySQL チュートリアルの列型の文字列型9;);insert into my_set values (&#MySQL チュートリアルの列型の文字列型9;旅行,电影,美食&#MySQL チュートリアルの列型の文字列型9;);
ログイン後にコピー

上述两个 SQL 语句会产生相同的结果:

MySQL チュートリアルの列型の文字列型

如上图所示,显然咱们的结论得到了验证。

最后,集合的原理同枚举类似,因此可以的到相同的结论,即:使用集合的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。

以上がMySQL チュートリアルの列型の文字列型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 09, 2025 am 12:05 AM

完全なテーブルスキャンは、MySQLでインデックスを使用するよりも速い場合があります。特定のケースには以下が含まれます。1)データボリュームは小さい。 2)クエリが大量のデータを返すとき。 3)インデックス列が高度に選択的でない場合。 4)複雑なクエリの場合。クエリプランを分析し、インデックスを最適化し、オーバーインデックスを回避し、テーブルを定期的にメンテナンスすることにより、実際のアプリケーションで最良の選択をすることができます。

INNODBフルテキスト検索機能を説明します。 INNODBフルテキスト検索機能を説明します。 Apr 02, 2025 pm 06:09 PM

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

Windows 7にMySQLをインストールできますか? Windows 7にMySQLをインストールできますか? Apr 08, 2025 pm 03:21 PM

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

INNODBのクラスターインデックスと非クラスターインデックス(セカンダリインデックス)の違い。 INNODBのクラスターインデックスと非クラスターインデックス(セカンダリインデックス)の違い。 Apr 02, 2025 pm 06:25 PM

クラスター化されたインデックスと非クラスター化されたインデックスの違いは次のとおりです。1。クラスター化されたインデックスは、インデックス構造にデータを保存します。これは、プライマリキーと範囲でクエリするのに適しています。 2.非クラスター化されたインデックスストアは、インデックスキー値とデータの行へのポインターであり、非プリマリーキー列クエリに適しています。

mysqlとmariadbは共存できますか mysqlとmariadbは共存できますか Apr 08, 2025 pm 02:27 PM

MySQLとMariaDBは共存できますが、注意して構成する必要があります。重要なのは、さまざまなポート番号とデータディレクトリを各データベースに割り当て、メモリ割り当てやキャッシュサイズなどのパラメーターを調整することです。接続プーリング、アプリケーションの構成、およびバージョンの違いも考慮する必要があり、落とし穴を避けるために慎重にテストして計画する必要があります。 2つのデータベースを同時に実行すると、リソースが制限されている状況でパフォーマンスの問題を引き起こす可能性があります。

MySQLユーザーとデータベースの関係 MySQLユーザーとデータベースの関係 Apr 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

さまざまなタイプのMySQLインデックス(Bツリー、ハッシュ、フルテキスト、空間)を説明します。 さまざまなタイプのMySQLインデックス(Bツリー、ハッシュ、フルテキスト、空間)を説明します。 Apr 02, 2025 pm 07:05 PM

MySQLは、Bツリー、ハッシュ、フルテキスト、および空間の4つのインデックスタイプをサポートしています。 1.B-Treeインデックスは、等しい値検索、範囲クエリ、ソートに適しています。 2。ハッシュインデックスは、等しい値検索に適していますが、範囲のクエリとソートをサポートしていません。 3.フルテキストインデックスは、フルテキスト検索に使用され、大量のテキストデータの処理に適しています。 4.空間インデックスは、地理空間データクエリに使用され、GISアプリケーションに適しています。

See all articles