mysql は漢字にどの型を使用しますか?
在mysql中,汉字可以用CHAR和VARCHAR类型。CHAR和VARCHAR类型声明的长度表示用户想要保存的最大字符数。“CHAR(M)”为固定长度字符串,在定义时指定字符串列长;M表示列的长度,范围是“0~255”个字符。“VARCHAR(M)”是长度可变的字符串,M表示最大列的长度,范围是“0~65535”。
本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
mysql定义汉字存储类型
mysql手册上说:
在MySQL 5.x版本中,CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。GBK内码的情况下,一个汉字占两个字节,但是在UTF-8内码的情况下,一个汉字需要占用三个字节。
什么是字符?
百度百科里说:
字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节,2个数字为一个字节。例如在VB中求字符串的长度时,len(str(1234))=4,len(1234)=2。
字符是可使用多种不同字符方案或代码页来表示的抽象实体。例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列。公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。
针对公共语言运行库的应用程序使用编码将字符表式形式从本机字符方案映射至其他方案。应用程序使用解码将字符从非本机方案映射至本机方案。
电脑和通讯设备会使用字符编码的方式来表达字符。意思是指,会将一个字符指定给某个东西。传统上,是代表整数量的位元序列,如此,则可透过网络来传输,同时亦便于储存。两个常用的例子是ASCII和用于统一码的UTF-8。根据谷歌的统计,UTF-8是目前最常用于网页的编码方式。[1]相较于大部分的字符编码把字符对应到数字或位元串,摩斯密码则是使用不定长度的电子脉冲的序列来表现字符。
什么是字节?
字节,英文名称是Byte。Byte是Binary Term的缩写。一个字节代表八个比特(bit)。它是通常被作为计算机信息计量单位,不论被存储数据的类型为何。它也是程序设计语言里不可缺少的基本数据类型——整数。
Byte(字节)可被缩写成B,例如MB表示Megabyte;Bit(比特)可被缩写成b,例如Mb表示Megabit。
那么如果我们想定义最大能存储10个汉字的字段,该怎么定义呢?
有了上面的说明,应该很明了了char(10)或者varchar(10)。我们来验证一下:
CREATE TABLE `t1` ( `str` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
向表中插入下列数据:
insert into `t1`(`str`) values ('一二三四五六七八九十'); insert into `t1`(`str`) values ('一二三四五六七八九十十一'); insert into `t1`(`str`) values ('abcdefghijklmnopqrst'); insert into `t1`(`str`) values ('1234567890123456');
結果を確認してみましょう:
これにより、上記の内容が確認でき、定義された範囲を超えた場合、mysql は自動的にそれを切り捨てます。申請時に注意したこと。
CHAR 型と VARCHAR 型
CHAR(M) は固定長文字列であり、文字列の列の長さは定義時に指定します。保存すると、指定された長さまで右側にスペースが埋め込まれます。 M は列の長さを表し、範囲は 0 ~ 255 文字です。
たとえば、CHAR(4) は、最大 4 文字を含む固定長の文字列列を定義します。 CHAR 値を取得すると、末尾のスペースが削除されます。
VARCHAR(M) は可変長文字列で、M は最大列の長さを表し、M の範囲は 0 ~ 65535 です。 VARCHAR の実際の最大長は、最も長い行のサイズと使用される文字セットによって決まりますが、実際に占有されるスペースは、文字列の実際の長さに 1 を加えたものになります。
たとえば、VARCHAR(50) は、最大長 50 の文字列を定義します。挿入された文字列が 10 文字しかない場合、実際に格納される文字列は 10 文字と文字列の終わりの文字になります。 VARCHAR の末尾のスペースは、値の保存および取得時に保持されます。
[例] 次の表に示すように、次の例では、CHAR と VARCHAR の違いを示すために、CHAR(4) 列と VARCHAR(4) 列に異なる文字列を保存します。
CHAR(4) | ストレージ要件 | VARCHAR(4) | ストレージ要件 | |
---|---|---|---|---|
' ' | 4 バイト | '' | 1 ワード セクション | |
'ab' | ##'ab '4 バイト | ' | ab'3 バイト | |
abc' | 'abc '4 バイト | ' | abc'4 バイト | |
abcd' | 'abcd'4 バイト | ' | abcd' 5 バイト | |
abcdef' | 'abcd'4 バイト | ' | abcd'5 バイト |
以上がmysql は漢字にどの型を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
