Sorting Data in a Table
-----------------------

To sort data in a table, use the `ORDER BY` clause followed by the column to sort by and the direction (`ASC` for ascending or `DESC` for descending). For example:
```sql
SELECT name, age
FROM customers
ORDER BY age DESC;
```
This statement retrieves the `name` and `age` columns from the `customers` table and sorts the result by the `age` column in descending order.

### 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

| name | age |
| --- | --- |
| Alice Brown | 50 |
| Bob Johnson | 40 |
| John Doe | 31 |
| Jane Smith | 25 |

Filtering Data in a Table
-------------------------

To filter data in a table, use the `WHERE` clause followed by the condition to match rows to retrieve. For example:
```sql
SELECT name, email
FROM customers
WHERE age > 30;
```
This statement retrieves the `name` and `email` columns from the `customers` table where the `age` is greater than `30`.

### 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

| name | email |
| --- | --- |
| John Doe | [john.doe@example.com](mailto:john.doe@example.com) |
| Bob Johnson | [bob.johnson@example.com](mailto:bob.johnson@example.com) |
| Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) |

Joining Tables
--------------

To join tables, use the `JOIN` clause followed by the name of the table to join and the condition to match rows to join. For example:
```vbnet
SELECT customers.name, orders.product
FROM customers
JOIN orders ON customers.id = orders.customer_id;
```
This statement retrieves the `name` column from the `customers` table and the `product` column from the `orders` table where the `id` column in the `customers` table matches the `customer_id` column in the `orders` table.

### 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 |

#### Orders

| id | customer\_id | product | price |
| --- | --- | --- | --- |
| 1 | 1 | Widget | 10.99 |
| 2 | 2 | Gizmo | 9.99 |
| 3 | 1 | Thingamajig | 15.99 |

### Output Table

| name | product |
| --- | --- |
| John Doe | Widget |
| Jane Smith | Gizmo |
| John Doe | Thingamajig |

Grouping Data
-------------

To group data in a table
테이블의 데이터 정렬
-----------------------

테이블에서 데이터를 정렬하려면 `ORDER BY` 절 뒤에 정렬할 열과 방향(오름차순의 경우 `ASC`, 내림차순의 경우 `DESC`)을 사용합니다. 예를 들어
```sql
SELECT name, age
FROM customers
ORDER BY age DESC;
```
이 문은 `customers` 테이블에서 `name` 및 `age` 열을 검색하고 `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 |

### 출력 테이블

| 이름 | 나이 |
| --- | --- |
| Alice Brown | 50 |
| 밥 존슨 | 40 |
| John Doe | 31 |
| Jane Smith | 25 |

테이블에서 데이터 필터링
-------------------------

테이블의 데이터를 필터링하려면 `WHERE` 절 뒤에 검색할 행을 일치시킬 조건을 사용합니다. 예를 들어
```sql
SELECT name, email
FROM customers
WHERE age > 30;
```
이 문은 `customers` 테이블에서 `age`가 `30`보다 큰 `name` 및 `email` 열을 조회합니다.

### 입력 테이블

| 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 |

### 출력 테이블

| 이름 | 이메일 |
| --- | --- |
| John Doe | [john.doe@example.com](mailto:john.doe@example.com) |
| 밥 존슨 | [bob.johnson@example.com](mailto:bob.johnson@example.com) |
| Alice Brown | [alice.brown@example.com](mailto:alice.brown@example.com) |

테이블 조인
--------------

테이블을 조인하려면 조인할 테이블의 이름과 조인할 행을 일치시킬 조건 뒤에 `JOIN` 절을 사용합니다. 예를 들어
```vbnet
SELECT customers.name, orders.product
FROM customers
JOIN orders ON customers.id = orders.customer_id;
```
이 문은 `customers` 테이블에서 `name` 열을, `orders` 테이블에서 `product` 열을 가져오는데, 여기서 `customers` 테이블의 `id` 열은 `orders` 테이블의 `customer_id` 열과 일치합니다.

### 입력 테이블

#### 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 |

#### Orders

| ID | 고객\_ID | 제품 | 가격 |
| --- | --- | --- | --- |
| 1 | 1 | 위젯 | 10.99 |
| 2 | 2 | 기즈모 | 9.99 |
| 3 | 1 | 씽가마지그 | 15.99 |

### 출력 테이블

| 이름 | 제품 |
| --- | --- |
| 존 도 | 위젯 |
| 제인 스미스 | 기즈모 |
| 신원 미상인 | 씽가마지그 |

데이터 그룹화
-------------

테이블에서 데이터를 그룹화하려면 다음과 같이 하세요.