관리 메뉴

TEAM EDA

[SQL 기초] 1장. SQL 시작하기 본문

EDA Study/SQL

[SQL 기초] 1장. SQL 시작하기

김현우 2020. 3. 19. 13:05

본 자료는 Elice Academy에서 진행한 SQL 기초라는 과목을 정리한 자료입니다. 

 

 

목차 

  • SQL 이란? 

  • 검색 - SELECT 

  • 조건 - WHERE

  • 다양한 조건 - WHERE 

1. SQL 이란? 

SQL이란 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용되는 명령어입니다. SQL의 구성요소로는 크게 3가지 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)으로 구성됩니다. 

 

  • 데이터 정의어(DDL) : 데이터 베이스를 생성하거나 테이블을 만드는 언어 

  • 데이터 조작어(DML) : 데이터베이스에 저장된 데이터를 조회하거나 수정, 삭제하는 등의 역할을 하는 언어 

  • 데이터 제어어(DCL) : 사용자의 권한을 설정하는 언어 

DML의 예시

테이블이란 항상 이름을 가지고 있는 리스트로 데이터가 저장되어있는 공간을 의미. 테이블은 행(ROW)과 열(COLUMN) 그리고 거기에 대응하는 값(FIELD)으로 구성되어 있다. 

Table

2. 검색 - SELECT 

SELECT는 테이블에 저장된 데이터를 검색하는 명령어입니다. 예를들어, 아래의 그림처럼 book 테이블에서 책의 제목과 저자만을 검색하는 것을 말할 수 있습니다. 

기본적인 문법은 아래와 같이 구성되는데, 검색할 컬럼 부분에 *라는 명령어를 입력시에 전체 컬럼을 가져올 수도 있습니다. 

book 테이블에서 모든 책의 title과 author 컬럼을 검색
검색할 컬럼에 *을 입력하면 모든 데이터가 검색 

실습 1. 데이터 검색하기 

SELECT * FROM book;

실습 2. 데이터 검색하기 2

-- 책의 제목과 저자만 골라서 조회하는 쿼리를 작성해주세요.
SELECT title, author FROM book

3. 조건 - WHERE

WHERE 절이란 검색하고자 하는 데이터의 조건을 설정할 수 있는 명령으로서 테이블의 특정 데이터를 검색하려고 할 때 사용된다. 예를 들어, 책 정보를 저장하는 book 테이블에서 제목이 '돈키호테'인 책을 검색해보자고 할 때 WHERE 절이 사용된다. 

WHERE 문의 기본 문법은 FROM 테이블 뒤에 비교 연산자와 함께 조건을 달아줌으로써 사용된다. 

제목이 '돈키호테'인 책 데이터를 book 테이블에서 검색

실습 3. 데이터 다양하게 검색하기 1

문제 : 엘리스 도서관에서는 유명 작가인 Joanne Kathleen Rowling의 책들을 가지고 이벤트를 하려고 합니다. 이 이벤트를 위해서는 대상이 되는 책들을 모두 골라내야 합니다. 앞서 배운 where를 이용해 Joanne Kathleen Rowling작가의 책만 조회해 봅시다.

-- Joanne Kathleen Rowling작가의 책만 골라서 조회하는 쿼리를 작성해주세요.

SELECT * FROM book WHERE author = 'Joanne Kathleen Rowling'

4. 다양한 조건 - WHERE

위에서 배운 WHERE을 좀 더 심화해서 사용하는 것으로 하나의 조건뿐 아니라 여러 개의 조건을 사용할 수 있다. 

수학 점수가 80 초과, 국어 점수가 90 이상인 값을 검색

비교 연산자 

비교 연산자 사용 검색 

score 테이블에서 국어 성적이 90 이상인 값 검색

복합 조건 연산자 

복합조건 연산자 사용 검색 

score 테이블에서 국어 성적이 90 이상이거나 수학 성적이 80 초과인 값 검색

기타 연산자 

기타 연산자 사용 검색

score 테이블에서 수학 성적이 80과 90사이의 값 검색 (80과 90인 값도 포함)

실습 4. 데이터 다양하게 검색하기 2

