mysql8.0.19 の基本データ型の詳細な説明

mysql8.0.19 の基本データ型の詳細な説明

MySQL 基本データ型

一般的な MySQL データ型の概要

![1036857-20170801181433755-146301178](D:\Notes\mysql\Review\1036857-20170801181433755-146301178.png)1. 数字:
 整数: tinyinit int bigint
 小数点:
 float: 桁数が短い場合は不正確 double: 桁数が長い場合は不正確 0.000001230123123123
 保存数: 0.000001230000

 小数点: (小数点を使用する場合は、小数点を使用することをお勧めします)
 正確な内部原則は文字列形式で保存することです。2. 文字列:
 char (10): 単純で粗雑、スペースを無駄にする、高速アクセス ルートは root000000 として保存されます
 varchar: 正確、省スペース、アクセス速度が遅い SQL 最適化: テーブルを作成するときは、固定長型を最初に、可変長型を最後に配置します。たとえば、性別、住所、説明情報が 255 文字を超える場合、制限を超えると、ファイル パスをデータベースに保存します。
 たとえば、写真やビデオ用のファイル サーバーを見つけて、パスまたは URL のみをデータベースに保存します。

3. 時間の種類:
 最もよく使用されるもの: datetime
 
4. 列挙型とコレクション型

数値型

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-HAIxWM9Z-1585063057990) (D:\Notes\mysql\Review\1036857-20170801181433755-146301178.png)]

1. 整数型

  • 整数型: TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
  • 機能: 年齢、レベル、ID、各種数値などを保存します。
整数型のテストはデフォルトで署名されます。mysql> create table t1(money tinyint); #テーブルを作成するときは、最後のフィールドの後にコンマを入れないでください。これは間違った書き方です。mysql> create table t1(money tinyint,);

mysql> t1 に値を挿入します(11);
クエリは正常、1 行が影響を受けました (0.28 秒)

mysql> t1 から * を選択します。

mysql> t1 に値 (-10) を挿入します。
クエリは正常、1 行が影響を受けました (0.11 秒)

mysql> t1 から * を選択します。

mysql> t1 に値 (-200) を挿入します。
クエリは正常、1 行が影響を受け、1 つの警告 (0.10 秒)

mysql> t1 から * を選択します。

データ型を設定すると制約された効果があり、その範囲内の数値のみを表現できます。符号なし数値型を作成するための記述方法は次のとおりです。
mysql> テーブル t2(id tinyint unsigned); を作成します。

2. 浮動小数点型

  • 浮動小数点型: float double
  • 機能: 給与、身長、体温、体重、身体的パラメータなどを保存します。
テストmysql> create table t3(id float(60,30)); # 60 は小数点以下の桁数の合計 + 整数桁数を表しますクエリ OK、0 行が影響を受けました (1.70 秒) # 30 は小数点以下の桁数の最大値を表しますmysql> create table t4(id double(60,30));
クエリは正常、影響を受けた行は 0 行 (0.88 秒)

mysql> create table t5(id decimal(60,30)); # 10進数が正確な値を格納できる理由は、内部的に文字列として格納されるからです。
クエリは正常、影響を受けた行は 0 行 (0.96 秒)

mysql> t3 に値を挿入します (1.111111111111111111111);
クエリは正常、1 行が影響を受けました (0.13 秒)

mysql> t4 に値を挿入します (1.111111111111111111111);
クエリは正常、1 行が影響を受けました (0.22 秒)

mysql> t5 に値を挿入します(1.111111111111111111111);
クエリは正常、1 行が影響を受けました (0.09 秒)

mysql> t3 から * を選択します。
mysql> t4 から * を選択します。
mysql> t5 から * を選択します。
1. テーブルを作成します。create table t2(f1 float(5,2),f2 float,f3 double(5,2),f4 double);

float(5,2)は小数点以下2桁を保持し、double(5,2)に丸めます。
2. データを書き込む		
t2 に値 (5.2336,5.2336,5.336,5.2336) を挿入します。
3. 表のデータを表示する	
t2 から * を選択します。
4. 書き込むデータを指定します: insert into t2(f2,f4) values(5.1783682169875975,5.1783682169875975);

テーブル名(フィールド1、フィールド3)値(値1、値3)に挿入します。

