본문 바로가기

데이터베이스/관계형 데이터베이스

[데이터베이스] SQL Basics

MySQL을 사용하여 데이터 베이스를 생성하고, 기본 쿼리문을 통해 실습해 보는 시간을 가지도록 하겠습니다.

 

데이터베이스 생성


데이터베이스 생성

CREATE DATABASE practice;

practice 데이터베이스를 생성합니다.

 

데이터베이스 사용

USE practice;

데이터 베이스를 이용해 테이블을 만들거나 수정하거나 삭제하는 등의 작업을 하려면, 먼저 데이터베이스를 사용하겠다는 명령을 전달하여야 합니다.

 

테이블 생성

CREATE TABLE user (
	id int PRIMARY KEY AUTO_INCREMENT,
    	name varchar(255),
    	email varchar(255)
);

 

user 테이블을 만드는 예제입니다. 테이블은 필드와 함께 만들어야 합니다. 위의 코드 예제에서 생성한 테이블은 아래와 같은 필드 조건이 있습니다.

 

필드 이름 필드 타입 속성
id 숫자 Primary key이면서 자동 증가되도록 설정
name 문자열(최대 255개)  
email 문자열(최대 255개)  

 

테이블 정보 확인

DESCRIBE user;

 

위의 명령어를 입력 시 아래와 같이 user 테이블의 정보를 확인할 수 있습니다.

 

 

 

SQL 명령어 간략하게 살펴보기


MySQL에서 자주 사용하는 명령어 몇 가지를 간략하게 살펴봅시다.

 

SELECT

  • SELECT는 데이터셋에 포함될 특성을 특정합니다.

 

SELECT 'hello world'
// 일반 문자열
SELECT 2
// 숫자
SELECT 15 + 3
// 간단한 연산

 

FROM

  • 테이블과 관련한 작업을 할 경우 반드시 입력하여야 합니다. FROM 뒤에는 결과를 도출해 낼 데이터베이스 테이블을 명시합니다
SELECT 특성_1
FROM 테이블_이름
// 특정 특성을 테이블에서 사용

SELECT 특성_1, 특성_2
FROM 테이블_이름
// 몇 가지의 특성을 테이블에서 사용

SELECT *
FROM 테이블_이름
// 테이블의 모든 특성을 선택

*는 와일드카드(WILDCARD)로 전부 선택할 때에 사용합니다.

 

WHERE

  • 필터 역할을 하는 쿼리문입니다. WHERE은 선택적으로 사용할 수 있습니다.
SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 = "특정 값"
// 특정 값과 동일한 데이터 찾기

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 <> "특정 값"
// 특정 값을 제외한 값을 찾기

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 > "특정 값"

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 <= "특정 값"
// 특정 값보다 크거나 작은 데이터를 필터

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 LIKE "%특정 문자열%"
// 문자열에서 특정 값과 비슷한 값들을 필터

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 IN ("특정값_1", "특정값_2")
// 리스트의 값들과 일치하는 데이터를 필터

SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NULL
// 값이 없는 경우 'NULL'을 찾을 땐 'IS'와 함께 사용

SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NOT NULL
// 값이 없는 경우를 제외할 때에는 'NOT'을 추가하여 이용

 

ORDER BY

  • 돌려받는 데이터 결과를 어떤 기준으로 정렬하여 출력할지 결정합니다.
SELECT *
FROM 테이블_이름
ORDER BY 특성_1
// 오름차순 정렬

SELECT *
FROM 테이블_이름
ORDER BY 특성_1 DESC
// 내림차순 정렬

 

LIMIT

  • 결과로 출력할 데이터의 개수를 정합니다. LIMIT은 선택적으로 사용할 수 있으며, 쿼리문에서 사용할 때에는 가장 마지막에 추가합니다.
SELECT *
FROM 테이블_이름
LIMIT 200
// 결과를 200개만 출력

 

DISTINCT

  • 유니크한 값을 받고 싶을 땐 SELECT DISTINCT를 사용할 수 있습니다.
SELECT DISTINCT 특성_1
FROM 테이블_이름

// 특성 1을 기준으로 유니크한 값들만 선택

SELECT
  DISTINCT
    특성_1
    ,특성_2
    ,특성_3
FROM 테이블_이름

// 특성_1, 특성_2, 특성_3의 유니크한 '조합' 값들을 선택

 

INNER JOIN

  • INNER JOIN이나 JOIN으로 실행할 수 있습니다.
SELECT *
FROM 테이블_1
JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
// 둘 이상의 테이블을 서로 공통된 부분을 기준으로 연결

 

OUTER JOIN

  • Outer JOIN은 다양한 선택지가 있습니다.
SELECT *
FROM 테이블_1
LEFT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
//LEFT OUTER JOIN으로 LEFT INCLUSIVE를 실행

SELECT *
FROM 테이블_1
RIGHT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
//RIGHT OUTER JOIN으로 RIGHT INCLUSIVE를 실행