오늘은 SQL 책 2장을 이어서 학습했다.
DB에서 데이터를 가져올 때 특정 조건에 일치한 레코드만 가져온다.
SELECT 컬럼명
FROM 테이블명
WHRER 조건;
컬럼명을 테이블명에서 조건에 맞게 가져온다.
SELECT customer_name
FROM customer
WHERE membertype_id = 2;
결과
연산자 | 사용법 | 의미 |
---|---|---|
= | a = b | a와 b는 같다 |
<=> | a <=> b | a와 b는 같다(NULL 대응) |
!= | a != b | a와 b는 다르다 |
<> | a <> b | a와 b는 다르다 |
< | a < b | a는 b보다 크다 |
> | a > b | a는 b보다 작다 |
<= | a <= b | a는 b 이하다 |
>= | a >= b | a는 b 이상이다 |
membertype_id = 2
좌변 연산자 우변
결과는 1(TRUE), 0(FALSE), NULL
SELECT product_name AS 상품명
FROM product
WHERE price >= 100;
결과
데이터 종류 | 데이터형 | 데이터 작성법 |
---|---|---|
문자열 | CHAR, VARCHAR, TEXT | 'A', "ab421", '가나다' |
정수 | INT, TINYINT | 123456, 673 |
실수 | DOUBLE, FLOAT, DECIMAL | 3.14, 158.0000 |
날짜시각 | DATE, DATETIME | '2023-10-27', '2024/01/01', '2024-01-01 01:23:45' |
부울형 | BOOLEAN | 1(TRUE), 0(FALSE) |
위도경도 | GEOMETRY | 'POINT(139.721251 35.689607)' |
int, double 같은 수치형은 그대로 적는다.
문자열이나 날짜시각은 '이나 "를 감싸서 적는다. '이 일반적이다.
boolean형은 IS나 IS NOT을 사용한다. IS TRUE or IS NOT TRUE.
어떤 데이터도 가지지 않은 상태. 무기입 상태
단, 문자열은 길이가 0인 데이터('')를 입력할 수 있는데 이는 null과는 다르다.
IS NULL, IS NOT NULL을 써서 where문의 조건으로 사용한다.
<=> 이외의 연산자로 null을 비교하면 어떤 결과든 null이 된다.
<=>로 비교하면 NULL <=> NULL만 1이고 다른 값은 0이다.
문자열 검색은 = 나 !=로 일치여부를 검색할 수 있다.
다만, = 'A'로 검색할경우 'A'뿐만 아니라 'a', 'A '까지 대소문자도 가리지않고 끝의 공백까지 무시되어 같이 검색된다.
BINARY
: BINARY를 사용하면 대소문자와 끝의 공백을 가리고 완전히 일치하는 결과
만 검색한다.
ex)
SELECT * FROM product
WHERE name = BINARY 'A';
LIKE
: LIKE를 %
와 사용하면 일부분만 일치하는지 여부를 판정할 수 있다.%
: %가 있는 곳에 0문자 이상의 임의의 문자가 있다는 뜻._
: _가 있는 곳에 임의의 1문자가 있다는 뜻.ex)
SELECT * FROM product
WHERE product_name LIKE '약용%';
SELECT * FROM product
WHERE product_name LIKE '%100\%%';
이스케이프 | 의미 |
---|---|
\% | 문자열 % |
_ | 문자열 _ |
\ | 문자열 \ |
\' | 문자열 ' |
\" | 문자열 " |
\n | 줄바꿈 문자 |
\t | 탭 문자 |
\b | 백스페이스 문자 |
\r | 복귀 줄바꿈 문자 |
ex)
SELECT * FROM customer
WHERE birthday < '1990-01-01';
SELECT * FROM customer
WHERE name > 'A';