MySQL - INT: 基礎ガイド

こんにちは、データベース愛好家の皆さん!今日は、MySQLの世界に飛び込み、最も基本的なデータタイプの1つであるINTに焦点を当てます。プログラミングの初心者でも心配しないでください。私はこれまでに多くの学生を指導してきましたように、ステップバイステップでガイドします。では、袖をまくって始めましょう!

MySQL - INT

MySQLのINTデータタイプ

MySQLのINTデータタイプは、数値データタイプの家族の中で強くて信頼できる働き者です。デシマルポイントなしの整数を保存するために使用されます。これを、-2,147,483,648から2,147,483,647までの数を保持できる箱と考えてください。それは多くの数です!

簡単なテーブルを作成してINTを実践してみましょう:

CREATE TABLE my_first_table (
id INT,
age INT,
score INT
);

この例では、my_first_tableという名前のテーブルを作成し、3つのカラム:idagescoreを使用しています。これらのカラムはすべてINTデータタイプです。

さあ、データを追加してみましょう:

INSERT INTO my_first_table (id, age, score) VALUES (1, 25, 95);
INSERT INTO my_first_table (id, age, score) VALUES (2, 30, 88);
INSERT INTO my_first_table (id, age, score) VALUES (3, 22, 100);

ここでは、テーブルに3行のデータを追加しています。それぞれのINSERT文は、id、age、scoreを持つ新しい人を追加します。

MySQL INTの自動インクリメント

INTの素晴らしい機能の1つは、自動インクリメントです。これは、テーブルの各行に対してユニークな識別子を生成したいときに非常に便利です。その動作を説明しましょう:

CREATE TABLE auto_increment_example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);

INSERT INTO auto_increment_example (name) VALUES ('Alice');
INSERT INTO auto_increment_example (name) VALUES ('Bob');
INSERT INTO auto_increment_example (name) VALUES ('Charlie');

この例では、idカラムは自動的にAliceに1、Bobに2、Charlieに3を割り当てます。まるで助手的なエントリーをナンバリングしてくれるようです!

MySQL INT UN&SIGNED

時々、正の数だけが必要な場合があります。その場合、UN&SIGNEDが便利です。これはINTが保持できる最大値を効果的に2倍にし、0から4,294,967,295までにします。

CREATE TABLE positive_numbers (
id INT UNSIGNED,
quantity INT UNSIGNED
);

INSERT INTO positive_numbers (id, quantity) VALUES (1, 100);
INSERT INTO positive_numbers (id, quantity) VALUES (2, 4294967295);

このテーブルは正の数のみを受け入れます。数量や年齢のようなものに最適です。

MySQL INTの表示幅属性

表示幅属性はINTが保存できる値の範囲に影響を与えるものではありませんが、データを表示する際に見た目をより魅力的にすることができます。その動作を説明しましょう:

CREATE TABLE display_width_example (
id INT(4),
code INT(6) ZEROFILL
);

INSERT INTO display_width_example (id, code) VALUES (1, 123);
INSERT INTO display_width_example (id, code) VALUES (1000, 456789);

データを取得する際に、codeはそれぞれ000123と456789として表示されます。まるで先頭に0を追加してすべての数を同じ幅にするようなものです。

MySQL INTのZEROFILL属性

ZEROFILLは表示幅の最好的な友達です。指定された幅に達するまで自動的に0でパディングします。その動作を見てみましょう:

CREATE TABLE zerofill_example (
id INT(5) ZEROFILL
);

INSERT INTO zerofill_example (id) VALUES (1);
INSERT INTO zerofill_example (id) VALUES (100);
INSERT INTO zerofill_example (id) VALUES (10000);

データを取得する際に、00001、00100、10000として表示されます。一貫した見た目のコードやIDを作成するのに最適です。

クライアントプログラムを使用したINTデータタイプ

今までの知識をクライアントプログラムで実践してみましょう。ここではMySQLのコマンドラインクライアントを使用する例を示しますが、他のMySQLクライアントにも同様の原則が適用されます。

-- MySQLに接続
mysql -u your_username -p

-- データベースを作成
CREATE DATABASE int_examples;

-- データベースを使用
USE int_examples;

-- 異なるINTタイプを使用したテーブルを作成
CREATE TABLE int_showcase (
id INT AUTO_INCREMENT PRIMARY KEY,
regular_int INT,
unsigned_int INT UNSIGNED,
display_width_int INT(4),
zerofill_int INT(6) ZEROFILL
);

-- データを追加
INSERT INTO int_showcase (regular_int, unsigned_int, display_width_int, zerofill_int)
VALUES (-1000, 1000, 123, 123);

INSERT INTO int_showcase (regular_int, unsigned_int, display_width_int, zerofill_int)
VALUES (2000000, 3000000, 45678, 45678);

-- データを取得
SELECT * FROM int_showcase;

このコードを実行すると、各INTタイプが異なる動作をしていることがわかります。regular_intは負の値を保持できます。unsigned_intは正の値のみを保持します。display_width_intは通常の表示であり、zerofill_intは先頭に0を追加します。

以下に、私たちがカバーしたINTのバリエーションをまとめた表を示します:

INTタイプ 範囲 使用例
INT -2,147,483,648から2,147,483,647 一般的な整数の保存
INT UN&SIGNED 0から4,294,967,295 正の整数のみ
INT AUTO_INCREMENT INTと同じだが自動的に増加 プライマリキー、ユニークな識別子
INT(N) INTと同じだが表示幅に影響 出力のフォーマット
INT(N) ZEROFILL INTと同じだが0でパディング 一貫した幅のコード

そして、皆さん!私たちはMySQL INTの世界を旅しました。基本的なことから便利なトリックまで。MySQLをマスターするには練習が必要です。ですから、これらの概念を試してみましょう。あなたがコードサークルのINTエキスパートになるかもしれません!快乐なクエリを!

Credits: Image by storyset