내일배움캠프

2025.02.05. 내일배움캠프(사전캠프) 3일차

jjaio8986 2025. 2. 5. 18:43

<[KDC] 엑셀보다 쉽고 빠른 SQL 1주차 강의 개인 정리>

 

주제 : SQL의 이해와 데이터베이스 조회 방법

 

목차

  • SQL과 데이터베이스란?
  • 데이터 조회하기{'SELECT', 'FROM'}
  • 필요한 컬럼 선택 및 별칭 부여 방법
  • 필터링 방법 및 조건문
  • 에러메시지와 그에 대한 대응자세

  • SQL과 데이터베이스란?

1. SQL (Structured Query Language)

 - 정의 : “관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어” [쉬운 말로 데이터베이스와 대화를 하기 위한 언어.]

 - 일정한 문법 구조를 갖고 있어 이해하기 용이하며 데이터베이스에 데이터를 조작하기위한 요청문을 'Query'문이라고 한다.

 

2. 데이터베이스

 - 정의 : “전자적으로 저장되고 체계적인 데이터 모음으로 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있다.”

 [데이터베이스 = 여러 테이블을 포함하는 큰 틀]

 

- ‘테이블칼럼’ : 데이터베이스 내부에 대분류된 데이터집합이 있는데, 이를 테이블이라 한다. ‘테이블안에는 마치 도표처럼 데이터가 정렬되어 있으며 각 열[세로줄, 소분류]컬럼혹은 필드라고 부른다.

 [테이블 = 데이터가 행(row)과 열(column)로 구성된 구조로 저장되는 곳. 각 행은 하나의 데이터 레코드를 나타내고, 각 열은 데이터의 속성을 나타낸다.]

 

  • SQL 데이터 조회하기 {'SELECT', 'FROM'}

 - SQL을 이용하여 데이터베이스 내부의 데이터를 조회하기 위해선 쿼리문을 작성해야하는데 그 가장 기초적인 문법(명령어)이 {'SELECT', 'FROM'}이다.

 

- ‘SELECT' : 데이터를 가져오는 명령어데이터를 조회하는 모든 첫 쿼리에 사용된다.

[차후 데이터를 가져올 수 있는 다른 방법도 공부할 수 있으니 유일한 명령어로 혼동하지 않기]

 

- ‘FROM' : 데이터를 가져올 테이블특정해주는 문법

 

- ‘*’ : 'SELECT' 뒤에 사용되며 모든 컬럼을 가져온다는 의미를 담고 있다.

형식)

select *

from 테이블1

"테이블 1의 모든 데이터를 가져온다."

 

  • 필요한 컬럼 선택 및 별칭 부여 방법

1. 필요한 컬럼 선택 방법

- 테이블의 모든 컬럼이 필요하지 않고, 특정한 컬럼()을 조회할 때 사용하는 방법.

['select' 뒤에 ‘*’ 대신 필요한 컬럼의 명칭()을 적는다.]

형식)

select 컬럼1(, 컬럼2, )

from 테이블1

 

, 테이블 안에 있는 특정 컬럼을 조회하는 명령어이기에, 서로 다른 테이블의 컬럼들을 마구잡이로 select 뒤에 기입하여 조회 시 오류가 발생하니 주의하자.

 

2. 컬럼 별칭(alias) 부여 방법

 - 컬럼의 명칭이 너무 길거나, 복잡하거나, 기타 여러 사유로 조회 결과에 표기컬럼의 명칭변경하고 싶을 때 사용하는 방법

[ 원하는 컬럼을 선정한 뒤 그 옆에 별명을 기입하고 지정해 변경한다.]

 - 방법1 : ‘select 컬럼1 as 별칭1’

 - 방법2 : ‘select 컬럼1 별칭1’

 - 유의사항 : 컬럼이나 별칭이 영문이나 언더바가 사용되면 위의 방법을 그대로 따르면 되나 특수문자 혹은 한글일 경우 큰따옴표 안에 작성한다.

구분 (사용하는 언어종류) 영문, 언더바 특수문자, 한글
방법 별명만 적음 별명으로, 큰 따옴표 안에 적어줌
예시 ord_no "ord no"
"주문번호"

 

ex)

select restaurant_name as "음식점", addr address

from food_orders

 

  • 필터링 방법 및 조건문 {'WHERE'}

1. 데이터베이스 조회시 필터링 방법

 - 데이터 중 특정 조건을 필터링 해야 할 때가 있다. 이 경우 'WHERE' 명령어를 사용한다.

 - 'WHERE' 명령어는 'from'문 다음 줄에 작성하며 그 형식은 다음과 같다.

select *

from 테이블

where 필터링 조건

 

 - 가장 기본적인 조건(특정 컬럼에서 특정조건을 만족하는 데이터)은 ‘=’를 사용하여 줄 수 있다.

  ex) "고객 중 나이가 20살인 데이터만 조회 시"

select *

from customers

where age='20'

[여기서 숫자에 작은따옴표가 없어도 된다.]

 

 - 필터링은 숫자가 아닌 문자에도 사용 가능하다. , 문자 및 특수기호를 사용할 때는 반드시 작은따옴표를 사용해야 한다.

  ex) "고객 중 성별이 여성인 경우 조회 시"

select *

from customers

where gender='feamle'

 

2. 필터링의 다양한 조건들 (비교연산, BETWEEN, IN, LIKE)

 - 기본적인 조건 명령어 외에도 다음과 같은 것들이 있다.

 

 1) 비교연산자 [‘컬럼의 특정 데이터이상, 이하, 동일, 제외(와 다른)]

비교연산자 의미 예시
= 같다 age=21
gender='female'
<> 같지 않다(다르다) age<>21
gender<>'female'
> 크다 age>21
>= 크거나 같다 age>=21
< 작다 age<21
<= 작거나 같다 age<=21

 

 2) 'BETWEEN', 'IN', 'LIKE'

조건 의미 예시
BETWEEN a AND b a b 사이의 데이터 where age between 21 and 24
IN ('A', 1, 'B') '()'안 조건에 포함되는 데이터
[조건을 완전히 만족하여 특정할 때]
where age in (21, 24, 27)
like ‘문자%’ 특정 문자로 시작하는 데이터 where name like '%‘
like ‘%문자%’ 특정 문자가 들어가 있는 where name like '%%‘
like ‘%문자 특정 문자로 끝나는 데이터 where name like '%
like 조건문은 완전히 똑같진 않지만 비슷한 값을 찾는 것으로 여기서 ‘%’의 의미는 아무 데이터가 와도 상관 없음을 의미

 

3. 특정 컬럼에서 여러 조건을 적용 시{논리연산}

 - 하나의 쿼리문에 하나의 조건만이 아닌 여러 조건을 적용할 수 있으며 그를 위해 사용하는 연산을 논리연산이라고 한다.

 - 조건문들 사이에 연산을 위한 연산자가 들어가며 그 종류는 다음과 같다.

논리연산자 의미 예시
and 그리고 age>=20 and gender='female'
나이가 20세 이상이고, 여성
[‘and자리에 ‘,’를 사용하니 오류발생 ','‘and’를 대체불가]
or 또는 age>=20 or gender='female'
"나이가 20세 이상이거나, 여성
not 아닌 not gender='female'
"여성이 아닌

[논리연산자는 조건문들 사이에서 사용될 때 위와 같은 의미를 가지며 다른 쿼리문에 사용 시 다르게 적용 되거나 오류가 발생한다.]

 

  • 에러메시지와 그에 대한 대응자세

- 에러메시지는 아무리 숙련자라도 자주 발생하는 것으로 쿼리문 결과창에 에러코드 : 에러사유형식으로 나타난다.

- SQL은 에러사유가 나타나기에 에러 발생 시 에러 코드가 아닌 에러사유를 확인 하여 대응하는 것을 기본자세로 삼아야 한다.

 

cf) SQL사용 도구와 데이터베이스 등록 방법

SQL사용 도구 중 하나인 'DBeaver'를 통해 이미 정돈된 혹은 정돈중인 데이터베이스를 등록 할 수 있다.

- 'DBeaver'를 실행해 좌상단의 플러그 모양 아이콘을 클릭 새 창이 뜰 때 'MySQL' 선택 후 관계형데이터베이스망 서버를 입력하고 ‘Test Connection'을 클릭해 연결 상태를 확인 연결하면 데이터베이스가 등록된다.

 


※ 오늘자 강의 수강 중 느낀점

 - 강의마다 실습예제가 있어 실습하던 중 조건명령어 부분에서 자주 작은따옴표를 사용하지 않아 에러메시지가 발생하니, 쿼리문 작성 전 미리 작성하고자 하는 쿼리문을 개괄적으로 구상해보고 난 뒤에 침착하게 작성해야 할 것 같다. 

 

※내일 할 일

- 2강 마무리 및 요약 정리

- 아티클 정독 후 인사이트 파악 및 팀 스터디 준비