From 56dc6ff1b8c848df186df1e4872fa9f8de8c6013 Mon Sep 17 00:00:00 2001 From: "DESKTOP-FSO9NHB\\User" Date: Wed, 9 Dec 2020 16:39:42 +0900 Subject: [PATCH] =?UTF-8?q?SQL=EC=B2=AB=EA=B1=B8=EC=9D=8C=2006=EA=B0=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SQL첫걸음/Contents.md | 3 +- SQL첫걸음/Lecture06.md | 121 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 SQL첫걸음/Lecture06.md diff --git a/SQL첫걸음/Contents.md b/SQL첫걸음/Contents.md index 55ad16b..0717b17 100644 --- a/SQL첫걸음/Contents.md +++ b/SQL첫걸음/Contents.md @@ -9,4 +9,5 @@ ## 2장. 테이블에서 데이터 검색 - [04강. Hello World 실행하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture04.md) -- [05강. 테이블 구조 참조하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture05.md) \ No newline at end of file +- [05강. 테이블 구조 참조하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture05.md) +- [06강. 검색 조건 지정하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture06.md) \ No newline at end of file diff --git a/SQL첫걸음/Lecture06.md b/SQL첫걸음/Lecture06.md new file mode 100644 index 0000000..4ec276d --- /dev/null +++ b/SQL첫걸음/Lecture06.md @@ -0,0 +1,121 @@ +# 06강. 검색 조건 지정하기 +- 데이터 검색에는 열을 지정하는 방법과 행을 지정하는 방법이 있다. + +**`SELECT 구와 WHERE 구`** +``` +SELECT 열1, 열2 FROM 테이블명 WHERE 조건식 +``` + +- 행을 선택할 때는 `WHERE` 구를 사용하며, 열을 선택할 때는 `SELECT` 구를 사용한다. + +--- + +## 1. SELECT 구에서 열 지정하기 +- 데이터를 선택할 때는 열이나 행을 한정한다. + +**`SELECT 구에서 열 지정`** +``` +SELECT 열1, 열2 ... FROM 테이블명 +``` + +- 열은 위의 구문처럼 `콤마(,)`를 이용하여 구분 지으며 여러 개를 지정할 수 있고 지정한 열만 결괏값으로 표시된다. +- 만약 열을 전혀 지정하지 않으면 구문 에러가 발생하며, 또한 테이블에 존재하지 않는 열을 지정해도 에러가 발생한다. +- 열 지정 순서는 임의로 정할 수 있다. +- 결과는 지정한 열의 순서대로 표시되며, 동일한 열을 중복해서 지정해도 무관하다. + +##### SELECT 구에서 결과로 표시하고 싶은 열을 지정할 수 있다! + +--- + +## 2. WHERE 구에서 행 지정하기 +- 행 속에서 필요한 데이터만 검색하기 위해서는 `WHERE` 구를 사용한다. +- `WHERE` 구는 `FROM` 구의 뒤에 표기하며, 예약어 `WHERE` 뒤에 검색 조건을 표기한다. +- 조건에 일치하는 행만 `SELECT`의 결과로 반환된다. + +**`WHERE 구로 행 추출`** +``` +SELECT 열 FROM 테이블명 WHERE 조건식 +``` + +### 구의 순서와 생략 +- `SQL`에서는 구의 순서가 정해져 있어 바꿔적을 수 없다. +- `FROM` 구 뒤에 `WHERE` 구를 표기한다. +- 구에는 `WHERE` 구처럼 생략 가능한 것도 있다. +- 만약 `WHERE` 구를 생략한 경우는 테이블 내의 모든 행이 검색 대상이 된다. + +### WHERE 구 +- 조건식은 `열과 연산자, 상수로 구성되는 식`이다. +- 예를 들면 `no = 2`는 올바른 조건식이며, 이 조건식에 일치하는 행만 `SELECT`의 결과로 반환된다. +- `WHERE` 구로 행을 추출하면서 `SELECT` 구로 열 지정을 동시에 할 수도 있다. + +##### WHERE 구의 조건에 일치하는 행만 결과로 반환된다! + +### 조건식 +- 조건식 `no = 2`는 `no 열 값이 2일 경우에` 참이 되는 조건이다. +- `no = 2`은 `no` `=` `2`의 세 개 항목으로 나눌 수 있다. 첫 번째 항목인 `no`는 열 이름이고 두 번째 항목 `=`는 연산자이다. +- 연산자란 어떤 계산을 할지 지정하는 것으로 보통 기호로 표기한다. +- `=`의 경우, 좌우로 2개 항목이 필요한 `이항 연산자`에 해당하며 일반적으로 많이 쓰이는 기호이다. +- `=` 연산자를 기준으로 좌변과 우변의 항목을 비교하고, 서로 같은 값이면 참을, 같지 않으면 거짓을 반환한다. +- 조건식을 만족한(참) 행만 결괏값으로 반환된다. +- `=` 연산자는 비교한 결괏값이 참인지 거짓인지를 반환하므로 `비교 연산자`라 부른다. + +##### 조건식은 참 또는 거짓의 진리값을 반환하는 식으로 비교 연산자를 사용해 표현한다! + +### 값이 서로 다른 경우 '<>' +- 비교 연산자는 `=` 외에도 존재한다. +- 조건식에 사용하는 연산자를 바꾸거나 복수의 연산자를 조합하면 복잡한 조건식을 만들 수 있다. +- `=` 연산자가 서로 같은 값인지를 비교하는 연산자인 데 반해, `<>` 연산자는 서로 다른 값인지를 비교하는 연산자이다. + +##### <> 연산자를 통해 '값이 서로 다른 경우' 참이 되는 조건식으로 변경할 수 있다! + +- `WHERE` 구에서 지정한 조건식에 따라 반환되는 행의 갯수는 달라지며, 반드시 하나의 행만 반환되는 것은 아니다. +- 조건식에 일치하는 행이 전혀 없는 경우에는 아무것도 반환되지 않을 수도 있다. + +--- + +## 3. 문자열형의 상수 +- 수치형 조건식의 경우 비교할 숫자를 그대로 조건식에 표기한다. +- 하지만 문자열형을 비교할 경우는 `'banjjoknim'`처럼 `싱글쿼트(' ')`로 둘러싸 표기해야 한다. +- 날짜시간형의 경우에도 싱글쿼트로 둘러싸 표기하며, 이때 연월일을 `하이픈(-)`으로 구분한다. +- 시각은 `시분초`를 `콜론(:)`으로 구분하여 표기한다. +- 문자열형의 열과 비교하기 위해서는 조건으로 지정할 값도 그 자료형에 맞춰 지정해야 한다. +- 자료형에 맞게 표기한 상수값을 `리터럴(literal)`이라 부른다. +- 문자열 리터럴은 싱글쿼트로 둘러싸 표기한다. + +``` +수치형 상수 -> 1 100 -3.8 +문자열형 상수 -> 'ABC' 'banjjoknim' +날짜시간형 상수 -> '2013-01-25' '2013-03-03 10:21:00' +``` + +--- + +## 4. NULL값 검색 +- `=` 연산자로 `NULL`을 검색할 수는 없다. + +### IS NULL +`NULL` 값을 검색할 때는 `=` 연산자가 아닌 `IS NULL`을 사용한다. +- `IS NULL`은 술어로 연산자의 한 종류로 생각하면 된다. +- `birthday IS NULL` 과 같이 사용하면 된다. +- 반대로 `NULL` 값이 아닌 행을 검색하고 싶다면 `IS NOT NULL`을 사용하면 된다. + +##### NULL 값을 검색할 경우에는 IS NULL 을 사용한다! + +--- + +## 5. 비교 연산자 +- `=` 연산자와 `<>` 연산자, `IS NULL`로 검색할 수 있다. +- `WHERE` 구로 지정하는 조건식은 참과 거짓을 반환하는 비교 연산자나 술어를 사용해서 표기할 수 있다. +- `= 연산자` : 좌변과 우변의 값이 같을 경우 참이 된다. +- `<> 연산자` : 좌변과 우변의 값이 같지 않을 경우 참이 된다. +- `> 연산자` : 좌변의 값이 우변의 값보다 클 경우 참이 된다. 같거나 작을 경우는 거짓이 된다. +- `>= 연산자` : 좌변의 값이 우변의 값보다 크거나 같을 경우 참이 된다. 작을 경우는 거짓이 된다. +- `< 연산자` : 좌변의 값이 우변의 값보다 작을 경우 참이 된다. 같거나 클 경우는 거짓이 된다. +- `<= 연산자` : 좌변의 값이 우변의 값보다 작거나 같을 경우 참이 된다. 클 경우는 거짓이 된다. + +- `< 연산자와 > 연산자`는 대소관계를 비교하는 연산자이지만 `=`을 붙임으로써 서로 값이 같은 경우도 비교할 수 있다. +- `=`은 `<`, `>`의 뒤에 붙인다(앞에 붙이는 것은 틀린 표기법). +- 또한 `<=`나 `>=`을 표기할 때에는 사이에 스페이스를 넣어서는 안된다. +- `< =`와 같이 스페이스를 넣으면 `<`와 `=`로 연산자가 두 개라고 판단하여 에러가 발생한다. + +--- \ No newline at end of file