2장) 테이블에서의 데이터 검색
4강) Hello World 실행하기
1. 테이블의 모든 데이터 검색
SELECT * FROM 테이블명;
*
(애스터리스크): 모든 열을 의미하는 메타 문자
- 위 명령을 실행하면 테이블의 모든 데이터를 조회할 수 있음.
- (애스터리스크는 자동으로 모든 열로 대체된다고 생각하면 됨.)
2. SQL 명령 실행 방법
- MySQL 클라이언트에서 실행 가능 → 명령 프롬프트에서 실행
- 명령어 입력 규칙
- 각 요소는 스페이스로 구분
- 입력 마지막에 세미콜론(
;
) 필수
- 엔터(Enter) 키 입력 시 서버로 명령이 전달되어 실행 → 결과 반환
3. SQL 명령어의 구성
FROM
: 처리할 테이블을 지정하는 키워드
SELECT
명령은 여러 개의 구(句, Clause) 로 구성됨.
SELECT
, FROM
→ 구를 결정하는 키워드이자 예약어
4. 데이터베이스 객체와 예약어
- 데이터베이스 객체: 테이블, 뷰 등 이름을 붙여 관리.
- 예약어와 데이터베이스 객체명은 대소문자 구분 없음
- 보통 예약어는 대문자, 데이터베이스 객체명은 소문자로 표기.
5강) 테이블 구조 참조하기
1. 테이블 구조 확인 명령어
DESC 테이블명;
2. DESC
명령 결과 필드
필드명 | 설명 |
---|
Field | 열(컬럼)의 이름 |
Type | 해당 열의 자료형 (괄호 안 숫자는 최대 길이) |
Null | NULL 값 허용 여부 (YES/NO ) |
Key | 해당 열이 키(Key)로 지정되었는지 여부 |
Default | 기본값 (값이 생략되었을 때 적용) |
Extra | 자동 증가(AUTO_INCREMENT) 등 추가 속성 |
3. 주요 자료형
INTEGER
: 정수값 저장 (소수점 X)
CHAR(n)
: 고정 길이 문자열 (최대 길이 지정 필수)
VARCHAR(n)
: 가변 길이 문자열 (데이터 크기에 맞춰 저장 공간 변경)
DATE
: 날짜 값 저장
TIME
: 시간 값 저장
6강) 검색 조건 지정하기
1. 기본 검색 명령어
SELECT 열1, 열2 FROM 테이블명 WHERE 조건식;
- 구의 순서가 정해져 있음 (변경 불가)
SELECT
→ 열 선택
FROM
→ 테이블 지정
WHERE
→ 조건을 지정하여 행 선택
2. WHERE
구 (행 선택)
- 생략 시 모든 행이 검색 대상
열명
, 연산자
, 상수
로 구성
SELECT * FROM students WHERE no = 2;
no = 2
→ no
열 값이 2인 경우만 참
3. 주요 연산자
연산자 | 의미 |
---|
= | 좌변과 우변이 같을 경우 참 |
<> | 좌변과 우변이 다를 경우 참 |
> | 좌변이 우변보다 클 경우 참 |
< | 좌변이 우변보다 작을 경우 참 |
>= | 좌변이 우변보다 크거나 같을 경우 참 |
<= | 좌변이 우변보다 작거나 같을 경우 참 |
4. 문자열 및 날짜/시간 데이터 검색
SELECT * FROM users WHERE name = '김서연';
- 문자열 상수는
'
(싱글쿼트)로 감싸서 표기
- 날짜는
YYYY-MM-DD
형식, 시간은 HH:MM:SS
형식 사용
5. NULL
값 검색
SELECT * FROM employees WHERE salary IS NULL;
IS NULL
: NULL
값 검색
IS NOT NULL
: NULL
이 아닌 값 검색
7강) 조건 조합하기
1. 조건 조합 연산자
AND
: 모두 참일 경우 참
OR
: 하나라도 참이면 참
NOT
: 조건의 반대값 반환
2. AND
연산자
- 복수의 조건을 조합할 때 사용
- 좌우 모두 참일 경우 참
SELECT * FROM students WHERE age >= 20 AND gender = 'F';
- 나이가 20 이상이고 여성(F) 인 경우만 조회
3. OR
연산자
SELECT * FROM students WHERE age = 18 OR age = 22;
-
나이가 18이거나 22인 학생 검색
주의할 점!
SELECT * FROM sample24 WHERE no = 1 OR 2;
2
는 항상 참이므로 모든 행이 반환됨
올바른 표현:
SELECT * FROM sample24 WHERE no = 1 OR no = 2;
4. 연산자의 우선순위
AND
가 OR
보다 우선순위가 높음
- 우선순위를 명확히 하기 위해 괄호 사용 권장
SELECT * FROM students WHERE (age >= 18 OR age <= 22) AND gender = 'M';
- 나이가 18 이하 또는 22 이상이며, 남성인 경우 검색
5. NOT
연산자
SELECT * FROM employees WHERE NOT department = 'Sales';
- 'Sales' 부서를 제외한 나머지 직원 검색
8강) 패턴 매칭에 의한 검색
1. LIKE
연산자
- 특정 문자나 문자열 포함 여부를 검색할 때 사용
- 부분 일치 검색 가능
SELECT * FROM users WHERE name LIKE '김%';
2. LIKE
연산자의 패턴
패턴 | 의미 |
---|
% | 임의의 문자 또는 문자열 (빈 문자열 포함) |
_ | 한 개의 임의 문자 |
SELECT * FROM books WHERE title LIKE '%SQL%';
3. %
와일드카드 사용 예시
검색 조건 | 설명 |
---|
'SQL%' | 'SQL'로 시작하는 문자열 검색 |
'%SQL%' | 중간에 'SQL'이 포함된 문자열 검색 |
'%SQL' | 'SQL'로 끝나는 문자열 검색 |
4. 특수 문자 검색 (%
, _
등)
SELECT * FROM messages WHERE text LIKE '%\%%';
5. '
(작은따옴표) 포함된 문자열 검색
SELECT * FROM comments WHERE text LIKE 'It''s a great day!';
- It’s a great day! 가 포함된 문자열 검색
--- 연습문제 ---
1.1
2.3
3.1