1. テーブル t3 を作成します。create table t3(f1 float, d1 double, d2 decimal(30,20), d3 decimal);
2. テーブル構造 desc t3 を表示します。
3. データを書き込む	
t3 に値 (5.1783682169875975179,5.1783682169875975179,5.1783682169875975179,5.1783682169875975179); を挿入します。

int--------長さの制約なし、最大 10 桁まで表現可能 float(m,n) m-----合計桁数 n-----10 進桁数

日付タイプ

  • タイプ: DATE、TIME、DATETIME、IMESTAMP、YEAR
  • 機能:ユーザー登録時間、記事公開時間、従業員入社時間、生年月日、有効期限などを保存します。
mysql> テーブル t6(d1 年、d2 日付、d3 日時) を作成します。
クエリは正常、影響を受けた行は 0 行 (1.75 秒)

mysql> t6 に値を挿入します (now(),now(),now());
クエリは正常、1 行が影響を受け、1 つの警告 (0.12 秒)

mysql> t6 から * を選択します。

文字列型

char と varchar のパフォーマンス比較:
    char(5)とvarchar(5)を比較します。3つの名前sb、ssb1、ssbb2を保存したいとします。
    文字:
      利点: シンプルで大雑把。データがどれだけ長くても、指定された長さ、5 x 5 に従って保存します。3 つの名前は、sb ssb1 ssbb2 のように保存され、間にスペースが入ります。データを取得するときは、5 x 5 が取得されます。シンプルで大雑把、高速です。欠点: スペースを無駄にしているようで、将来保存するデータの長さが不均一になる可能性があります。Varchar:
      varchar 型は長さが不定のデータを格納するため、より簡潔でスペースを節約できます。たとえば、上記の 3 つの名前を格納する場合は、次のようになります: sbssb1ssbb2、接続。このように格納した場合、これらの 3 つの名前をどのように取得しますか? 最初の名前を取得するのにどのくらいの長さが必要かご存知ですか? 
 
      varchar はデータを格納するときに、各データの前にヘッダーを追加します。このヘッダーは 1 ~ 2 バイトのデータで、後続のデータの長さを示します。1 バイトは 2**8=256 を表し、2 バイトは 2**16=65536 を表し、0 から 65535 までの数字を表すことができます。したがって、varchar は次のように格納されます: 1byte+sb+1byte+ssb1+1byte+ssbb2。したがって、格納が面倒で、char よりも効率が悪くなります。また、長さを取得してからデータを取得するため、取得も遅くなります。

      利点: ハードディスクのスペースを節約できます。ACSII コードの文字は 1 バイトの長さで表すことができます。ただし、char よりも必ずしも経済的というわけではありません。公式 Web サイトで提供されている表を見て、データを比較してください。保存するデータが指定したフィールド長とまったく同じである場合、varchar は実際には char よりも多くのスペースを占有します。

値 CHAR(4) ストレージが必要 VARCHAR(4) ストレージが必要
'' '' '' 4バイト '' 1バイト
'ab' 'ab ' 4バイト 'ab' 3バイト
'abcd' 'abcd' 4 バイト 'abcd' 5 バイト
'abcdefgh' 'abcd' 4 バイト 'abcd' 5 バイト
 
             デメリット: アクセス速度が遅い。InnoDB データ テーブルの場合、内部行ストレージ形式では固定長列と可変長列が区別されません (すべてのデータ行はデータ列値へのヘッダー ポインターを使用します)。したがって、本質的には、固定長 CHAR 列を使用することが、可変長 VARCHAR 列を使用することよりも必ずしも優れているわけではありません。したがって、主なパフォーマンス要因は、データ行によって使用されるストレージの合計量です。 CHAR は平均して VARCHAR よりも多くのスペースを占有するため、処理する必要があるデータ行のストレージとディスク I/O の合計量を最小限に抑えるには、VARCHAR を使用することをお勧めします。
charの使用に適しています:
	身分証明書番号、携帯電話番号、QQ 番号、ユーザー名、パスワード、銀行カード番号は、varchar の使用に適しています。
	コメント、モーメント、Weibo 1. テーブルを作成する create table t6(c1 char(1),v1 varchar(1),c2 char(8),v2 varchar(8));

