반응형

이번에는 Select 명령을 이용한 데이터 검색에 대해 설명해 보겠습니다.

이제부터 모든것은 Mysql을 기준으로 설명하겠습니다.


  1. Select 명령

SQL에서는 아래와 같이 기본적인 구조의 Select 명령어를 사용할 수 있습니다.


“SELECT * FROM 테이블명;"


이 구조를 가지고 계속 설명을 하겠습니다.

위 명령문을 가지고 mysql에서 실행시  테이블명에 해당하는 테이블에서 데이터를 검색하여 결과를 보여줍니다.

스크린샷 2017-02-14 오후 1.44.47.png

[그림 1. 명령어 실행 화면]


명령어들은 우리가 흔히 ‘질의' 또는 ‘쿼리'라고 부릅니다. 앞으로는 쿼리라는 명칭으로 통일하겠습니다. 그러면 위 그림에서 실행한 쿼리를 한번 살펴 보겠습니다.



예약어

테이블명


SELECT

*

FROM

exam01

;

쿼리의 종류

모든 컬럼

~테이블로부터

테이블 명

쿼리의 마지막

[표 1. select 쿼리 구조]


  • SELECT는 SQL 명령 중 하나로 SELECT 쿼리를 실행하겠다는 의미입니다.

  • 애스터리스크(*) 는 테이블의 모든 컬럼을 의미하는 메타 문자입니다.

  • FROM은 처리 대상 테이블을 지정하는 키워드입니다.

  • 조회할 테이블 명을 입력합니다.

  • 세미콜론 (;) 중요합니다. 쿼리의 마지막에 꼭 들어가야하며 세미콜론이 없이 쿼리를 실행할 경우 쿼리 작성 중으로 인식하여 실행이 되지 않거나 다른 쿼리와 구분이 되지 않아 에러가 발생할 수 있습니다.


SELECT 와 FROM은 데이터베이스의 예약어입니다.

또한 데이터베이스 객체는 이름을 붙여서 관리를 합니다. 예를 들어보면 [그림 1]에서 보는 것처럼 exam01이라는 테이블이 데이터베이스에 존재합니다. 여기서 동일한 이름의 테이블을 생성하면 ‘이미 테이블이 정의되어 있다.’는 에러가 발생합니다.

통상적으로 데이터베이스 객체명에는 예약어나 동일한 이름을 사용할 수 없습니다.


SQL에서는 예약어와 데이터베이스 객체명을 대소문자를 구별하지 않습니다. 예를 들면 아래의 표와 같은데 모두 동일하게 결과를 보여주는 쿼리입니다.


select * from exam01;

소문자로만 작성

Select * From Exam01;

대소문자 혼용

SELECT * FROM EXAM01;

대문자로만 작성

[표 2. 쿼리의 대소문자 구별]


하지만 SQL 명령과 달리 많은 데이터베이스 제품들이 대소문자를 구별합니다.

지금 실습하기로한 Mysql 에서도 제가 지금 확인해보니 소문자로만 작성 했을 때 잘 작동하지만

테이블 명을 대문자나 대소문자를 혼용했을 경우 에러가 발생했습니다. 예약어는 대소문자 관계 없이 잘 작동했습니다. 실습에 사용한 버전은 Mysql 5.7입니다.


지금까지 쿼리의 구조와 사용에 대한 설명을 했습니다. 다음으로 실행한 결과 화면에 대한 이야기를 해보겠습니다.


첨부했던 이미지가 이제는 안보인것 같으니 아래 표로 결과를 한번 그려보겠습니다.


열(컬럼/필드)


id

name

birthday

address

컬럼명

1

김일빵

1999-03-01

서울시 구로구

행(레코드)

2

김이빵

NULL

서울시 금천구

3

김삼빵

NULL

서울시 마포구

[표 3. 쿼리의 실행 결과]


SELECT 쿼리 실행 시 위의 [표 3]과 같이 테이블의 조회 결과를 표형식의 데이터로 출력합니다. 요약하면 테이블은 행과 열로 구성된 표 형식의 데이터라는 것입니다.

여기서 설명할 것은 열은 하나의 자료형만 가질 수 있고 데이터는 자료형으로 분류할 수 있다는 것입니다. 또한 데이터에서 NULL로 표시된 부분이 있습니다. NULL은 데이터가 들어있지 않는 것을 의미하는 특별한 값입니다.

반응형

+ Recent posts