MySQL - INT: 基礎ガイド
こんにちは、データベース愛好家の皆さん!今日は、MySQLの世界に飛び込み、最も基本的なデータタイプの1つである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つのカラム:id
、age
、score
を使用しています。これらのカラムはすべて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