私:
SQLとは
ChatGPT:
SQL (Structured Query Language) は、データベースの作成、管理、操作を行うための標準的なプログラミング言語です。以下に、基本的なSQLのコマンドや概念を紹介します。
基本構文
- データベースの作成と選択
-- データベースの作成
CREATE DATABASE database_name;
-- データベースの選択
USE database_name;
- テーブルの作成
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
例:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- データの挿入
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
例:
INSERT INTO users (name, email)
VALUES ('John Doe', 'john@example.com');
- データの取得
SELECT column1, column2, ...
FROM table_name
WHERE condition;
例:
SELECT * FROM users WHERE name = 'John Doe';
5. データの更新
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
例:
UPDATE users
SET email = 'john.doe@example.com'
WHERE name = 'John Doe';
- データの削除
DELETE FROM table_name
WHERE condition;
例:
DELETE FROM users WHERE id = 1;
SQLの種類
DDL (Data Definition Language): データベースの構造を定義する。
CREATE, ALTER, DROP, TRUNCATE
DML (Data Manipulation Language): データを操作する。
SELECT, INSERT, UPDATE, DELETE
DCL (Data Control Language): 権限の管理。
GRANT, REVOKE
TCL (Transaction Control Language): トランザクションを管理する。
COMMIT, ROLLBACK, SAVEPOINT
条件式と関数
WHERE句の条件式
比較演算子: =, <>, <, >, <=, >=
論理演算子: AND, OR, NOT
範囲指定: BETWEEN ... AND ...
部分一致: LIKE 'pattern%' (%と_を使用)
NULL値チェック: IS NULL, IS NOT NULL
集計関数
COUNT(): 行数をカウント
SUM(): 合計
AVG(): 平均
MAX(): 最大値
MIN(): 最小値
例:
SELECT COUNT(*) AS user_count FROM users;
グループ化
SELECT column, COUNT(*)
FROM table_name
GROUP BY column
HAVING COUNT(*) > 1;
ジョイン (JOIN)
INNER JOIN: 両方のテーブルに一致するデータを取得
SELECT *
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
LEFT JOIN: 左のテーブルのすべての行を取得し、一致しない場合はNULL
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;
RIGHT JOIN: 右のテーブルのすべての行を取得
FULL OUTER JOIN: 両方のテーブルのすべての行を取得
SQL練習環境
ローカル環境: MariaDB, MySQL, PostgreSQL, SQLite
オンラインツール: DB Fiddle, SQL Zoo