MariaDB入門 - MariaDBをPerlシステム開発で使う

create table - テーブルを作成する

テーブルを作成するには「create table」構文を使います。

create table テーブル名 (
  フィールド定義1,
  フィールド定義2,
  フィールド定義n
) オプション;

本の分類「book_category」テーブルを「create table」構文で作成するサンプルです。

create table book_category (
  id int primary key auto_increment,
  name varchar(150) not null default ''
) engine=InnoDB charset=utf8mb4;

テーブルを作成するときの注意点を教えてください

テーブルを作成するときの注意点です。

データベースのテーブル名とフィールド名の命名規約

実際にWebサービス開発を行うときに、データベースを利用することが多いので、Mojoliciousスタートアップに、データベースのテーブル名とフィールド名の命名規約のトピックを作りました。

データベースのテーブル名とフィールド名の命名規約

ポータブルな「create table」にするためには?

MariaDBには、データベースエンジンという概念がありますが、Webサービス開発で利用するデータベースエンジンは、InnoDBになります。InnoDBは、トランザクションをサポートしたデータベースエンジンです。これをオプションで指定します。

MariaDBでは、正しくUTF-8を表現する文字コードの設定は「utf8mb4」です。「utf8」は、3バイトしかなく、4バイトを必要とするUnicodeを表現できません。4バイト表現できる「utf8mb4」を指定します。古いMariaDBでは、utf8mb4がサポートされていないですが、MariaDB入門では、utf8mb4がサポートされているバージョン以降のMariaDBを前提とします。

「not null」制約を使った場合は、defaultの指定を行います。MariaDBの設定しだいで、defaultが設定されていない場合に、テーブルの作成が失敗するので、これを回避するためです。