[SQL 첫걸음] 2장: 테이블에서 데이터 검색
[SQL 첫걸음] 2장: 테이블에서 데이터 검색
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 = 2no 열 값이 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.