지지 On Air

2-1-2. SELECT문 본문

개발/SQL [SQLD&SQLP]

2-1-2. SELECT문

슈스 지지 2022. 7. 18. 20:49
반응형

 


이제 SQL문의 시작으로 SELECT문 부터 살펴보겠습니다.

당연한 말이겠지만 1장 'SQL 기본' 에서는 SQL의 기초적인 내용부터 다루고 있으니 어렵지 않습니다.

꼭 이해하시고 활용하시면 좋겠습니다 :)


 

과목 II. SQL 기본과 활용
  - 제1장 SQL 기본
    > 제1절 SELECT 문

 

1. SELECT

SELECT문은 쉽게 말해 데이터를 조회하는 구문이다. 기본적인 골격은 다음과 같다.

SELECT [ALL/DISTINCT] 칼럼명1, 칼럼명2 ...
FROM 테이블명

- ALL : 디폴트 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력된다.

- DISTINCT : 중복된 데이터가 있을 경우 1건으로 처리해 출력한다.

 

쉬운 예제로 'PLAYER' 테이블에서 'PLAYER_ID', 'PLAYER_NAME', 'TEAM_ID', 'POSITION' 데이터를 조회하는 쿼리문을 작성하면 다음과 같다.

SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION
FROM PLAYER

이렇게 쿼리를 실행하면 다음과 같은 결과를 볼 수 있을것이다.

PLAYER_ID PLAYER_NAME TEAM_ID POSITION
A1001 박주호 K01 DF
A1002 이승우 K01 FW
A1003 조현우 K02 GK
... ... ... ...

 

DISTINCT

DISTINCT 옵션을 사용한 예제는 다음과 같다.

TEAM_ID의 종류를 조회하기 위해 DISTINCT를 사용하였다.

SELECT DISTINCT TEAM_ID
FROM PLAYER

다음과 같은 결과가 출력된다.

TEAM_ID
K01
K02
...

 

애스터리스크(*) 사용하기

*는 해당 테이블의 모든 칼럼 정보를 보고싶을때 사용한다.

SELECT *
FROM PLAYER

다음과 같은 결과가 출력된다.

PLAYER_ID PLAYER_NAME TEAM_ID POSITION BACK_NO HEIGHT WEIGHT
A0001 박주호 K01 DF 6 175 71
A0002 이승우 K01 FW 11 173 63
A0003 조현우 K02 GK 21 189 75
A0004 기성용 K03 MF 6 189 75
... ... ... ... ... ... ...

해당 테이블의 모든 칼럼 정보가 출력된다.

 

ALIAS 부여하기

조회된 결과에 일종의 별명(ALIAS, ALIASES)을 부여해 칼럼 테이블을 변경할 수 있다.

칼럼 별명에 대한 사항을 정리하면 다음과 같다.

- 칼럼명 바로 뒤에 온다

- 칼럼명과 ALIAS 사이에 AS, as 키워드를 사용할 수 있다 (옵션)

- 이중 인용부호(Double quotation)는 ALIAS가 공백, 특수문자를 포함할 경우와 대소문자 구분이 필요할때 사용한다.

 

예제는 다음과 같다. 위의 예제에서 'PLAYER_NAME','POSITON' 등과 출력되었던 칼럼명을 '선수명', '위치' 등으로 출력하였다.

SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키
FROM PLAYER

이때 AS는 꼭 사용하지 않아도 되지만, 가독성 측면에서 AS를 사용하는 편이 바람직하다.

결과는 다음과 같다.

선수명 위치
박주호 DF 175
이승우 FW 173
조현우 GK 189
기성용 MF 189
... ... ...

 

2. 산술 연산자와 합성 연산자

산술연산자

산술 연산자는 NUMBER와 DATE 자료형에 대해 적용되며, 일반적으로 수학의 사칙연산과 동일하다. 또한 우선순위를 위한 괄호 적용이 가능하다. 수학에서와 마찬가지로 (),*,/,+,- 의 우선순위를 갖는다.

일반적으로 산술 연산을 사용하거나 특정 함수를 적용하면 칼럼의 레이블이 길어지기에 적절한 ALIAS를 새롭게 부여하는것이 좋다.

SELECT PLAYER_NAME AS '선수명', HEIGHT - WEIGHT AS '키-몸무게'
FROM PLAYER

PLAYER테이블에 선수명과 선수의 키-몸무게 값을 출력하는 쿼리문이다. 결과는 다음과 같다.

선수명 키-몸무게
박주호 4
이승우 10
조현우 14
기성용 14
... ...

 

합성연산자

문자와 문자를 연결하는 합성(CONCATENATION) 연산자를 사용하면 별도의 프로그램 도움없이 SQL 문장 만으로도 유용한 리포트를 출력 할 수 있다. 특징은 다음과 같다.

- 문자와 문자를 연결하는 경우 2개의 수직 바 (||)를 사용한다 (Oracle)

- 문자와 문자를 연결하는 경우 + 표시를 사용한다 (SQL Server)

- CONCAT (string1, string2) 함수를 사용할 수 있다. (Oracle, SQL Server)

- 칼럼과 문자 또는 다른 칼럼과 연결한다.

- 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.

 

다음 예제는 합성연산자를 사용하여 선수들의 이름, 키, 몸무게를 한 칼럼으로 조회하는 쿼리문이다.

SELECT PLAYER_NAME || ' 선수, ' || HEIGHT || ' cm, ' || WEIGHT || ' kg' as 체격정보
FROM PLAYER

결과는 다음과 같다.

체격정보
박주호 선수, 175 cm, 71 kg
이승우 선수, 173 cm, 63 kg
조현우 선수, 189 cm, 75 kg
기성용 선수, 189 cm, 75 kg
...

 

 


이번 절에서는 selet문에 대한 기본 내용을 예제를 통해 다뤘습니다.

예제를 축구선수들로 시작했더니 생각나는 선수들을 계속 검색해봤네요 ㅋㅋㅋ 

SQL을 처음 접하시는 분들도 쉽게 이해 하셨기를 바랍니다 :)

 

하트와 구독, 댓글은 큰 힘이 됩니다 ❤


본 포스팅은 '한국데이터산업진흥원' 에서 발행한 'SQL 전문가 가이드' 를 참고/인용 하였음을 밝힙니다.
반응형
Comments