PHPはMySQLテーブルを作成します
PHP Create MySQL table
データテーブルは一意の名前を持ち、行と列で構(gòu)成されます。
MySQLiとPDOを使用したMySQLテーブルの作成
CREATE TABLEステートメントは、MySQLテーブルの作成に使用されます。
CREATE TABLE tbl_name (col_name column_delivery);
テーブルを作成するには、少なくとも 1 つのフィールド定義が必要です。フィールド名と型はスペースで區(qū)切られ、複數(shù)のフィールドはカンマで區(qū)切られます
データベースの作成後、次のコマンドを?qū)g行できます。次のステートメントを?qū)g行してテーブル作成ステートメントを取得します
SHOW CREATE TABLE tbl_name;
、または次のステートメントを?qū)g行してテーブルの構(gòu)造を出力します
DESC tbl_name;
CREATE TABLE my_tbl (
age INT,
name VARCHAR( 100)
);
上記のステートメントは、my_tbl という名前のテーブルを作成します。テーブルには 2 つのフィールドがあり、1 つは age (age) という名前で、もう 1 つのフィールドは name (name) という名前です。最大長は 100 文字の文字列です
テーブル作成ステートメントまたはテーブル構(gòu)造を表示するには、SHOW または DESC を使用してください
「id」、「firstname」、「」の 5 つの列を持つ「MyGuests」という名前のテーブルを作成します。 lastname" 、 "email" および "reg_date":
CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )
上記の表に関する注:
データ型は、列に格納できるデータのタイプを指定します。完全なデータ型については、データ型リファレンス マニュアルを參照してください。
データ型を設(shè)定した後、各列に他のオプションを指定できます:
· NOT NULL - 各行には値が含まれている必要があり (空にすることはできません)、NULL 値は許可されません。 L · デフォルト値 - データテーブル內(nèi)の各レコードに一意の識別子を設(shè)定します。 通常、列の PRIMARY KEY は AUTO_INCREMENT とともに使用される ID 値に設(shè)定されます。
すべてのテーブルには主キー (この列は「id」列) が必要であり、主キーには一意の値が含まれている必要があります。
次の例は、PHP でテーブルを作成する方法を示しています:
例 (MySQLi - オブジェクト指向)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 創(chuàng)建連接 $conn = new mysqli($servername, $username, $password, $dbname); // 檢測連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // 使用 sql 創(chuàng)建數(shù)據(jù)表 $sql = "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table MyGuests created successfully"; } else { echo "創(chuàng)建數(shù)據(jù)表錯誤: " . $conn->error; } $conn->close(); ?>
例 (MySQLi - プロシージャ指向)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 檢測連接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } // 使用 sql 創(chuàng)建數(shù)據(jù)表 $sql = "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; if (mysqli_query($conn, $sql)) { echo "數(shù)據(jù)表 MyGuests 創(chuàng)建成功"; } else { echo "創(chuàng)建數(shù)據(jù)表錯誤: " . mysqli_error($conn); } mysqli_close($conn); ?>
例 (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 設(shè)置 PDO 錯誤模式,用于拋出異常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 使用 sql 創(chuàng)建數(shù)據(jù)表 $sql = "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; // 使用 exec() ,沒有結(jié)果返回 $conn->exec($sql); echo "數(shù)據(jù)表 MyGuests 創(chuàng)建成功"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
ちなみに、その他についても言及します関連するテーブル操作:
テーブルの削除:
DROP TABLE tbl_name;
テーブル名の変更:
ALTER TABLE tbl_name RENAME new_tbl_name;
フィールドの追加:
ALTER TABLE tbl_name ADD col_name column_Heading
追加されたフィールドはデフォルト すべての列の最後にある最後の列を最初の列に変更したい場合は、次のように記述できます
ALTER TABLE tbl_name ADD col_name column_dictionary FIRST;
特定の場所を指定したい場合は、次のように記述できます
ALTER TABLE tbl_name ADD col_name column_defin AFTER other_col_name;
フィールドを削除します:
ALTER TABLE tbl_name DROP col_name;
フィールド屬性を変更します:
ALTER TABLE tbl_name MODIFY col_name column_defin;
フィールド名と屬性を変更します:
ALTER TABLE tbl_name CHANGEcol_name_fromcol_name_tocolumn_definition;
modify はフィールド定義のみを変更できますが、change はフィールド名を変更できます