SELECT 명령어
1. SELECT 명령 구문
SELECT * FROM sample21;
실행결과
+------+-----------+------------+---------------------------+
| no | name | birthday | address |
+------+-----------+------------+---------------------------+
| 1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
| 2 | 김재진 | NULL | 대구광역시 동구 |
| 3 | 홍길동 | NULL | 서울특별시 마포구 |
+------+-----------+------------+---------------------------+
3 rows in set (0.00 sec)
-
SELECT 는 SQL 명령의 한 종류로 ‘SELECT 명령을 실행하세요’ 라는 의미이다. SELECT 명령으로 데이터베이스의 데이터를 불러올 수 있다.
-
* 는 ‘모든 열’을 의미하는 메타문자이다. 애스더리스크라 부른다.
-
sample21 은 특정 데이터베이스 테이블명이다.
-
FROM 으로 특정 테이블을 지정할 수 있다. 다른 테이블의 내용을 보고 싶을 경우 FROM 뒤에 테이블명을 재지정하면 된다.
-
입력이 끝나면 명령의 마지막을 나타내는 세미콜론(;)을 넣어야 한다.
2. 예약어와 데이터베이스 객체명
- SELECT 와 FROM 은 구를 결정하는 키워드이자 예약어이다.
예약어란?
예약어(reserved word) 는 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명으로 사용할 수 없는 단어들을 말한다. 예를 들어 C언어에서 return은 변수명이나 함수명으로 사용할 수 없다.
- 데이터베이스에는 테이블 외에 다양한 데이터를 저장하거나 관리하는 ‘어떤 것’을 만들 수 있다. 이것을 ‘데이터베이스 객체’ 라고 부르는데 ‘뷰(View)’도 DB객체 중에 하나이다.
=> 데이터베이스 객체 : 테이블, 뷰(View) 등등
대소문자 구별
- SQL명령은 예약어와 데이터베이스 객체명의 대소문자를 구별하지 않는다. 다음은 그 예를 든 것으로 모두 동일하게 동작한다.
select * from sample21;
Select * From Sample21;
SELECT * FROM SAMPLE21;
- 주의! SQL 명령과 달리 많은 데이터베이스 제품들은 데이터의 대소문자를 구별함을 주의하라. 이 책은 보기 쉽게 예약어는 대문자로, 데이터베이스 객체명은 소문자로 표기한다.
3. SELECT를 실행한 결과 : 테이블
+------+-----------+------------+---------------------------+
| no | name | birthday | address |
+------+-----------+------------+---------------------------+
| 1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
| 2 | 김재진 | NULL | 대구광역시 동구 |
| 3 | 홍길동 | NULL | 서울특별시 마포구 |
+------+-----------+------------+---------------------------+
3 rows in set (0.00 sec)
=> 각 행의 no 열 값은 1, 2, 3 처럼 연속하는 숫자로 이루어진다. 이처럼 숫자만으로 구성된 데이터를 ‘수치형’ 데이터라고 한다.
=> SELECT 명령을 실행하면 위와 같이 표 형식의 데이터가 출력된다. 표 형식의 데이터는 ‘행(레코드)’ 과 ‘열(컬럼/필드)’ 로 구성된다.
=> 각각의 행과열이 만나는 부분을 ‘셀’ 이라 하고, 셀에는 하나의 데이터 값이 저장되어 있다. ( 셀 = 한 칸 )
=> 열은 하나의 자료형만 가질 수 있다. 그리고 수치형 데이터(like ‘no’)의 열에 문자형의 데이터는 저장할 수 없다.
- 데이터는 자료형으로 분류할 수 있고, 열은 하나의 자료형만 가질 수 있다!
4. 값이 없는 데이터 = NULL
| 2 | 김재진 | NULL | 대구광역시 동구 |
| 3 | 홍길동 | NULL | 서울특별시 마포구 |
=> SELECT의 결과를 잘 살펴보면 셀의 값이 ‘NULL’ 로 표시된 부분이 있는데 NULL 이란 데이터가 저장되어 있는 것이 아닌, ‘아무것도 저장되어 있지 않은 상태’ 를 의미한다.
- NULL 은 데이터가 들어있지 않은 것을 의미하는 특별한 값이다!