2. データを書き込みます。 insert into t6 values('alexq','alexq','alexq','alexq');
3. テーブル内のデータをクエリします。select * from t6;

列挙型とコレクション型

enum: 単一選択動作 ------ 列挙型では、値のセットから 1 つの値のみを選択できます。一度に複数の値を選択することはできません。 1. テーブルの作成 create table t8(id int, name char(18), gender enum('male','female'));
2. データを書き込みます。 insert into t8 values(1,'alex','unknown'); ---------Unknown は書き込めません。 3. テーブル内のデータを照会します。 select * from t8;
4. データを書き込みます。 insert into t8 values(1,'alex','male');--------------male を書き込むことができます。 5. テーブル内のデータを照会します。 select * from t8;
2. データを書き込みます。 insert into t8 values(1,'alex','female');-------------female を書き込むことができます。 3. テーブル内のデータを照会します。 select * from t8;
セット:	 
	複数選択動作では、**組み合わせる値セット内の 1 つ以上の要素を任意に選択できます**。範囲外のコンテンツの挿入は許可されず、重複した値は自動的に削除されます。
1. テーブルを作成します。create table t9(id int,name char(18),hobby set('喫煙','飲酒','足洗い','マッサージ','パーマ'));
2. t9値にデータ挿入を書き込みます(1、「Taibai」、「パーマ、喫煙、飲酒、マッサージ」)。
3. テーブル内のデータをクエリします。select * from t8;
4. t9値にデータ挿入を書き込みます(1、「Da Zhuang」、「足を洗う、足を洗う、足を洗う、マッサージ、マッサージ、ゲームをする」)。
5. テーブル内のデータをクエリします。select * from t8;

要約する

mysql8.0.19-Basic データ型に関するこの記事はこれで終わりです。mysql8.0.19-Basic データ型に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • PostgreSQL と MySQL のデータ型の互換性の比較
  • MySQL データ型の最適化の原則
  • MySQL のデータ型とスキーマの最適化の詳細な説明
  • MyBatis JdbcType と Oracle および MySql データ型の対応の説明
  • MySQL データ型 DECIMAL の詳細な分析
  • MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明
  • MySQL入門(パート2)データベースのデータ型の詳細な説明
  • MySQL データ型 DECIMAL(N,M) における N と M の意味の詳細な説明
  • MySQL 操作: JSON データ型の操作
  • MySQL データ型の完全分析

<<:  キーフリーログインプロセスを実現するためのLinux構成の分析

>>:  Vueはページング機能を実装する

推薦する

HTMLからReactを実装する方法を教えます

ReactとはReact は、効率的で高速なユーザー インターフェイスを構築するためのシンプルな J...

Win10 64 ビットで圧縮パッケージを使用して最新の MySQL 8.0.18 をインストールするチュートリアル (画像とテキスト付き)

WIN10 64ビットに最新のMySQL8.0.18をインストールダウンロード公式サイトから最新バ...

Vue-cli4 ルーティング構成の詳細な理解

目次序文 - Vue ルーティング1. 最も基本的なルーティング構成1. router/index....

CSS3 タイムラインアニメーション

成果を達成する html <h2>CSS3 タイムライン</h2> <...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

デザイン: 意志の強いデザイナー

<br />長年の専門的なアートデザイン教育を通じて「美とは何か」を学びましたが、「美を...

MySQLプリコンパイル機能の詳細な説明

この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...

React のネストされたコンポーネントの構築順序

目次Reactの公式サイトではライフサイクルの説明を見ることができます次に、ネストされたコンポーネン...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

Linux でバックグラウンド タスクを実行するために nohup と screen を使用する例と違いの簡単な分析

SSH ターミナル (putty、xshell など) を使用して Linux サーバーに接続し、時...

レスポンシブなカードホバー効果を実現するための HTML+CSS

目次成し遂げる:要約:言うことはあまりありませんが、まずは効果を見てみましょう。 カードホバー、レス...

jsはショッピングカートの加算と減算、価格計算機能を実現します

この記事では、ショッピングカートの増減と価格計算を実現するためのjsの具体的なコードを紹介します。具...

Vue3 の動的コンポーネントはどのように機能しますか?

目次1. コンポーネントの登録1.1 グローバル登録1.2 グローバルコンポーネントの登録プロセス1...