【SQL】SQL文の使い方

# はじめに

SQL文の使い方について、以下の構文について説明します

## INSERT文
INSERT文は、データベースのテーブルに新しい行を挿入するために使用されます。
一般的なINSERT文の構文は以下の通りです。
```sql:INSERT
INSERT INTO テーブル名 (列1, 列2, 列3, ...)
VALUES (値1, 値2, 値3, ...);
```
例えば、"users"というテーブルに新しいユーザーを追加する場合
以下のようなINSERT文を使用します。
```sql:INSERT　例
INSERT INTO users (id, name, age)
VALUES (1, 'John Doe', 25);
```
この例では、"users"テーブルの"id"、"name"、"age"という列に対して、新しい行が挿入されます。
列を指定せず抜かした場合はnullが自動で入ります。

## SELECT文
SELECT文は、データベースからデータを取得するために使用されます。
一般的なSELECT文の構文は以下の通りです。
```sql:SELECT
SELECT 列1, 列2, 列3, ...
FROM テーブル名;
```
例えば、"users"テーブルから全てのユーザーを取得する場合
以下のようなSELECT文を使用します。
```SQL:SELECT 例
SELECT id, name, age
FROM users;
```
この例では、"users"テーブルの"id"、"name"、"age"という列から全ての行が取得されます。
## WHERE
WHERE句は、SELECT文やUPDATE文、DELETE文などで特定の条件に基づいてデータをフィルタリングするために使用されます。一般的なWHERE句の構文は以下の通りです。
```sql:WHERE
SELECT 列1, 列2, 列3, ...
FROM テーブル名
WHERE 条件;
```
例えば、"users"テーブルから年齢が30以上のユーザーを取得する場合
以下のようなSELECT文を使用します。
```sql:WHERE
SELECT id, name, age
FROM users
WHERE age >= 30;
```
この例では、"users"テーブルの"id"、"name"、"age"という列から、"age"が30以上の行が取得されます。
## コミット
コミットは、トランザクションの変更を確定し、データベースに反映させるために使用されます。
トランザクションとは、複数のデータベース操作を一連の処理としてまとめたものです

## UPDATE
UPDATE文は、データベースのテーブル内の既存の行を更新するために使用されます。
一般的なUPDATE文の構文は以下の通りです。
```sql:UPDATE文
UPDATE テーブル名
SET 列1 = 値1, 列2 = 値2, ...
WHERE 条件;
```
例えば、"users"テーブル内の特定のユーザーの名前を変更する場合
以下のようなUPDATE文を使用します。

```sql:UPDATE
UPDATE users
SET name = 'Jane Smith'
WHERE id = 1;
```
この例では、"users"テーブルの"name"列の値が'Jane Smith'に更新されます。
## DELETE
DELETE文は、データベースのテーブル内の行を削除するために使用されます。
一般的なDELETE文の構文は以下の通りです。
```sql:DELETE
DELETE FROM テーブル名
WHERE 条件;
```
例えば、"users"テーブル内の特定のユーザーを削除する場合
以下のようなDELETE文を使用します。
```sql:DELETE
DELETE FROM users
WHERE id = 1;
```
この例では、"users"テーブルから"id"が1の行が削除されます。

## 比較演算子
比較演算子は、WHERE句や他の条件式で使用され、値の比較を行います。
一般的な比較演算子には以下のようなものがあります。

```sql:比較演算子
=: 等しい
<>または!=: 等しくない
>: 大なり
<: 小なり
>=: 以上
<=: 以下
```
これらの演算子は、数値や文字列などのデータ型に応じて使用されます。

## BETWEEN演算子
BETWEEN演算子は、ある範囲内の値をフィルタリングするために使用されます。
一般的なBETWEEN演算子の構文は以下の通りです。
```sql:BETWEEN演算子
列名 BETWEEN 値1 AND 値2;
```
例えば、"age"列が20から30の範囲内のユーザーを取得する場合、以下のようなWHERE句を使用します。