문제 : 엘리스네 반 선생님은 중간고사의 성적에 따라서 선물을 주겠다고 약속했습니다. 국어, 영어, 수학 점수 중 하나라도 100점인 학생에게는 짜장면을 사주시기로 약속했고3과목 모두 70~95점 사이인 학생에게는 과자를 사주신다고 했습니다. 여러분은 학생들의 성적이 담겨있는 score테이블에서 짜장면을 받을 학생과 과자를 받을 학생을 차례대로 조회해 봅시다.

-- 짜장면을 받을 수 있는 학생을 조회하는 쿼리를 작성해주세요.
SELECT * FROM score WHERE korean = 100 OR english = 100 OR math = 100;


-- 과자를 받을 수 있는 학생을 조회하는 쿼리를 작성해주세요.
SELECT * FROM score 
WHERE korean 
BETWEEN 70 AND 95 
AND english BETWEEN 70 AND 95 
AND math BETWEEN 70 AND 95

실습 5. 데이터 다양하게 검색하기 3

문제 : 엘리스는 자기가 좋아하는 작가들이 작성한 책만 골라내려고 합니다. 다음 작가가 쓴 책들만 골라서 출력해 봅시다.

 

  • William Shakespeare

  • John Ronald Reuel Tolkien

  • Joanne Kathleen Rowling

-- 해당하는 작가가 쓴 책만 골라서 출력합니다.
-- SELECT * FROM book 
-- WHERE author = 'William Shakespeare' OR author = 'John Ronald Reuel Tolkien' OR author = 'Joanne Kathleen Rowling'

SELECT * FROM book 
WHERE author in ('William Shakespeare', 'John Ronald Reuel Tolkien', 'Joanne Kathleen Rowling')

※ 참고

1. SQL에서의 주석 사용법 

SQL에서 한 줄(Line) 주석은 아래와 같이 사용할 수 있습니다.

-- 한 줄 주석을 사용하려면 -- 입력 후 한 칸을 띄우고 원하는 메세지를 입력하세요!

여러 줄(Multi Line) 주석은 아래와 같이 사용할 수 있습니다.

/* 이와 같이 슬래시(/)와 별(*)을 붙여서 작성한 후에 
원하는 메세지를 전부 입력했다면 별(*)과 슬래시(/)를 작성하면 됩니다.*/

 

2. SQL에서의 데이터 종류 

int 

정수 자료형입니다. 예를 들어 물건의 가격, 수량 등을 저장하는 데 사용됩니다.

해당 자료형을 통해 -2147483648 ~ 2144483647의 값을 저장할 수 있습니다.

 

float 

실수 자료형입니다. int는 소수점 이하의 부분이 없지만 float는 3.14와 같이 소숫점 이하의 부분까지 저장합니다.

따라서 사람들의 키나 몸무게 등처럼 소숫점 아래까지 저장해야 하는 경우에 사용합니다.

 

char

문자열 자료형입니다. 따라서 이름,

char(n)과 같은 방식으로 사용합니다. 이경우 n글자를 저장하게됩ㄴ니다.

char(5) 일 경우, 5글자를 저장하며 5글자가 되지 않을 경우 공백을 추가하여 5글자를 맞추게 됩니다.

'elice'와 같이 작은따옴표를 이용해 문자열인 것을 표시합니다.

 

varchar

문자열 자료형입니다.

char과 다른 점은 char의 경우 정해진 글자보다 짧으면 공백을 추가하지만 varchar은 공백을 추가하지 않고 그대로 저장합니다.

 

date

년, 월, 일을 저장하는 날짜 자료형입니다.

예를 들어 1945년 8월 15일을 나타내기 위해서는 '1945-08-15'라고 작성합니다.

해당 자료형을 통해 '1001-01-01'~ '9999-12-31'까지 저장할 수 있습니다.

 

datetime

년, 월, 일, 시, 분, 초까지 저장하는 날짜와 시각 자료형입니다.

예를 들어 1945년 8월 15일 12시 0분 0초를 나타내기 위해서는 '1945-08-15 12:00:00'라고 작성합니다.

해당 자료형을 통해 '1001-01-01 00:00:00'~ '9999-12-31 23:59:59'까지 저장할 수 있습니다.

 

time

시간, 분, 초를 저장하는 시간 자료형입니다.

예를 들어 10시간 13분 35초를 나타내기 위해서는 '10:13:35'라고 작성합니다.

해당 자료형을 통해 '-838:59:59' ~ '838:59:59'까지 저장할 수 있습니다.