Post

[SQL 첫걸음] 2장: 테이블에서 데이터 검색

[SQL 첫걸음] 2장: 테이블에서 데이터 검색

“SQL 첫걸음” 도서 바로가기

2장: 테이블에서 데이터 검색

4강. Hello World 실행하기

1
SELECT * FROM 테이블명

1. ‘SELECT * FROM 테이블명’ 실행

2. SELECT 명령 구문

  • SELECT: 가져올 열(Column)을 지정. 모든 열을 선택할 때는 *을 사용.
    • *: 모든 열을 의미하는 메타문자
  • FROM: 데이터를 찾을 테이블(Table)을 지정.

3. 예약어와 데이터베이스 객체명

  • 1. 예약어 (Reserved Words)
    • 정의: SQL 언어에서 특정 기능을 수행하기 위해 미리 정의된 단어
    • 특징: SELECT, FROM, WHERE, CREATE, TABLE 등이 해당하며, 시스템이 명령어로 인식하기 때문에 원칙적으로 테이블명이나 열 이름으로 사용할 수 없음.
  • 테이블명 (Table Name)
    • 정의: 데이터가 저장되는 표(Table)에 사용자가 붙인 고유한 이름
    • 특징: 데이터베이스 내에서 중복될 수 없으며, 해당 테이블이 담고 있는 데이터의 의미를 잘 나타내도록 명명함.
1
SELECT * FROM sample21;
  • 대소문자 구별: 예약어와 데이터베이스의 객체명은 대소문자 구별하지 않음.

4. Hello World를 실행한 결과 = 테이블

  • 테이블: 행과 열로 구성된 표 형식의 데이터
  • 데이터는 자료형으로 분류
    • 수치형 데이터: 숫자만으로 구성된 데이터. 오른쪽 정렬로 표시됨.
    • 문자열형 데이터: 임의의 문자로 구성된 데이터. 왼쪽 정렬로 표시됨.
    • 날짜시간형 데이터: 날짜와 시각을 나타내는 데이터. 왼쪽 정렬로 표시됨.
  • 열은 하나의 자료형만 가질 수 있음!

5. 값이 없는 데이터 = NULL

  • NULL: 데이터가 들어있지 않은 것을 의미

5강. 테이블 구조 참조하기

1
DESC 테이블명;

1. DESC 명령

: 테이블의 구조(컬럼 정보)를 확인하고 싶을 때 사용하는 명령어

2. 자료형

  • INTEGER 형: 소수점이 없는 정수(숫자)를 저장하는 자료형
  • CHAR 형 (고정 길이 문자열): 정해진 크기만큼 공간을 미리 차지하며, 짧은 데이터를 넣어도 남은 공간을 공백으로 채우는 방식.
  • VARCHAR 형 (가변 길이 문자열): 데이터의 실제 길이에 맞춰 저장 공간을 탄력적으로 조절하여 용량을 아끼는 방식.
  • DATE 형: 연, 월, 일 정보를 저장하는 날짜 **전용 자료형.
  • TIME 형: 시, 분, 초 정보를 저장하는 시간 전용 자료형.

6강. 검색 조건 지정하기

1
SELECT 열1, 열2 FROM 테이블명 WHERE 조건식

1. SELECT 구에서 열 지정하기

1
SELECT 열1, 열2 FROM 테이블명

2. WHERE 구에서 행 지정하기

1
SELECT 열 FROM 테이블명 WHERE 조건식
  • 구의 순서와 생략: SQL 문법상 WHERE 구는 반드시 FROM 구 뒤에 위치해야 하며, 특정 행만 골라낼 필요가 없다면 통째로 생략(전체 조회)할 수 있음
  • WHERE 구: 테이블 전체 데이터 중 어떤 조건에 맞는 행(Row)만 가져올지 결정하는 ‘필터’ 역할을 하는 구역
  • 조건식: ‘열 이름, 연산자, 비교값’으로 구성되며, 결과가 참(True)인 데이터만 화면에 출력되도록 만듦. 즉, 참 또는 거짓의 진리값을 반환하는 식으로 비교 연산자를 사용해 표현함 (예1: age = 25) (예2: no = 2 no 열 값이 2일 경우에 참이 되는 조건)
    • no = 2 → no: 열, =: 연산자, 2: 상수
  • 값이 서로 다른 경우 (<>): 두 값이 같지 않음을 나타내는 비교 연산자로, 왼쪽과 오른쪽의 값이 다를 때만 참이 되어 해당 행을 선택함. (예: city <> 'Seoul')

