1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQLのデータ型について

Last updated at Posted at 2020-12-31

はじめに

今回はSQLのデータ型の種類について改めて学習したので
こちらも忘れない様アウトプットとして記していこうと思います。

主な種類

  • 整数

  • 実数

  • 文字列

  • 真偽値

  • 日時

整数

データ型  扱える数の幅
TINYINT -128 ~ +127
INT -21億 ~ 21億
SMALLINT -83万 ~ 83万
MIDINT -83万 ~ 83万
BIGINT -922京 ~ 922京

UNSIGNEDは整数のみを扱い、扱える範囲が大きくなります。

データ型  扱える数の幅 
TINYINT UNSIGNED 0 ~ 255
INT UNSIGNED 0 ~ 42億
BIGINT UNSIGNED 0 ~ 1844京 

小数点を含む実数

データ型
DECIMAL 固定小数点 
FLOAT 不動小数点
DOUBLE 不動小数点(高精度)

文字列

データ型 
CHAR(固定長) 0 ~ 255文字
VARCHAR(可変長) 0 ~ 65535文字 
TEXT それ以上
ENUM  特定の文字列から1つ 
SET 特定の文字列から複数 

固定長とは! 入るデータの長さが決まっていること
  (商品コードや郵便番号の文字列を固定のものを格納するときに使われる)

可変長とは! 入るデータが決まっていないこと
  (氏名や書籍名といった文字列を格納するときに使われる)

ENUMの書き方はこんな感じ

特定の文字列の中から一つだけを格納します。

DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
  message VARCHAR(140), 
  likes INT,
  category ENUM('Gadget','Game', 'Business')
);

INSERT INTO posts (message, likes, category) VALUES 
    ('Thanks', 12, 'Gadget'),
    ('Arigato', 4, 'Game'),
    ('Merci', 4,'Business');

SELECT * FROM posts;

index番号を指定してあげても指定できます。

INSERT INTO posts (message, likes, category) VALUES 
  ('Thanks', 12, 1),  
  ('Arigato', 4, 2),  
  ('Merci', 4, 3);

SELECT * FROM posts;


-- この様な感じで出力される

+---------+-------+----------+
| message | likes | category |
+---------+-------+----------+
| Thanks  |    12 | Gadget   |
| Arigato |     4 | Game     |
| Merci   |     4 | Business |
+---------+-------+----------+

SETはこんな感じで使う

複数を格納したい時に使用します。
書き方↓ (テーブルの作り方は上の書き方と一緒です。)


  categories SET('Gadget', 'Game', 'Business')

登録

INSERT INTO posts (message, likes, categories) VALUES 
  ('Tnanks', 12, 'Gadget,Game'),
  ('Arigato', 4, 'Business'),
  ('Merci', 4, 'Business,Gadget');

値を数値で管理しているのでそちらを指定してあげても指定できます。
(2の◯乗で管理されている)= 2^0, 2^1, 2^2, ... 1, 2, 4, ...

INSERT INTO posts (message, likes, categories) VALUES 
  ('Tnanks', 12, 3),  -- 1 + 2    --Gadget,Game
  ('Arigato', 4, 4),  -- 4        --Business
  ('Merci', 4, 5);    -- 1 + 4    --Gadget,Business 

真偽値

データ型 
BOOL TRUE / FALSE
TINYINT(1) 1 / 0

「TRUE」か「FALSE」、または「0」か「1」で登録します。

日時

 データ型
DATE 日付
TIME 時間
DATETIME 日時
  • 「'2020-10-11 15:32:05'」(時間を指定)

  • 「'2020-10-12'」(記入していない時間は00で出力される)

  • 「NOW()」(現在の日時)という感じで登録します。

この様に出力されます。

+---------+-------+----------+---------------------+
| message | likes | is_draft | created             |
+---------+-------+----------+---------------------+
| Tnanks  |    12 |        1 | 2020-10-11 15:32:05 |
| Arigato |     4 |        0 | 2020-10-12 00:00:00 |
| Merci   |     4 |        0 | 2020-12-31 14:13:42 |
+---------+-------+----------+---------------------+


まとめ

今回ははじめとしてよく使うであろうデータ型の確認でした。

まだたくさんあると思いますので引き続き学習していきます。

参考

【初心者向け】SQLのデータ型を理解しよう!利用方法も解説!

SQLserverテーブル作成時のデータ型についての備忘録

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?