SQLでデータベースのテーブル一覧を取得する方法について解説します。各データベース管理システムごとの具体的なコマンドや活用方法を紹介しますが、あなたはどのDBMSを使っていますか?
SQLテーブルの作成とデータ型の基礎から実践まで
SQLテーブルの基礎から実践的な使い方まで、具体的なコード例を交えて解説します。データベース初心者でも理解できる内容から、実務で使える応用まで、どのように活用できるのでしょうか?
テーブルを作成する基本的なCREATE TABLE文の構文を見ていきましょう。以下は社員情報を管理するテーブルの作成例です:
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE DEFAULT CURRENT_DATE,
department_id INT,
salary DECIMAL(10,2)
)
このコードでは、以下の要素を定義しています:
主要なデータ型とその特徴を表で整理しました:
データ型 | 用途 | サイズ | 使用例 |
---|---|---|---|
INT | 整数値 | 4バイト | 社員ID、年齢 |
DECIMAL | 小数を含む数値 | 可変 | 給与、単価 |
VARCHAR | 可変長文字列 | 指定長まで | 名前、住所 |
CHAR | 固定長文字列 | 固定 | 性別、国コード |
DATE | 日付 | 3バイト | 入社日、生年月日 |
TIMESTAMP | 日時 | 8バイト | 更新日時、ログ時刻 |
データの整合性を保つための主要な制約について説明します:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE DEFAULT CURRENT_DATE,
total_amount DECIMAL(10,2) CHECK (total_amount > 0),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
)
制約の種類と役割:
効率的なクエリ実行のためのインデックス作成方法を解説します:
-- 単一カラムインデックス
CREATE INDEX idx_employee_name
ON employees (last_name)
-- 複合インデックス
CREATE INDEX idx_order_customer
ON orders (customer_id, order_date)
インデックスを作成する際の注意点:
テーブル設計時のパフォーマンス最適化のポイントをまとめます:
CREATE TABLE sales (
sale_id INT,
sale_date DATE,
amount DECIMAL(10,2)
) PARTITION BY RANGE (YEAR(sale_date))
日常的な運用管理に必要な操作をまとめます:
-- カラムの追加
ALTER TABLE employees
ADD COLUMN bonus DECIMAL(10,2)
-- インデックスの追加
ALTER TABLE employees
ADD INDEX idx_department (department_id)
-- テーブルの最適化
OPTIMIZE TABLE employees
-- 統計情報の更新
ANALYZE TABLE employees
-- テーブル定義のエクスポート
SHOW CREATE TABLE employees
-- データのバックアップ
mysqldump -u username -p database_name employees > backup.sql
これらの運用管理作業は、定期的なメンテナンススケジュールに組み込むことをお勧めします。