MySQLのint(11)型カラムを使いこなすためのチュートリアル
MySQLのint(11)型カラムのサイズ(バイト数)
MySQLのint(11)
型カラムのサイズは4バイトです。これは32ビット整数と同じで、-2,147,483,648から2,147,483,647までの範囲の値を格納できます。
詳細
int
型は、符号付き整数型です。(11)
は、表示幅を表します。これは、数値がどのように表示されるかを決定します。- 例えば、
int(11)
型カラムに1234567890
という値を格納すると、表示幅が11なので、01234567890
のように左側にゼロパディングされます。 - 表示幅は、データの格納サイズには影響しません。
- 例えば、
int(11)
型カラムは、4バイトのメモリを使用します。- 4バイトを超える値を格納したい場合は、
bigint
型などの別のデータ型を使用する必要があります。
補足
- MySQLのバージョンによっては、
int
型カラムのサイズが異なる場合があります。 int
型カラムにNULL
値を格納することは可能です。
例
CREATE TABLE my_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) NULL,
PRIMARY KEY (id)
);
上記の例では、my_table
テーブルに3つのカラムが作成されます。
id
カラムは、int(11)
型で、NOT NULL
制約とAUTO_INCREMENT
属性を持つ。これは、このカラムが主キーであり、自動的に1ずつ増加することを意味します。name
カラムは、VARCHAR(255)
型で、NOT NULL
制約を持つ。これは、このカラムが最大255文字の文字列を格納できることを意味します。
import mysql.connector
# データベースへの接続
connection = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="my_database"
)
# カーソルの作成
cursor = connection.cursor()
# データの挿入
sql = "INSERT INTO my_table (name, age) VALUES (%s, %s)"
values = ("John Doe", 30)
cursor.execute(sql, values)
# データの更新
sql = "UPDATE my_table SET age = %s WHERE id = %s"
values = (31, 1)
cursor.execute(sql, values)
# データの取得
sql = "SELECT * FROM my_table"
cursor.execute(sql)
results = cursor.fetchall()
# 結果の表示
for row in results:
print(row)
# カーソルのクローズ
cursor.close()
# データベースへの接続の切断
connection.close()
上記のコードは、my_database
データベースのmy_table
テーブルにデータを挿入、更新、取得する例です。
name
カラムはVARCHAR(255)
型、age
カラムはint(11)
型です。id
カラムは主キーであり、自動的に1ずつ増加します。
実行結果
(1, 'John Doe', 31)
- 上記のコードは、Pythonの
mysql.connector
モジュールを使用して、MySQLデータベースに接続しています。 - 他のプログラミング言語を使用する場合は、その言語に対応したデータベース接続モジュールを使用する必要があります。
- デフォルト値の設定
CREATE TABLE my_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) DEFAULT 18,
PRIMARY KEY (id)
);
上記の例では、age
カラムのデフォルト値を18に設定しています。
- CHECK制約の設定
CREATE TABLE my_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) CHECK (age >= 18 AND age <= 100),
PRIMARY KEY (id)
);
上記の例では、age
カラムの値が18から100までの範囲であることをCHECK制約でチェックしています。
- UNIQUE制約の設定
CREATE TABLE my_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) UNIQUE,
PRIMARY KEY (id)
);
上記の例では、age
カラムにUNIQUE制約を設定しています。これは、age
カラムの値がすべてユニークである必要があることを意味します。
mysql types int