데이터를 검색하는 select 쿼리문을 이해한다.

Goal

  • SQL이란
    • SQL 명령의 종류
  • SELECT 명령문 (SQL 기본 문법)
    • 검색 조건 지정
    • 검색 조건 조합
    • 패턴 매칭에 의한 검색

SQL문

SQL은 “관계형 데이터베이스” 관리 시스템(RDBMS, Relational Database Management System)을 조작할 때 사용하는 언어이다.

SQL 명령의 종류

  1. DML (Data Manipulation Language)
    • 데이터 조작, SQL의 가장 기본이 되는 명령셋(set)
    • DB에 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등에 사용
  2. DDL (Data Definition Language)
    • 데이터 정의
    • DB 객체(object)라는 데이터 그릇을 이용하여 데이터를 관리하는데, 이 같은 객체를 만들거나 삭제하는 명령어
    • DB 객체에는 테이블, 뷰(View) 등이 있다.
  3. DCL (Data Control Language)
    • 데이터 제어
    • 트랜잭션을 제어하는 명령과 데이터 접근 권한을 제어하는 명령 포함

DESC 명령 (SQL 명령 아님)

> desc tablename;

SELECT 명령문 (SQL의 DML)

// tableName 해당하는 테이블의 모든 열을 읽는다.
> select * from tablename;

// 위와 동일 (대소문자 구별 X)
> SELECT * from tableName;

검색 조건 지정

> select 1, 2 from 테이블명 where 조건식
> SELECT address, name FROM sample;
// select  -> from  -> where  (순서 중요)
> select  from 테이블명 where 조건식

// 수치형
> SELECT * FROM sample WHERE id=2; // id  값이 2 동일한 행만 검색
> SELECT * FROM sample WHERE id<>2; // id  값이 2 아닌 행만 검색

// 문자열형
> SELECT * FROM sample WHERE name='아무개'; 

// NULL
> SELECT * FROM sample WHERE birthday IS NULL;

검색 조건 조합

> 조건식1 AND 조건식2
> SELECT * FROM sample WHERE a<>0 AND b<>0; // a, b열이 모두 0 아닌  검색

> 조건식1 OR 조건식2
> SELECT * FROM sample WHERE a<>0 OR b<>0; // a열이 0 아니거나 b열이 0 아닌  검색

> NOT 조건식
> SELECT * FROM sample WHERE NOT(a<>0 OR b<>0); // a열이 0 아니거나 b열이 0 아닌 행을 제외한 나머지  검색

패턴 매칭에 의한 검색

>  LIKE '패턴'

// text 열에 'SQL' 포함하는 행을 검색
> SELECT * FROM sample WHERE text LIKE 'SQL%'; // (전방일치) 
> SELECT * FROM sample WHERE text LIKE '%SQL%'; // (중간일치) 

// text 열에 '%'(메타문자) 포함하는 행을 검색
> SELECT * FROM sample WHERE text LIKE '%\%%'; // 이스케이프 문자(/) 사용 

// text 열에 'It's'을 포함하는 행을 검색
> SELECT * FROM sample WHERE text LIKE 'It''s'; // ' 문자열 상수 안에 포함할 경우 2개를 연속해서 기술 

Reference