than `'2022-02-15'`.

### Input Tables

**Customers:**

| id | name | email | age |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | Bob Johnson | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

**Orders:**

| id | customer\_id | order\_date |
| --- | --- | --- |
| 1 | 1 | 2022-02-01 |
| 2 | 2 | 2022-02-05 |
| 3 | 1 | 2022-02-10 |
| 4 | 3 | 2022-03-01 |

### Output Table

| name |
| --- |
| John Doe |
| Bob Johnson |

Indexes
-------

Indexes are data structures that improve the performance of queries by providing faster access to the data. You can create an index on one or more columns in a table using the `CREATE INDEX` statement. For example:
```java
CREATE INDEX idx_name
ON customers (name);
```
This statement creates an index called `idx_name` on the `name` column in the `customers` table.

### Input Table

| id | name | email | age |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | Bob Johnson | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

### Output Table

There is no output table for this example, as the effect of an index is not visible in the data itself.

Transactions
------------

A transaction is a sequence of one or more SQL statements that are executed as a single unit of work. Transactions provide a way to ensure that all the statements in a group are executed or none of them are executed. To start a transaction, use the `START TRANSACTION` statement. For example:
```sql
START TRANSACTION;
INSERT INTO customers (name, email, age)
VALUES ('Mark Smith', 'mark.smith@example.com', 27);
INSERT INTO orders (customer_id, order_date)
VALUES (5, '2022-03-15');
COMMIT;
```
This statement starts a transaction, inserts a new row into the `customers` table, inserts a new row into the `orders` table with a foreign key referencing the new customer, and commits the transaction.

### Input Tables

**Customers:**

| id | name | email | age |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | Bob Johnson | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

**Orders:**

| id | customer\_id | order\_date |
| --- | --- | --- |
| 1 | 1 | 2022-02-01 |
| 2 | 2 | 2022-02-05 |
| 3 | 1 | 2022-02-10 |
| 4 |  |  |
보다 `'2022-02-15'`입니다.

### 입력 테이블

**고객:**

| 아이디 | 이름 | 이메일 | 나이 |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | 밥 존슨 | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | 앨리스 브라운 | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

**주문:**

| ID | 고객\_ID | 주문\_날짜 |
| --- | --- | --- |
| 1 | 1 | 2022-02-01 |
| 2 | 2 | 2022-02-05 |
| 3 | 1 | 2022-02-10 |
| 4 | 3 | 2022-03-01 |

### 출력 테이블

| 이름 |
| --- |
| John Doe |
| 밥 존슨 |

인덱스
-------

인덱스는 데이터에 더 빠르게 액세스하여 쿼리 성능을 향상시키는 데이터 구조입니다. CREATE INDEX` 문을 사용하여 테이블의 하나 이상의 열에 인덱스를 만들 수 있습니다. 예를 들어
```java
CREATE INDEX idx_name
ON 고객(이름);
```
이 문은 `customers` 테이블의 `name` 열에 `idx_name`이라는 인덱스를 생성합니다.

### 입력 테이블

| id | name | email | age |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | 밥 존슨 | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

### 출력 테이블

이 예제에서는 인덱스의 효과가 데이터 자체에 표시되지 않으므로 출력 테이블이 없습니다.

트랜잭션
------------

트랜잭션은 단일 작업 단위로 실행되는 하나 이상의 SQL 문 시퀀스입니다. 트랜잭션은 그룹의 모든 문이 실행되거나 실행되지 않도록 하는 방법을 제공합니다. 트랜잭션을 시작하려면 `START TRANSACTION` 문을 사용합니다. 예를 들어
```sql
START TRANSACTION;
INSERT INTO 고객(이름, 이메일, 나이)
VALUES ('Mark Smith', 'mark.smith@example.com', 27);
INSERT INTO 주문 (customer_id, order_date)
값 (5, '2022-03-15');
COMMIT;
```
이 문은 트랜잭션을 시작하고, `customers` 테이블에 새 행을 삽입하고, 새 고객을 참조하는 외래 키를 사용하여 `orders` 테이블에 새 행을 삽입하고, 트랜잭션을 커밋합니다.

### 입력 테이블

**Customers:**

| ID | 이름 | 이메일 | 나이 |
| --- | --- | --- | --- |
| 1 | John Doe | [john.doe@example.com](mailto:john.doe@example.com) | 31 |
| 2 | Jane Smith | [jane.smith@example.com](mailto:jane.smith@example.com) | 25 |
| 3 | 밥 존슨 | [bob.johnson@example.com](mailto:bob.johnson@example.com) | 40 |
| 4 | 앨리스 브라운 | [alice.brown@example.com](mailto:alice.brown@example.com) | 50 |

**주문:**

| ID | 고객\_ID | 주문\_날짜 |
| --- | --- | --- |
| 1 | 1 | 2022-02-01 |
| 2 | 2 | 2022-02-05 |
| 3 | 1 | 2022-02-10 |
| 4 | | |