파이썬 문법만 100일째 공부중인 IT초보의 페이지 자세히보기

Lv02. 디비~DB~딥!/3. SQLD : SQL 기본

2. SELECT 문

오늘도레벨1 2023. 7. 5. 12:25
728x90
SMALL

 

안녕하세요 :0

오늘도레벨1입니다.

 

오랜만의 새 포스팅입니다.

 

지난 포스팅에서는

관계형 데이터베이스 개요를

학습해 보았습니다.

 

아직 관계형 데이터베이스가

무엇인지 모르시는 분이라면

아래의 링크를 보고 와주세요!

 

 

 

1. 관계형 데이터베이스 개요

안녕하세요 :0 오늘도레벨1입니다. 포스팅을 작성하는 시간이 금요일 오후네요. 맛점 하셨을까요? 새로운 카테고리입니다. 바로 SQLD(SQL개발)의 세번째 파트인 "SQL기본"입니다. 그리고 "SQL기본"파

seung9-it.tistory.com

 

 

이번 포스팅 부터는

SQL의 기초 쿼리문에 대해서

하나씩 짚어가면서 순차적으로

학습을 진행할 예정입니다.

 

그 중 가장 처음으로 다루어볼 쿼리문은

SQL을 조금만 들어보았다면

누구나 한 번은 들어보았을 만한...!

 

마치 수학시간의 집합 단원과 같은...!

테이블에 저장되어 있는 데이터를

조회하는데 사용하는

SELECT문 입니다.

 

 

 

 

그럼 이 SELECT 문이라는 것이

어떻게 데이터를 조회하고

어떻게 사용하는지 알아볼까요?

 

기본적으로 앞으로 학습할 쿼리문 문법은

Oracle DBMS를 기준으로 합니다.

 

우선 아래의 데이터가 담긴 '회사'라는

테이블이 존재한다고 가정하겠습니다.

 

 

[TABLE: 회사]

NAME EMPLOYEE_NUMBER DEPARTMENT
안군 1001 분석팀
허양 1002 홍보팀
김군 1003 인사팀
김군 1004 재무팀

 

 

그리고 위의 TABLE로 부터

몇 가지 데이터를 조회하며

SELECT문의 문법을 알아볼까요?

 

우선 저는 회사 테이블의 직원들의

이름을 모두 조회하고 싶습니다.

 

그렇다면 이렇게 쿼리를 작성할 수 있습니다.

 

# 회사 TABEL 내 모든 직원의 이름을 조회하기

SELECT NAME FROM 회사;

 

쿼리를 실행해보니

아래와 같은 결과가

출력이 되었습니다!

 

 

 

 

하지만 김군이 두명이기 때문에

각각의 김군이 구분이 되지 않는 군요!

 

따라서, 이번에는 이름과 부서까지 함께

조회해보도록 하겠습니다.

 

# 회사 TABLE 내 모든 직원의 이름과 부서를 조회하기

SELECT NAME, DEPARTMENT FROM 회사;

 

출력결과를 볼까요?

 

 

 

 

아하! 인사팀에 김군이 있고

재무팀에도 김군이 있는 것이군요!

 

위의 2개의 예시 쿼리와 같이

SELECT문은 테이블에서

원하는 데이터를 조회하며

문법은 다음과 같답니다.

 

"SELECT 컬럼1, 컬럼2, 컬럼3... FROM 테이블명"

 

물론 뒤에 특별한 조건을 넣는 방법들도 있는데

이후에 전부 다루어볼 예정이니 참고해주세요~!

 

이러한 SELECT 문은 옵션을 넣어서

데이터를 조회하는 것도 가능한데요!

 

대표적인 옵션이 DISTINCT입니다.

 

앞서 첫 번째 예시에서 회사 테이블 내

모든 직원의 이름을 조회하면 "김군"이라는

이름을 가진 사람이 중복하여 조회가 되었죠?

 

하지만 만약 중복을 제거 하고 싶다면?

그럴 경우는 아래와 같이 DISTINCT 옵션을

활용하여주면 되겠습니다.

 

 

# 회사 내 TABLE의 모든 직원의 이름을 조회 (중복이름 제거)

SELECT DISTINCT NAME FROM 회사;

 

 

그리고 출력결과는 예상하신대로

아래와 같이 확인 가능합니다!

 

 

 

 

또한,  아래 쿼리처럼

컬럼을 따로 지정하지 않고

컬럼명이 들어갈 위치에

* (ASTERISK)를 쓴다면

모든 컬럼을 조회할 수도 있습니다.

 

 

# 모든 컬럼의 데이터를 조회하기

SELECT * FROM 회사;

 

 

