PHPでMySQLデータベースを作成
- 前のページ MySQL Connect
- 次のページ MySQL Insert
データベースには1つ以上のテーブルが含まれています。
データベースの作成
CREATE DATABASE文はMySQLでデータベースを作成するために使用されます。
文法
CREATE DATABASE database_name
上記の文を実行するために、PHPがmysql_query()関数を使用する必要があります。この関数はMySQL接続にクエリやコマンドを送信するために使用されます。
例
以下の例では、"my_db"という名前のデータベースを作成しています:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('接続できません: ' . mysql_error()); } if (mysql_query("CREATE DATABASE my_db",$con)) { echo "データベース作成成功"; } else { echo "データベース作成エラー: " . mysql_error(); } mysql_close($con); ?>
テーブルの作成
CREATE TABLEはMySQLでデータベーステーブルを作成するために使用されます。
文法
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, ....... )
このコマンドを実行するために、mysql_query()関数にCREATE TABLE文を追加する必要があります。
例
以下の例では、"Persons"という名前のテーブルを作成する方法を示しています。このテーブルには3つの列があり、列名は"FirstName"、"LastName"、および"Age"です:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('接続できません: ' . mysql_error()); } // データベースの作成 if (mysql_query("CREATE DATABASE my_db",$con)) { echo "データベース作成成功"; } else { echo "データベース作成エラー: " . mysql_error(); } // my_db データベース内にテーブルを作成 mysql_select_db("my_db", $con); $sql = "CREATE TABLE Persons ( FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con); mysql_close($con); ?>
重要事項:テーブルを作成する前に、まずデータベースを選択する必要があります。mysql_select_db()関数を使用してデータベースを選択します。
注記:varchar型のデータベースフィールドを作成する場合、必ずそのフィールドの最大長を指定する必要があります。例:varchar(15)
MySQL データ型
以下に使用できるさまざまな MySQL データ型:
数値データ型 | 説明 |
---|---|
|
整数のみをサポートしています。sizeパラメータで数値の最大値を指定します。 |
|
小数を含む数値をサポートしています。 sizeパラメータで数値の最大値を指定します。dパラメータで小数点の右側の数値の最大値を指定します。 |
テキストデータ型 | 説明 |
---|---|
char(size) |
固定長文字列をサポートしています。(アルファベット、数字および特殊記号を含むことができます)。 sizeパラメータで固定長を指定します。 |
varchar(size) |
可変長文字列をサポートしています。(アルファベット、数字および特殊記号を含むことができます)。 sizeパラメータで最大長を指定します。 |
tinytext | 可変長文字列をサポートしています。最大長は 255 文字です。 |
|
可変長文字列をサポートしています。最大長は 65535 文字です。 |
|
可変長文字列をサポートしています。最大長は 16777215 文字です。 |
|
可変長文字列をサポートしています。最大長は 4294967295 文字です。 |
日付データ型 | 説明 |
---|---|
|
日付または時間をサポート |
その他のデータ型 | 説明 |
---|---|
enum(value1,value2,ect) | ENUM は ENUMERATED リストの略です。括弧内に最大 65535 個の値を入れることができます。 |
set | SET は ENUM に似ていますが、SET は最大 64 個のリスト項目を持ち、複数の choice を保持できます |
主キーと自動増分フィールド
各テーブルには主キーフィールドが一つなければなりません。
主キーはテーブル内の行を一意に識別するために使用されます。テーブル内の各主キー値は一意でなければなりません。さらに、主キーフィールドは空であってはなりません。これは、データベースエンジンがレコードを特定するために値が必要だからです。
主キーフィールドは常に索引に記録される必要があります。このルールには例外はありません。主キーフィールドに対して索引を設定する必要があります。これにより、データベースエンジンが迅速にキー値を持つ行を特定できます。
以下の例では、personID フィールドを主キーフィールドとして設定しています。主キーフィールドは通常 ID 号として使用され、AUTO_INCREMENT が設定されています。AUTO_INCREMENT は新しいレコードが追加されるたびに、そのフィールドの値を順次増加させます。主キーフィールドが空でないことを確保するために、NOT NULL 設定を追加する必要があります。
例
$sql = "CREATE TABLE Persons ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con);
- 前のページ MySQL Connect
- 次のページ MySQL Insert