データベース操作の基本となるSQLの4大命令について、実践的なコード例を交えながら詳しく解説します。初心者でも理解できる基礎から、実務で使える応用テクニックまで、どこまで理解できるでしょうか?
SQL命名規則とデータベース設計の基本とコツ
データベース設計における命名規則の重要性から、具体的な命名のベストプラクティスまでを解説。実務で使える具体例も交えて説明します。あなたのデータベース設計は適切な命名規則に従っていますか?
データベースのテーブル名には、以下の規則を適用することが推奨されます:
/* 推奨されるテーブル命名の例 */
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
)
CREATE TABLE order_details (
order_id SERIAL PRIMARY KEY,
product_id INTEGER,
quantity INTEGER
)
テーブル名の基本ルール:
カラム名の設計には、以下のような命名パターンを採用します:
目的 | 推奨パターン | 非推奨パターン |
---|---|---|
ID列 | user_id | id, uid |
日付列 | created_at | create_dt |
状態列 | status_code | status_cd |
/* カラム命名の具体例 */
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status_code INTEGER
)
インデックスや制約の命名規則は以下のようになります:
/* インデックスと制約の命名例 */
CREATE TABLE orders (
order_id SERIAL,
customer_id INTEGER,
CONSTRAINT pk_orders PRIMARY KEY (order_id),
CONSTRAINT fk_orders_customers FOREIGN KEY (customer_id)
REFERENCES customers(customer_id)
)
CREATE INDEX idx_orders_created_at ON orders(created_at)
命名パターン:
ビューとストアドプロシージャには、以下の命名規則を適用します:
/* ビューの命名例 */
CREATE VIEW vw_active_users AS
SELECT * FROM users WHERE status = 'active'
/* ストアドプロシージャの命名例 */
CREATE PROCEDURE sp_update_user_status (
IN p_user_id INTEGER,
IN p_status VARCHAR(20)
)
BEGIN
UPDATE users
SET status = p_status
WHERE user_id = p_user_id
END
実務での命名規則適用にあたって、以下の点に注意が必要です:
/* 実践的な命名例 */
CREATE TABLE customer_orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER REFERENCES customers(customer_id),
order_status VARCHAR(20),
created_by INTEGER REFERENCES users(user_id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT chk_order_status CHECK (order_status IN ('pending', 'completed', 'cancelled'))
)
このような命名規則を採用することで、以下のメリットが得られます: