【MySQL】MySQLのデータ型

目次

1. tinyint 型

2.ビットタイプ

3. 10進数型

1.フロート型

2. 10進数型

3.文字列型

1. char型 

2. varchar 型

4.日付型

5.列挙型とセット

1. 列挙型とコレクション型の構文

2. 列挙型とコレクション型の検索

6. find_in_set関数

最後に次のように書きます。


1. tinyint 型

tinyint 型を例に、int 系列の型を紹介します。

1) まず簡単なテーブルを作成しましょう。

create table if not exists t1(
    num tinyint
);

2) 次に、Sanlian を直接観察してこのテーブルを確認します。

アクションには次のものが含まれます。

desc t1;
show tables;
show create table t1;

3) 次は挿入操作です。

tinyint の値の範囲は -128 ~ 127 です。ここでいくつかの値を挿入してみましょう。

insert into t1 values (-128);
insert into t1 values (127);
insert into t1 values (0);
insert into t1 values (1);
insert into t1 values (-1);

次に、挿入したデータを見てみましょう。

select * from t1;

間違った値を挿入した場合はどうなるでしょうか。

MySQL はエラーを直接報告し、挿入できなくなります。

次に、別のテーブルを作成し、符号なし型を作成します。

create table if not exists t1(
    num tinyint unsigned
);

データ範囲は 0 ~ 255 です。

したがって、負の数値を挿入すると、間違いなくエラーが報告されます。

2.ビットタイプ

1) 古いルール、または表から開始します。

create table if not exists t3(
    id int,
    online bit(1)
);

2) ビューテーブル:

3) データを挿入します。

insert into t3 (id, online) values (123, 1);
insert into t3 (id, online) values (123, 2);

 2 を挿入すると、1 ビットしかサポートされないため、エラーが報告されます。

彼の値を変更できます。

alter table t3 modify online bit(10);

ここで変更が成功したことがわかります。

テーブルを作成するときにビット サイズを含めない場合、デフォルトは 1 になります。

3. 10進数型

1.フロート型

 1) いつものように、テーブルの作成から学習を開始します。

create table if not exists t5(
    id int,
    salary float(4, 2)
);

2) 表を見てください。

3) データを挿入してみます。

insert into t5 (id, salary) values (1, 99.99);
insert into t5 (id, salary) values (1, 199.99);

float 型のかっこ内の最初の桁は桁数です。4 を選択したため、最大は 4 桁になります。

2 番目は彼の精度です。2 を選択したため、小数点以下の桁は最大 2 になります。 

ここで、精度には 2 桁が必要であるため、整数部分は 2 桁のみであることに注意してください。

ここにはもう 1 つの不思議な現象があります。つまり、精度部分は四捨五入に従って計算されます。

したがって、99.994 ではそのような数値を挿入できます。

テーブルを作成するときに、float 型の後に unsigned を追加して、符号なしにすることもできます。          

デフォルトで使用される float を自分で設定した場合、精度がある程度失われます。(7桁程度)

2. 10進数型

使い方はフロート型と全く同じです。

しかし、彼にはフロートに比べて独特の利点があるので、ここではそれを言っておきます。

float が比較的大きな数値を格納する場合、精度が失われるという問題が発生します。

しかし、10 進数が格納するものは、それが何であるかということです。

3.文字列型

1. char型 

1) テーブルを作成する

create table if not exists t8(
    id int,
    name char(2)
);

2) データを挿入します。

char (2) は、最長の文字長が 2 であることを意味することがわかります。

注: 最大文字数は 255 のみです。

2. varchar 型

1) テーブルを作成する

create table if not exists t7(
    id int,
    name varchar(6)
);

2) 挿入

挿入できる最大長は 6 であることがわかります。varchar は 21845 までサポートすることに注意してください。

char と varchar は同じように見えますが、両者の違いは何ですか?

char は固定長 (最初にオープンされる)、varchar は可変長 (どれだけ使用されるか、どれだけオープンされるか)

4.日付型

一般的な日付タイプには、日付、日時、タイムスタンプの 3 つがあります。

1) テーブルを作成する

create table if not exists t9(
    t1 date,
    t2 datetime,
    t3 timestamp
);

2) ビューテーブル

タイムスタンプにはデフォルト値があり、現在のタイムスタンプにする必要があります。

3) 値を挿入する

これが正常に挿入されたことがわかります

4) 挿入結果を表示する

 t3 は現在時刻を自動的に表示します。

5.列挙型とセット

1. 列挙型とコレクション型の構文

enum 列挙値は無線タイプです

セットコレクションタイプは複数選択タイプです

1) テーブルを作成する

create table if not exists t10(
    username varchar(20),
    sex enum('男', '女'),
    hobby set('写代码', '睡觉', '打游戏')
);

2) ビューテーブル

3) 値を挿入 

それから:

挿入した値が表示されます。

ここで注意すべき点は、今後セックスの体位で挿入するときは、彼が指定した列挙値のみを挿入でき、列挙値は 1 から始まるため、私たちが挿入した値を表す列挙値を挿入することもできます。挿入など 1 男性に挿入すること。 

コレクションに複数の値を挿入できるかどうかを見てみましょう。

複数の値を挿入できることがわかります。ここで注意すべき点は、何も挿入されない場合は NULL 、0 が挿入される場合は空の文字列になりますが、コレクション内の数値は列挙内の数値とは異なります。このコレクションではバイナリ 000 として、最下位ビットが最初の値を表すため、1 を挿入すると 001 となり、コードを挿入して記述します。

挿入が 3 の場合、挿入はコードを記述してスリープ状態になっている必要があります。

これが実際に当てはまることがわかります。 

概要: 列挙は添字であり、コレクションはビットマップです。

2. 列挙型とコレクション型の検索

 まず列挙値に従って検索してみましょう。

select * from t10 where sex=1;
select * from t10 where sex=2;

コレクションは実際には次のように見つかります。

select * from t10 where hobby=1;
select * from t10 where hobby=3;
select * from t10 where hobby=7;

では、たとえば、すべての趣味と睡眠をフィルタリングして見つけたい場合、どうやって見つければよいのでしょうか?

上記の検索は厳密に一致するため、より柔軟な方法はあるでしょうか?

6. find_in_set関数

実際、関数は MySQL で実行できます。

find_in_set は、要素が対応するセット内にあるかどうかを検索することしかできません。

これにより、次のことが可能になります。

select * from t10 where find_in_set('睡觉', hobby);

 無事に見つかりました。

最後に次のように書きます。

以上が今回の記事の内容となります、読んでいただきありがとうございます。

何かを得たと感じたら、ブロガーに「いいね! 」を与えることができます。

記事の内容に抜けや間違いがある場合は、ブロガーにプライベートメッセージを送信するか、コメントエリアで指摘してください〜

おすすめ

転載: blog.csdn.net/Locky136/article/details/132135402