cf. 조건에 맞는 데이터가 없을 수도, 여러 개일 수도 있음

3. 문자열형의 상수

  • 리터럴(Literal): 변하지 않는 값 그 자체를 의미하며, 각 자료형에 맞는 정해진 규칙에 따라 표기해야 함.
  • 문자열 리터럴: 반드시 싱글 쿼트(‘ ‘)로 감싸서 표기. (예: 'Hello', 'Seoul')
  • 날짜형 리터럴: 문자열과 마찬가지로 싱글 쿼트로 감싸며, 통상 YYYY-MM-DD 형식을 따름. (예: '2026-03-16')
  • 시각 리터럴: 시, 분, 초 사이를 콜론(:)으로 구분하여 표기하며, 역시 싱글 쿼트로 감쌈. (예: '13:45:00')
  • 수치형 리터럴: 별도의 기호 없이 숫자 그대로 표기. 소수점이 있는 경우 마침표(.)를 사용. (예: 100, 3.14)

4. NULL값 검색

  • = 연산자로 NULL 검색 불가

  • IS NULL / IS NOT NULL

5. 비교 연산자

  • = 연산자: 좌변과 우변의 값이 같을 경우 참.
  • <> 연산자: 좌변과 우변의 값이 같지 않을 경우 참.
  • > 연산자: 좌변의 값이 우변의 값보다 클 경우 참. 같거나 작을 경우는 거짓.
  • >= 연산자: 좌변의 값이 우변의 값보다 크거나 같을 경우 참. 작을 경우는 거짓.
  • < 연산자: 좌변의 값이 우변의 값보다 작을 경우 참. 같거나 클 경우는 거짓.
  • <= 연산자: 좌변의 값이 우변의 값보다 작거나 같을 경우 참. 클 경우는 거짓.

+) <=, >=에서 연산자 사이 스페이스 넣으면 에러


7강. 조건 조합하기

1
2
3
조건식1 AND 조건식2
조건식 OR 조건식2
NOT 조건식

1. AND로 조합하기

1
조건식1 AND 조건식2

: 모든 조건을 만족하는 행 검색 가능

2. OR로 조합하기

1
조건식 OR 조건식2

: 어느 쪽이든 조건을 만족하는 행 모두 검색 가능

3. AND와 OR을 사용할 경우 주의할 점

ex) no 열의 값이 1 또는 2인 행 추출

SELECT * FROM sample24 WHERE no = 1 OR 2; ———(X)

⇒ 상수 ‘2’는 논리 연산으로 항상 참. →모든 행 반환

SELECT * FROM sample24 WHERE no = 1 OR no = 2; ———(O)

  • 연산자의 우선 순위
    • 괄호로 우선 순위 변경 가능
    • AND는 OR에 비해 우선 순위 높음

4. NOT으로 조합

1
NOT 조건식
  • NOT 연산자: 오른쪽에만 항목을 지정하는 ‘단항 연산자’이며 오른쪽에 지정한 조건식의 반대 값을 반환함.

8강. 패턴 매칭에 의한 검색

1. LIKE로 패턴 매칭하기

1
열명 LIKE '패턴'
  • = 연산자: 열 값이 완전히 일치할 때 참
  • LIKE 술어: 열 값이 부분적으로 일치하는 경우에도 참
  • LIKE 메타문자
    • % : 임의의 문자열 (0글자 이상)
    • _ : 임의의 문자 1개
    • 예시:
      • '데이터%' (전방 일치): ‘데이터’로 시작하는 모든 값
      • '%데이터' (후방 일치): ‘데이터’로 끝나는 모든 값
      • '%데이터%' (부분 일치): 위치 상관없이 ‘데이터’가 포함된 모든 값
    • %는 빈 문자열에도 매치함. BUT, _는 반드시 한 글자 요구함

2. LIKE로 %를 검색하기

  • 이스케이프(escape): 특정한 기호를 붙여 메타문자가 아닌 일반 문자로 인식하게 만드는 것
  • %를 LIKE로 검색 → \%
  • _를 LIKE로 검색 → _

3. 문자열 상수 ‘의 이스케이프

  • ‘을 문자열 상수 안에 포함할 경우는 ‘를 2개 연속해서 기술
This post is licensed under CC BY 4.0 by the author.