출력 결과는 예상한대로

다음과 같습니다.

 

 

 

 

하지만 출력결과를 보는데

컬럼명이 너무 길어서 요약해서

출력을 하고 싶을 수도 있겠네요!

 

이럴때는 별칭(ALIAS)이라는 것을

활용할 수도 있습니다.

 

ALIAS는 칼럼명 뒤에 "AS 별칭명"을

넣어서 사용해주면 되는데요.

 

단, 테이블명에 ALIAS를 지정할 때는

AS를 쓰지 않으니 주의해주세요!

 

쿼리를 직접 보는 편이 빠를 것 같습니다.

 

 

# 사원번호 컬럼과 부서 컬럼에 ALIAS(별칭) 부여하기

SELECT NAME, EMPLOYEE_NUMBER AS EMP_NO, DEPARTMENT AS DEPT FROM 회사;

 

 

그리고 출력결과는 다음과 같습니다.

 

 

 

 

지금은 컬럼명이 길다는 이유로

ALIAS를 부여했지만 실제로는

최종 결과 컬럼의 의미를 부여하기 위해서

ALIAS가 정말 많이 사용되며 앞으로 쭉

학습하시다보면 ALIAS의 활용은 자연스럽게

체득하실 수 있을 것 같습니다.

 

 

이번에는 조금 더 나아가서

SELECT문을 활용한 산술 연산자와

합성 연산자에 대해서 알아보도록 하겠습니다!

 

 

산술연산자는 아시다시피

사칙연산을 생각하시면 될 것 같은데요.

 

다음과 같은 쿼리를 작성해보겠습니다.

 

 

# DUAL 테이블을 활용한 산술연산 쿼리

SELECT (2+2*4)/10 AS RESULT FROM DUAL;

 

 

쿼리 내 산술연산을 진행하면 1이죠?

그럼 쿼리를 실행 후 결과값도 동일한지

확인해보도록 하겠습니다!

 

 

 

 

위의 출력 결과를 보시면

컬럼명은 ALIAS명인 RESULT로

결과값은 1로 잘 출력되었네요.

 

여기서 잠깐..!

DUAL 테이블은 무엇인지 궁금하실 수 있겠죠?

 

DUAL은 오라클 데이터베이스에

내장되어 있는 가상의 테이블입니다.

 

따라서 산술연산도 진행하고

임의의 문장도 출력하고

오늘의 날짜를 출력하는 함수(SYSDATE) 등의

결과값을 출력하기 위해 문법상 사용가능한

가상의 테이블이라고 생각하시면 되겠습니다.

 

 

말이 나온김에 'HELLO, SQL'이라는 문장을

한 번 쿼리로 작성해서 출력해볼까요?

 

 

# DUAL 테이블을 활용한 문장 출력

SELECT 'HELLO, SQL' AS RESULT FROM DUAL;

 

 

쿼리를 실행하니 예상한대로 아래와 같은

결과를 얻어볼 수 있군요!

 

 

 

 

그럼 이번 시간에 다루어볼

마지막 내용인 합성연산자입니다.

 

합성연산자란 문자와 문자를

연결할때 사용하는 연산자인데요.

 

앞서 'HELLO, SQL' 이라는 문장을

출력하기 위해서 'HELLO,' 와 'SQL' 이라는

단어를 합성하여 생성해보도록 하겠습니다.

 

 

# 합성연산자를 활용해 문장 출력하기

SELECT 'HELLO,' || 'SQL' AS RESULT FROM DUAL;

 

 

쿼리는 위와 같이 작성하면 됩니다.

쿼리를 보시면 연결자로 두개의 수직바(||)가

사용이 된 것을 보실 수 있는데요

 

키보드의 중앙 엔터위의 원화표시 보이실까요?

원화표시 위에 수직 막대기가 있는데

그 기호를 사용한 것입니다.

 

 

그럼 쿼리를 실행해볼까요?

 

 

 

예상했던 결과를 얻을 수 있군요!

 

 

이렇게 이번 시간에는

SELECT 문에 대해서

학습해봤습니다.

 

어렵지 않죠?

하나하나씩 차근차근 해나가다 보면 금새

SQL개발자가 되어 있으실 겁니다.

 

 

그럼 다음포스팅에서

다시 찾아뵙도록 하겠습니다.

 

감사합니다.

 

 

 

 

구독과 좋아요는 제게 큰 힘이 됩니다 :)

 

728x90
LIST

'Lv02. 디비~DB~딥! > 3. SQLD : SQL 기본' 카테고리의 다른 글

1. 관계형 데이터베이스 개요  (6) 2023.05.12