SQL 첫걸음 2장

cse 23·2025년 3월 18일
0

SQL 첫걸음

목록 보기
2/8

2장) 테이블에서의 데이터 검색

4강) Hello World 실행하기

1. 테이블의 모든 데이터 검색

SELECT * FROM 테이블명;
  • * (애스터리스크): 모든 열을 의미하는 메타 문자
  • 위 명령을 실행하면 테이블의 모든 데이터를 조회할 수 있음.
    • (애스터리스크는 자동으로 모든 열로 대체된다고 생각하면 됨.)

2. SQL 명령 실행 방법

  • MySQL 클라이언트에서 실행 가능명령 프롬프트에서 실행
  • 명령어 입력 규칙
    1. 각 요소는 스페이스로 구분
    2. 입력 마지막에 세미콜론(;) 필수
    3. 엔터(Enter) 키 입력 시 서버로 명령이 전달되어 실행결과 반환

3. SQL 명령어의 구성

  • FROM: 처리할 테이블을 지정하는 키워드
    • FROM 뒤에 테이블명을 작성.
  • SELECT 명령은 여러 개의 구(句, Clause) 로 구성됨.
    • SELECT, FROM구를 결정하는 키워드이자 예약어

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

  • 데이터베이스 객체: 테이블, 뷰 등 이름을 붙여 관리.
    • 같은 이름의 객체 생성 불가
  • 예약어와 데이터베이스 객체명은 대소문자 구분 없음
    • 보통 예약어는 대문자, 데이터베이스 객체명은 소문자로 표기.

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

1. 테이블 구조 확인 명령어

DESC 테이블명;
  • 테이블에 정의된 열(컬럼) 정보를 확인 가능

2. DESC 명령 결과 필드

필드명설명
Field열(컬럼)의 이름
Type해당 열의 자료형 (괄호 안 숫자는 최대 길이)
NullNULL 값 허용 여부 (YES/NO)
Key해당 열이 키(Key)로 지정되었는지 여부
Default기본값 (값이 생략되었을 때 적용)
Extra자동 증가(AUTO_INCREMENT) 등 추가 속성

3. 주요 자료형

  • INTEGER: 정수값 저장 (소수점 X)
  • CHAR(n): 고정 길이 문자열 (최대 길이 지정 필수)
  • VARCHAR(n): 가변 길이 문자열 (데이터 크기에 맞춰 저장 공간 변경)
  • DATE: 날짜 값 저장
  • TIME: 시간 값 저장

6강) 검색 조건 지정하기

1. 기본 검색 명령어

SELECT1,2 FROM 테이블명 WHERE 조건식;
  • 구의 순서가 정해져 있음 (변경 불가)
    1. SELECT → 열 선택
    2. FROM → 테이블 지정
    3. WHERE → 조건을 지정하여 행 선택

2. WHERE 구 (행 선택)

  • 생략 시 모든 행이 검색 대상
  • 열명, 연산자, 상수로 구성
SELECT * FROM students WHERE no = 2;
  • no = 2no 열 값이 2인 경우만 참

3. 주요 연산자

연산자의미
=좌변과 우변이 같을 경우 참
<>좌변과 우변이 다를 경우 참
>좌변이 우변보다 클 경우 참
<좌변이 우변보다 작을 경우 참
>=좌변이 우변보다 크거나 같을 경우 참
<=좌변이 우변보다 작거나 같을 경우 참

4. 문자열 및 날짜/시간 데이터 검색

SELECT * FROM users WHERE name = '김서연';
  • 문자열 상수는 ' (싱글쿼트)로 감싸서 표기
  • 날짜는 YYYY-MM-DD 형식, 시간은 HH:MM:SS 형식 사용

5. NULL 값 검색

  • 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. 연산자의 우선순위

  • ANDOR보다 우선순위가 높음
  • 우선순위를 명확히 하기 위해 괄호 사용 권장
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%';
  • 제목에 '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

0개의 댓글