Mysqli-create-tables

提供:Dev Guides
移動先:案内検索

MySQLi-テーブルの作成

テーブル作成コマンドが必要です-

  • テーブルの名前
  • フィールドの名前
  • 各フィールドの定義

構文

MySQLiテーブルを作成する一般的なSQL構文は次のとおりです-

CREATE TABLE table_name (column_name column_type);

ここで、 TUTORIALS データベースに次のテーブルを作成します。

CREATE TABLE tutorials_inf(
   id INT AUTO_INCREMENT,
   name VARCHAR(20) NOT NULL,
   primary key (id),
);

ここで説明が必要な項目はほとんどありません-

  • このフィールドをNULLにしたくないため、フィールド属性 NOT NULL が使用されています。 したがって、ユーザーがNULL値を持つレコードを作成しようとすると、MySQLiはエラーを発生させます。
  • フィールド属性 AUTO_INCREMENT は、MySQLiにidフィールドに次に利用可能な番号を追加するよう指示します。
  • キーワード PRIMARY KEY は、列を主キーとして定義するために使用されます。 複数の列をコンマで区切って使用して、主キーを定義できます。

コマンドプロンプトからのテーブルの作成

これは、mysql>プロンプトからMySQLiテーブルを簡単に作成できます。 SQLコマンド CREATE TABLE を使用して、テーブルを作成します。

以下は、 tutorials_tbl を作成する例です-

root@host# mysql -u root -p
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> CREATE TABLE tutorials_inf(
   id INT AUTO_INCREMENT,name VARCHAR(20) NOT NULL,primary key (id));
Query OK, 0 rows affected (0.16 sec)

mysql>

-MySQLiは、SQLコマンドの最後にセミコロン(;)を指定するまでコマンドを終了しません。

PHPスクリプトを使用したテーブルの作成

既存のデータベースに新しいテーブルを作成するには、PHP関数* mysqli_query()*を使用する必要があります。 適切なSQLコマンドで2番目の引数を渡して、テーブルを作成します。

PHPスクリプトを使用してテーブルを作成する例を次に示します-

<html>
   <head>
      <title>Creating MySQLi Tables</title>
   </head>

   <body>
      <?php
         $host = 'localhost:3306';
         $user = 'root';
         $pass = '<Password Here>';
         $dbname = 'TUTORIALS';
         $conn = mysqli_connect($host, $user, $pass,$dbname);

         if(!$conn){
            die('Could not connect: '.mysqli_connect_error());
         }
         echo 'Connected successfully<br/>';

         $sql = "create table tutorials_inf(
            id INT AUTO_INCREMENT,name VARCHAR(20) NOT NULL,primary key (id))";

         if(mysqli_query($conn, $sql)){
         echo "Table created successfully";
         } else {
            echo "Table is not created successfully ";
         }
         mysqli_close($conn);
      ?>
   </body>
</html>

サンプル出力は次のようになります-

Connected successfully
Table created successfully