【2026年9月最新】MySQLでデータベースを作る方法|CREATE DATABASEからテーブル作成・データ登録まで
「MySQLでデータベースを作りたいけど、どのコマンドから始めればいいか分からない」——この記事にたどり着いたあなたは、おそらくそう感じているはずです。
MySQLは世界で最も広く使われているデータベース管理システム(DBMS)の1つで、CREATE DATABASE・SHOW DATABASES・CREATE TABLEといった基本コマンドさえ押さえれば、誰でも顧客リストや在庫データを管理する「箱」を作れます。ただし、文字コードの設定ミスや主キーの付け忘れなど、初心者が高確率でつまずくポイントもいくつか存在します。
この記事では、データベースの作成 → 確認 → テーブル作成 → データ登録という一連の流れを、実際に動かせるSQL文つきで解説します。さらに後半では、こうしたSQL文を自分で覚えなくても、Claude Code(AIエージェント)に指示するだけで設計・作成できる方法も、弊社(株式会社GENAI)の実運用データとあわせて紹介します。
この記事を最後まで読むと、次の6つが明確になります。
01 BASIC CONCEPT そもそもMySQLとデータベースとは何か 「表計算ソフトの発展形」として捉えると理解しやすい
SQL文の解説に入る前に、まず「データベース」と「MySQL」という2つの言葉の関係を整理しておきます。ここを曖昧にしたまま進めると、後の章で出てくるコマンドの意味が掴みにくくなるためです。
📚 用語解説
データベース:業務で使うデータ(顧客情報・商品情報・注文履歴など)を、決まったルールに従って整理・保存する「入れ物」全体のこと。Excelでいう「ブック(.xlsxファイル)」に近い概念です。
📚 用語解説
MySQL:データベースを作成・管理・操作するためのソフトウェア(データベース管理システム、DBMS)の1つ。無料のオープンソースでありながら業務利用に十分な性能があり、世界中のWebサービス・業務システムで採用されています。
1-1. Excelとデータベースの違い
非エンジニアの方に一番伝わりやすいのは、「Excelの発展形」という説明です。Excelでは1つのブック(ファイル)の中に複数のシートを持てますが、MySQLでも1つのデータベースの中に複数のテーブル(表)を持つ、という構造は非常によく似ています。
| Excel | MySQL | 対応関係 |
|---|---|---|
| ブック(.xlsxファイル) | データベース | 1つの管理単位 |
| シート | テーブル | 実際にデータが入る表 |
| 列見出し | カラム(列) | データの項目 |
| 行(1件のデータ) | レコード(行) | データ1件分 |
ただし、Excelと決定的に違うのは同時に複数人が安全に読み書きできる点と、データ量が数百万件になっても検索が高速に保たれる点です。顧客数が数百人を超えたあたりから、Excelでの管理は動作が重くなったり、入力ミスによる不整合が起きやすくなったりします。そうした限界を超えるための仕組みがMySQLのようなデータベース管理システムです。
1-2. データベースを操作する「SQL」という言語
MySQLに対して「データベースを作って」「このデータを取り出して」と指示するために使う専用の言語がSQL(エスキューエル)です。SQLは英語の文章に近い構文を持っており、プログラミング未経験の方でも比較的読みやすい言語だと言われています。
📚 用語解説
SQL(Structured Query Language):データベースに対して命令を出すための専用言語。「CREATE(作る)」「SHOW(見せる)」「INSERT(入れる)」「SELECT(選ぶ)」など、英単語の意味がそのまま命令の意味になっている場合が多く、構文自体は難しくありません。
SQL構文は覚えれば覚えるほど便利ですが、非エンジニアの方が全構文を暗記する必要はありません。この記事の後半で紹介するように、Claude CodeのようなAIエージェントに「◯◯のためのテーブルを作って」と伝えるだけで、正しいSQL文を代わりに書いてくれます。まずは「何をしているコマンドなのか」を理解することを優先してください。
この章のまとめとして、データベース=Excelブックの発展形、テーブル=シートの発展形、SQL=データベースへの指示語、という3点を押さえておけば、次章以降のコマンド解説がスムーズに理解できます。
02 CREATE DATABASE MySQLでデータベースを作成・確認する CREATE DATABASE / SHOW DATABASES / USE の3コマンド
ここからは実際にMySQLを操作する手順に入ります。MySQLがインストールされたPC・サーバーで、ターミナル(コマンドライン)からMySQLにログインした状態を前提に進めます。
2-1. CREATE DATABASEでデータベースを新規作成する
新しいデータベースを作るコマンドはCREATE DATABASEです。データベース名の後にセミコロン(;)を付けて実行します。
CREATE DATABASE shop_db;
実務では、日本語を含むデータ(氏名・住所・商品名など)を扱うケースが大半のため、作成時に文字コード(character set)を明示しておくことを強く推奨します。指定しない場合、サーバー側の初期設定に依存してしまい、後から日本語が正しく保存できないトラブルにつながることがあります。
CREATE DATABASE shop_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
📚 用語解説
文字コード(character set)と照合順序(collation):文字コードは「文字をどんな数値データとして保存・表現するか」のルール、照合順序は「文字列をどう並べ替え・比較するか」のルールです。日本語や絵文字を正しく保存するには、utf8mb4という文字コードを指定するのが現在の標準です。古い設定のまま使われるutf8(3バイト版)だと一部の絵文字や特殊な漢字が保存できません。
文字コードを指定せずにCREATE DATABASEを実行すると、サーバーの初期設定(古い環境ではlatin1やutf8のケースも)が適用されることがあります。後から気づいて直そうとすると、既存データの文字化けを修復する作業が発生し、かなりの手間になります。最初の1行目でutf8mb4を指定する習慣をつけておくのが安全です。
2-2. SHOW DATABASESで一覧を確認する
作成したデータベースがきちんと存在するかを確認するコマンドがSHOW DATABASESです。MySQLサーバー内に存在する全データベースの名前が一覧表示されます。
SHOW DATABASES;
実行すると、自分が作成したshop_dbに加えて、MySQLが最初から内部管理用に持っているinformation_schemaやmysqlといったデータベースも一緒に表示されます。これらはMySQL自体の設定・管理情報を格納しているシステム用のデータベースなので、誤って削除しないよう注意してください。
2-3. USEで操作対象のデータベースを選択する
1つのMySQLサーバーには複数のデータベースを同時に持てるため、「今からどのデータベースに対してコマンドを実行するのか」を明示する必要があります。それを指定するのがUSEコマンドです。
USE shop_db;
USEを実行すると、それ以降のCREATE TABLEやINSERTといったコマンドは、すべてshop_dbに対して実行されるようになります。USEを実行し忘れたまま作業すると、意図しない別のデータベースにテーブルを作成してしまう事故につながるため、作業のたびに今どのデータベースを選択しているかを意識する癖をつけておくと安全です。
CREATE DATABASE
で箱を作る
SHOW DATABASES
で存在を確認
USEで操作対象
として選択
次章のCREATE TABLE
へ進む
03 CREATE TABLE CREATE TABLEでテーブルを作成する データ型・制約の基本を押さえて「表の設計図」を書く
データベースという「箱」を作ったら、次はその中に実際にデータを入れる「表」=テーブルを作成します。テーブルを作る際は、各列(カラム)がどんな種類のデータを持つかをあらかじめ定義する必要があります。
3-1. CREATE TABLE文の基本構造
顧客情報を管理するcustomersテーブルを例に、実際のSQL文を見てみましょう。
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
phone VARCHAR(20),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
この1つのSQL文の中に、テーブル設計における重要な要素がすべて詰まっています。1行ずつ意味を見ていきます。
3-2. 主なデータ型の意味
| データ型 | 格納するデータ | 使用例 |
|---|---|---|
| INT | 整数(数値) | 会員ID、在庫数、年齢 |
| VARCHAR(n) | 可変長の文字列(最大n文字) | 氏名、メールアドレス、住所 |
| TEXT | 長文の文字列 | 問い合わせ内容、備考欄 |
| DATETIME | 日付+時刻 | 登録日時、注文日時 |
| DECIMAL(m,d) | 小数(金額計算に安全) | 価格、税込金額 |
📚 用語解説
VARCHARとTEXTの違い:どちらも文字列を保存する型ですが、VARCHARは「最大文字数を指定する」型で氏名やメールアドレスのような短い文字列向き、TEXTは文字数上限を細かく指定せず長文を保存する用途(問い合わせ内容など)に向いています。氏名にTEXTを使うことも技術的には可能ですが、検索性能や管理のしやすさの面でVARCHARが推奨されます。
3-3. 制約(NOT NULL・PRIMARY KEY・AUTO_INCREMENT)
データ型に加えて、各カラムには「どんなルールを守らせるか」という制約も設定できます。先ほどのCREATE TABLE文に出てきた3つの制約を確認します。
📚 用語解説
PRIMARY KEY(主キー):テーブル内の各行を一意に識別するための「背番号」のような列。同じ値を持つ行が2件以上存在しないことが保証されます。テーブルには原則として必ず1つのPRIMARY KEYを設定します。
📚 用語解説
AUTO_INCREMENT:新しい行を追加するたびに、自動的に1・2・3…と連番を割り振ってくれる設定。主キーとして使うid列によく組み合わせて使われ、開発者・利用者がIDを手動で管理する必要がなくなります。
📚 用語解説
NOT NULL:そのカラムに「空(NULL)」の値を許可しない、という制約。氏名やメールアドレスのように、必ず値が入っていてほしい項目に設定します。逆に、電話番号のように「未入力でも構わない」項目にはNOT NULLを付けません。
id)には PRIMARY KEY を必ず設定する04 DATA OPERATION 作成したテーブルを確認・操作する SHOW TABLES / DESCRIBE / INSERT / SELECT の使い方
テーブルを作成したら、正しく作られているかを確認し、実際にデータを登録・取得してみましょう。
4-1. SHOW TABLESでテーブル一覧を確認する
現在選択中のデータベース(USEで指定したデータベース)に、どんなテーブルが存在するかを一覧表示するコマンドです。
SHOW TABLES;
4-2. DESCRIBEでテーブルの構造を確認する
作成したテーブルの中身(カラム名・データ型・制約)を詳しく確認したいときはDESCRIBEコマンドを使います。
DESCRIBE customers;
実行すると、カラム名・データ型・NULLを許可するか・キー(主キーかどうか)・デフォルト値・追加情報(AUTO_INCREMENTなど)が一覧表示されます。CREATE TABLE時に指定した内容が正しく反映されているかを確認する、いわば「答え合わせ」のコマンドです。
4-3. INSERT INTOでデータを登録する
テーブルの構造ができたら、実際にデータ(レコード)を1件登録してみます。
INSERT INTO customers (name, email, phone) VALUES ('山田太郎', 'yamada@example.com', '090-1234-5678');
先ほどのCREATE TABLE文でid列にAUTO_INCREMENTを設定しているため、INSERT文でidを指定する必要はありません。データベース側が自動的に連番を割り振ってくれます。
4-4. SELECTでデータを取得する
登録したデータを取り出す(検索する)コマンドがSELECTです。SQLの中でも最も使用頻度が高いコマンドと言えます。
SELECT * FROM customers;
SELECT name, email FROM customers WHERE id = 1;
*(アスタリスク)は「すべての列」という意味で、WHERE句を使うと「条件に合う行だけ」を絞り込めます。業務でよく使うのは、このWHEREで条件を指定するパターンです。
| コマンド | 役割 | 対応するExcel操作 |
|---|---|---|
| INSERT INTO | データを新規登録する | 新しい行を入力する |
| SELECT | データを検索・取得する | フィルター機能で絞り込む |
| UPDATE | 既存データを更新する | セルの値を書き換える |
| DELETE FROM | データを削除する | 行を削除する |
UPDATEやDELETEでWHERE句を付け忘れると、テーブル内の全行が更新・削除されてしまいます。業務データを扱う際は、実行前に必ずSELECT文で「WHERE句に該当する行がどれか」を確認してから、UPDATE/DELETEを実行する習慣をつけてください。
📚 用語解説
CRUD:Create(登録)・Read(取得)・Update(更新)・Delete(削除)の頭文字を取った略語。データベースを扱うシステムが最低限備えるべき4つの基本操作を指し、MySQLではそれぞれINSERT・SELECT・UPDATE・DELETEというコマンドに対応します。
05 COMMON PITFALLS 【独自】初心者が高確率でつまずく3つの落とし穴 文字コード・主キー・データ型のミスは事前に防げる
ここまでの手順どおりに進めれば基本的なデータベース・テーブルは作成できますが、実務では「動くには動くが、後で困る」設計ミスが頻発します。ここでは、弊社が非エンジニアの経営者・担当者の相談を受ける中でよく見かける3つの落とし穴を紹介します。
5-1. 落とし穴1:文字コードの設定漏れによる文字化け
最も多いトラブルが、データベース作成時に文字コードを指定しなかったために、後から日本語や絵文字が正しく保存できなくなるケースです。サーバーの初期設定に依存してしまうため、開発環境では問題なく動いていたのに、本番環境に移した途端に文字化けする、といった事故も起こります。
「氏名」欄に机(つくえ)のような一般的な漢字は保存できるのに、一部の異体字や絵文字(例: 顧客の趣味欄に絵文字が入っていた)だけ「????」に化けるケースが典型例です。これは文字コードがutf8(3バイトまでしか扱えない)のままになっていることが原因で、utf8mb4(4バイトまで扱える)に変更する必要があります。
5-2. 落とし穴2:PRIMARY KEYの付け忘れによる重複データ
PRIMARY KEYを設定しないままテーブルを運用すると、本来は1人のはずの顧客データが誤って2回登録されてしまっても、データベース側では「別人」として扱われ、重複を検知できません。後から「この2件は同一人物では?」と気づいても、正確に名寄せするのは非常に手間のかかる作業になります。
テーブルを作るときは、最初の1列目にid INT AUTO_INCREMENT PRIMARY KEYを入れることを習慣にしてください。後から主キーを追加しようとすると、既に重複データが入ってしまっている場合に整理作業が必要になり、手間が大幅に増えます。
5-3. 落とし穴3:データ型のミスマッチ
電話番号や郵便番号を、数値だからという理由でINT型で保存してしまうケースもよくある事故です。電話番号(例: 090-1234-5678)のようにハイフンを含む値はそもそもINT型では正しく保存できません。INT型は数字以外の文字を扱えないため、ハイフン以降の桁が失われたり、先頭の0が消えたりして「90」のような不完全な値になる、あるいは厳密モードの設定によってはエラーで保存自体ができない、といった形でデータが大幅に欠損・破損します。
こうした落とし穴はいずれも「テーブル設計の最初の1回」で防げるものばかりです。逆に言えば、設計時点でのちょっとした知識不足が、後から数十時間の修復作業につながることも珍しくありません。
06 GENAI CASE STUDY 【独自データ】Claude CodeにSQL設計・DB操作を任せる SQL文を覚えなくても、データベース設計はAIに指示できる
ここまでCREATE DATABASE・CREATE TABLE・INSERT・SELECTといった基本コマンドを解説してきましたが、正直なところ、非エンジニアの経営者・管理職の方がこれらすべてを暗記して手打ちする必要は、今の時代ほとんどありません。
弊社(株式会社GENAI)ではClaude Max 20xプラン(月額$200・約30,000円)を契約し、Claude Code(ターミナル上で動くAIエージェント)に経営・営業・広告・開発・経理・秘書業務まで社内のあらゆる業務を任せています。データベースの設計・SQL文の作成もその1つです。
| 項目 | 内容 |
|---|---|
| 契約プラン | Claude Max 20x(月$200 / 約30,000円) |
| 利用開始 | 2025年後半〜 |
| 利用部署 | 経営・営業・広告・開発・経理・秘書業務・個人業務まで全社 |
| DB関連の主な用途 | テーブル設計、CREATE/SELECT文の生成、Freee連携データの整形・集計 |
6-1. 「日本語の指示」だけでテーブル設計ができる
例えば「顧客の氏名・連絡先・購入履歴を管理したい」と日本語で伝えるだけで、Claude Codeは主キー・文字コード・適切なデータ型(電話番号はVARCHAR、金額はDECIMALなど)まで踏まえたCREATE TABLE文を提案してくれます。この記事で紹介した「落とし穴」も、AIに任せることで初めから回避しやすくなります。
📚 用語解説
Claude Code:Anthropicが提供するAIエージェント型の開発支援ツール。チャットで対話するだけでなく、実際にファイルの作成・編集や、データベースへの接続・SQL文の実行まで自律的に行える点が、通常のチャットAIとの大きな違いです。Pro以上のプラン契約に追加料金なしで含まれます。
6-2. 経理データ(Freee連携)でも実際に活用
弊社では経理業務においても、Claude CodeがFreee(会計クラウドサービス)のAPI経由でデータを取得・整形し、請求書チェックや経費仕訳の確認に活用しています。これは「データベースに接続してデータを読み書きする」という、この記事で解説したSELECT/INSERTの延長線上にある使い方です。経理業務では月40時間かかっていた作業が月5時間程度まで圧縮できている、という肌感の実績が社内にあります(数値はあくまで肌感・概算です)。
日本語で
管理したいデータ
を伝える
Claude Codeが
テーブル設計・
SQL文を提案
内容を確認して
実行を承認
実データの登録・
集計・レポート化
もちろん、AIが提案した内容を無条件に実行してよいわけではありません。特に本番の顧客データを扱う場面では、この記事で解説したPRIMARY KEYが設定されているか文字コードはutf8mb4かDELETE/UPDATE文にWHERE句が入っているかといった基本を、人間側でも確認できる状態にしておくことが安全な運用のポイントです。
「顧客テーブルを作って」だけでなく、「氏名は必須、電話番号は任意、登録日時も自動で記録して」のように、この記事で紹介した制約(NOT NULL・PRIMARY KEY・DEFAULT)の考え方を一言添えるだけで、Claude Codeが出してくるSQL文の精度がぐっと上がります。
07 CONCLUSION まとめ ── データベース作成の基本と、AIに任せる選択肢 コマンドを覚えることより「何を管理したいか」を明確にすることが重要
この記事では、MySQLでのデータベース作成からテーブル作成、データの登録・取得までの一連の流れと、初心者が陥りやすい3つの落とし穴、そしてClaude Codeにこれらを任せる方法までを整理しました。最後にポイントを振り返ります。
最も重要なメッセージをお伝えします。データベースの操作で本当に大事なのは、SQL構文を暗記することではなく、「自社のどのデータを、どんなルールで管理したいか」を明確にすることです。その設計思想さえ持っていれば、実際のSQL文を書くのが自分であってもAIであっても、正しいデータベースを作ることができます。
「自社の顧客データや業務データをどう整理すればいいか分からない」「Claude Codeにデータベース設計や経理データの処理を任せてみたい」という方は、ぜひ以下のAI鬼管理までお気軽にご相談ください。
データベース設計・業務データの整理も、AI鬼管理が一緒に設計します
SQL文を覚える時間があるなら、正しい依頼の仕方を覚えるほうが早い場合があります。
弊社の実運用ノウハウをベースに、貴社のデータ管理をどこまでAIに任せられるか、個別にご相談を承ります。
ここから先の進め方は、大きく2つあります。
自社で回せるようになりたい方は、AI鬼管理でClaude Code/Codexの使い方から業務設計・社内定着まで伴走を受けながら、社内に仕組みを作る道があります。
覚えるより任せたい方は、AI社員AIKATAでこの記事のような定型業務を丸ごと預ける道があります。料金は月30万円の月額定額、追加費用は0円です。
どちらが合うかは、業務量と社内体制次第です。無料相談・無料適合診断で、貴社の場合はどちらが向くかからご相談いただけます。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. MySQLは無料で使えますか?
A. はい、MySQLはオープンソース(無料版のMySQL Community Server)として提供されており、個人利用・商用利用ともに無料で使い始められます。大規模利用や専用サポートが必要な場合は、Oracle社が提供する有償版(MySQL Enterprise Edition)もありますが、多くの中小企業の業務利用では無料版で十分対応できます。
Q. CREATE DATABASEとCREATE TABLEの違いは何ですか?
A. CREATE DATABASEは「データを入れる大きな箱(データベース)」そのものを作るコマンド、CREATE TABLEはその箱の中に「実際にデータを記録する表(テーブル)」を作るコマンドです。Excelでいえば、CREATE DATABASEがブック(ファイル)の新規作成、CREATE TABLEがその中にシートを追加する操作にあたります。
Q. データベース名やテーブル名に日本語は使えますか?
A. 技術的には日本語の名前を使うことも可能ですが、実務では推奨されません。SQL文の記述ミスや文字コードのトラブルを避けるため、データベース名・テーブル名・カラム名は半角英数字とアンダースコア(例: customer_list)で統一するのが一般的な運用ルールです。日本語表示が必要な部分は、アプリケーション側の表示名で対応します。
Q. CREATE TABLEで一度作ったテーブルの構造は後から変更できますか?
A. 変更できます。ALTER TABLEというコマンドを使うと、既存のテーブルにカラムを追加・削除したり、データ型を変更したりできます。ただし、すでに大量のデータが入っている状態でのデータ型変更は、エラーやデータ欠損のリスクを伴うため、事前にバックアップを取ってから慎重に実行する必要があります。
Q. PRIMARY KEYは複数のカラムに設定できますか?
A. はい、複数カラムを組み合わせた「複合主キー」を設定することも可能です。例えば「注文ID+商品ID」の組み合わせで1行を一意に識別したい場合などに使われます。ただし、初心者のうちはid列1本のシンプルな主キー(AUTO_INCREMENT付き)から始めるほうが、設計・運用ともに分かりやすくおすすめです。
Q. SELECT文で特定の条件に一致するデータだけを取得するにはどうすればいいですか?
A. WHERE句を使います。例えば「SELECT * FROM customers WHERE name = '山田太郎';」のように書くと、氏名が「山田太郎」と一致する行だけが取得できます。数値の比較(WHERE age > 20 など)や複数条件の組み合わせ(AND/OR)も可能で、業務データの絞り込みには必須の構文です。
Q. SQL文を1つも書けなくても、Claude Codeにデータベース作成を任せられますか?
A. 任せられます。Claude Codeはターミナル操作なしのデスクトップ版・チャットUIからも指示できるため、「顧客管理用のデータベースを作って、氏名と連絡先を必須項目にして」といった日本語の指示だけで、CREATE DATABASE・CREATE TABLEを含む一連のSQL文を作成・実行してくれます。もちろん実行前の内容確認は必要ですが、SQL構文を暗記していなくても業務での活用は十分可能です。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理/AI社員AIKATAへのお問い合わせ
この記事を読んで気になった方へ。
専門スタッフが、御社に最適な
業務自動化・業務代行プランを無料でご提案します。




