# 04강. Hello World 실행하기

- `Hello World`라는 것은 프로그래밍 언어를 배울 때 가장 처음 만들어보는 아주 간단한 프로그램일 일컫는 말이다.
- `SQL`에서는 다음과 같은 `SELECT` 명령이 `Hello World`에 해당한다.

```
SELECT * FROM 테이블명
```

---

## 1. 'SELECT * FROM 테이블명' 실행
- `SQL` 명령은 `mysql 클라이언트에 문자를 입력하여 실행할 수 있다.
- `SELECT`와 `*` 그리고 `FROM` 사이에는 스페이스를 넣어 구분한다.
- 입력이 끝나면 명령의 마지막을 나타내는 `세미콜론(;)`을 넣어줘야 한다.
- 세미콜론을 붙이지 않고 Enter 키를 누르면 입력중인 것으로 간주되어 명령문은 실행되지 않는다.

##### mysql 클라이언트에 SQL 명령을 입력하여 실행할 수 있다! 이때 SQL 명령의 마지막에는 세미콜론(;)을 붙인다!

---

## 2. SELECT 명령 구문
- `SELECT`는 `DML`에 속하는 명령으로 `SQL`에서 자주 사용된다.
- `SELECT` 명령으로 데이터베이스의 데이터를 읽어올 수 있다.
- `SELECT` 명령은 `질의`나 `쿼리`로 불리기도 한다.

```
SELECT * FROM sample21;
```

- 맨 앞의 `SELECT`는 `SQL` 명령의 한 종류로 `SELECT 명령을 실행하세요`라는 의미이다.
- 그 다음의 `애스터리스크(*)`는 `모든 열`을 의미하는 메타문자이다.
- 위 명령어를 실행하면 `sample21 테이블`의 모든 데이터를 읽어온다.
- `sample21 테이블`에 `*`라는 이름의 열이 존재하는 것은 아니다.
- `SELECT` 명령을 실행할 때 `*` 부분이 자동으로 `모든 열`로 바뀐다고 생각하면 이해하기 쉬울 것이다.
- 그 다음의 `FROM`은 처리 대상 테이블을 지정하는 키워드이다.
- `FROM` 뒤에 테이블명을 지정한다.
- `SQL` 명령은 키워드에 의해 `구`라는 단위로 나눌 수 있다.
- 위 명령어의 경우, `SELECT 구`와 `FROM 구`로 나눌 수 있다.
- `SELECT` 명령은 여러 개의 구로 구성된다.

##### *는 모든 열을 의미하는 메타문자이다! SQL 명령은 몇 개의 구로 구성된다!

---

## 3. 예약어와 데이터베이스 객체명
- 다른 테이블의 내용을 보고 싶은 경우에는 `FROM` 뒤의 테이블명을 재지정하면 된다.

```
SELECT * FROM sample21;
```

- `SELECT`와 `FROM`이 구를 결정하는 키워드이자 **예약어**이다.
- 데이터베이스에는 테이블 외에 다양한 데이터를 저장하거나 관리하는 `어떤 것`을 만들 수 있다.
- 이것을 `데이터베이스 객체`라고 부른다(예를 들면 `뷰(view)`가 그에 해당함).
- 데이터베이스 객체는 이름을 붙여 관리한다.
- 같은 이름으로 다른 데이터베이스 객체는 만들 수 없다.
- 통상적으로 데이터베이스 객체에는 예약어(`SELECT` 등)와 동일한 이름을 사용할 수 없다.

### 대소문자 구별
- 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.

##### 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다!

- `SQL` 명령과 달리 많은 데이터베이스 제품들은 데이터의 대소문자를 구별한다.
- 단, 설정에 따라 구별하지 않는 경우도 있다.

---

## 4. Hello World를 실행한 결과 = 테이블
- `SELECT` 명령을 실행하면 표 형식의 데이터가 출력된다.
- 표 형식의 데이터는 `행(레코드)`과 `열(컬럼/필드)`로 구성된다.
- 행은 모두 동일한 형태로 되어 있으며 옆으로 `열(컬럼/필드)`이 나열되는데, 열마다 이름이 지정되어 있다.
- 각각의 행과 열이 만나는 부분을 `셀`이라고 부르며, `셀`에는 하나의 데이터 값이 저장되어 있다.

##### 테이블은 행과 열로 구성된 표 형식의 데이터다!

- 출력결과에서 숫자만으로 구성된 데이터를 `수치형` 데이터라고 하며, `수치형` 데이터는 오른쪽 정렬로 표시된다.
- 임의의 문자로 구성된 데이터를 `문자열형` 데이터라 부른다. 문자형은 왼쪽으로 정렬되어 표시된다.
- 날짜와 시각을 나타내는 데이터를 `날짜시간형` 데이터라고 하며 왼쪽으로 정렬되어 표시된다.
- 열은 하나의 자료형만 가질 수 있으며, 수치형의 열에 문자형의 데이터를 저장할 수는 없다.

##### 데이터는 자료형으로 분류할 수 있다! 열은 하나의 자료형만 가질 수 있다!

---

## 5. 값이 없는 데이터 = NULL
- `SELECT`의 결과를 잘 살펴보면 셀의 값이 `NULL`로 표시된 부분이 있는데, `NULL`은 특별한 데이터 값으로 아무것도 저장되어 있지 않은 상태를 의미한다.
- `NULL`이라는 데이터가 저장되어 있는 것이 아닌, `아무 것도 저장되어 있지 않는 상태`라는 뜻이다.

##### NULL은 데이터가 들어있지 않은 것을 의미하는 특별한 값이다.

---