```sql:BETWEEN演算子　例
WHERE age BETWEEN 20 AND 30;
```
## IN演算子
IN演算子は、複数の値の中から一致するものをフィルタリングするために使用されます。
一般的なIN演算子の構文は以下の通りです。
```sql:IN演算子
列名 IN (値1, 値2, 値3, ...);
```
例えば、"users"テーブルから特定のユーザーIDの行を取得する場合
以下のようなWHERE句を使用します。
```sql:IN演算子 例
WHERE id IN (1, 2, 3);
```
この例では、"id"列の値が1または2または3と一致する行がフィルタリングされます。

## IS NULL演算子
IS NULL演算子は、NULL値をフィルタリングするために使用されます。NULL値は、データが存在しないことを示します。一般的なIS NULL演算子の構文は以下の通りです。
```sql:IS NULL演算子
列名 IS NULL;
```
例えば、"users"テーブルから名前がNULLの行を取得する場合
以下のようなWHERE句を使用します。
```sql:IS NULL演算子　例
WHERE name IS NULL;
```
この例では、"name"列がNULLである行がフィルタリングされます。

## LIKE演算子
LIKE演算子は、パターンマッチングを行うために使用されます
一般的なLIKE演算子の構文は以下の通りです。
```sql:LIKE演算子
列名 LIKE 'パターン';
```
例えば、"users"テーブルから名前が"John"で始まる行を取得する場合
以下のようなWHERE句を使用します。
```sql:LIKE演算子
WHERE name LIKE 'John%';
```
この例では、"name"列が"John"で始まる行がフィルタリングされます。
%はワイルドカード文字として使用され、任意の文字列を表します。

## LIKE演算子
LIKE演算子は、パターンマッチングを行うために使用されます
一般的なLIKE演算子の構文は以下の通りです。
```sql:LIKE演算子
列名 LIKE 'パターン';
```
例えば、"users"テーブルから名前が"John"で始まる行を取得する場合
以下のようなWHERE句を使用します。

```sql:LIKE演算子　例
WHERE name LIKE 'John%';
```
この例では、"name"列が"John"で始まる行がフィルタリングされます。
%はワイルドカード文字として使用され、任意の文字列を表します。

## AND演算子
AND演算子は、複数の条件がすべて真である場合に結果が真となる論理演算子です
一般的なAND演算子の構文は以下の通りです。
```sql:AND演算子
条件1 AND 条件2;
```
例えば、"users"テーブルから年齢が20以上かつ名前が"John"の行を取得する場合
以下のようなWHERE句を使用します。
```sql:AND演算子 例
WHERE age >= 20 AND name = 'John';
```
この例では、"age"が20以上かつ"name"が"John"と一致する行がフィルタリングされます。

## OR演算子
OR演算子は、複数の条件のうちいずれかが真である場合に結果が真となる論理演算子です。
一般的なOR演算子の構文は以下の通りです。
```sql:OR演算子
条件1 OR 条件2;
```
例えば、"users"テーブルから年齢が20以上または名前が"John"の行を取得する場合
以下のようなWHERE句を使用します。
```sql:OR演算子 例
WHERE age >= 20 OR name = 'John';
```
この例では、"age"が20以上または"name"が"John"と一致する行がフィルタリングされます。


## 算術演算子
算術演算子は、数値の計算を行うために使用されます。
一般的な算術演算子には以下のようなものがあります。
```sql:算術演算子
+: 加算
-: 減算
*: 乗算
/: 除算
%: 剰余
```
これらの演算子は、数値型の列や値に対して使用されます。
## コミット
```sql:コミット
COMMIT;
```
トランザクション内で行った変更をデータベースに反映させるためには、トランザクションの終わりにCOMMIT文を実行する必要があります。コミットを実行すると、トランザクション内の変更が確定され、永続的にデータベースに保存されます。