Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 모두를 위한 딥러닝
- 백준 4358번
- SQL
- 딥러닝
- 백준
- 머신러닝
- 모두의 네트워크
- 문자열
- 지네릭스
- 자바
- 팀플회고
- HTTP
- 데베
- 모두의네트워크
- 백준 4358 자바
- 깃 터미널 연동
- 리액트 네이티브
- 백준 5525번
- 스터디
- 백준 4949번
- 네트워크
- 정리
- React Native
- 깃허브 로그인
- 깃 연동
- 리액트 네이티브 시작하기
- 모두를위한딥러닝
- 깃허브 토큰 인증
- 데이터베이스
- 리액트 네이티브 프로젝트 생성
Archives
- Today
- Total
솜이의 데브로그
7,8강 ) 조건 조합, 패턴 매칭 검색 본문
Reference : SQL 첫걸음
7. 조건 조합하기
3개의 논리연산자
조건식1 AND 조건식2
조건식1 OR 조건식2
NOT 조건식
- SELECT 명령 사용해서 데이터를 검색할 때 2개 이상의 조건식을 조합해 검색 할 수 있다.
- 조건식을 조합해 사용할 경우 복수의 조건을 WHERE구로 지정합니다.
AND로 조합하기
- 논리 연산자의 하나로 좌우에 항목이 필요한 이항 연산자이다.
- 좌우의 식 모두 참일 경우 AND 연산자는 참을 반환.
- AND 연산은 조건을 만족하는 행을 집합으로 표현했을 때 이들 집합이 겹치는 부분, 즉 '교집합'으로 계산할 수 있다.
- 논리곱을 계산하는 논리연산자
- 모든 조건을 만족하는 행을 검색할 수 있다
Ex) a열과 b열이 모두 9이 아닌 행을 검색하는 경우
WHERE * FROM a<>0 AND b<>0;
OR로 조합하기
- 어느 쪽이든 하나만 참이 되면 조건식은 참이 된다.
- 모든 조건이 거짓인 경우 결과는 거짓.
- 어느쪽이든 조건을 만족하는 행을 모두 검색할 수 있다
Ex) a가 0이 아니거나 b가 0이 아닌 행
SELECT * FROM sample24 WHERE a<>0 OR b<>0;
AND와 OR를 사용할 경우 주의할 점
상수는 항상 참이 된다.
ex)
SELECT * FROM sample24 WHERE no=1 OR 2;
따라서 위의 식은 항상 참이 되기 때문에 모든 행을 반환한다.
AND와 OR를 조합해 사용할 때 연산자의 우선순위를 봐야한다.
OR보다 AND쪽이 우선순위가 높으므로 원하는대로 조건을 지정하기 위해서는 괄호로 우선순위를 변경해야한다.
NOT으로 조합
- 오른쪽에만 항목을 지정하는 단항 연산자
- 오른쪽에 지정한 조건식의 반대 값을 반환
Ex) a열이 0이 아니거나 b열이 0이 아닌 행을 제외한 나머지 행을 검색
SELECT * FROM sample24 WHERE NOT(a<>0 OR b<>0);
8. 패턴매칭에 의한 검색
LIKE 술어 사용
열 LIKE 패턴
= 연산자로 검색하는 경우는 셀의 데이터 값이 완전히 동일한지 비교한다.
패턴매칭
: 특정 문자나 문자열이 포함되어 있는지를 검색
LIKE로 패턴 매칭하기
- 왼쪽에는 매칭 대상을 지정하고 오른쪽에는 패턴을 문자열로 지정한다.
- 수치형 상수는 지정할 수 없다
- 패턴을 정의할 때는 메타문자를 사용할 수 있다.
- % : 임의의 문자열
- _ : 임의의 문자 하나
- 와일드카드라고 함.
Ex) 문자열 SQL을 포함하는 행을 패턴 매칭으로 검색
SELECT * FROM sample25 WHERE text LIKE '%SQL%'
문자열 도중에 존재하는 SQL을 검색.
%는 임의의 문자열과 매치하며, 빈 문자열에도 매치한다.
LIKE로 %를 검색하기
메타문자와 동일한 문자로 LIKE를 검색 할 경우
- 이스케이프라는 방법으로 처리한다.
- \% 와 같이 \을 % 앞에 붙인다. (다른 메타문자도 동일)
Ex) Text 열이 %를 포함하는 행을 검색
SELECT * FROM sample25 WHERE text LIKE '%\%%';
문자열 상수 ' 의 이스케이프
- 문자열 상수는 '문자열'과 같이 ' 로 둘러싸 표기한다.
- 표준 SQL에서는 ' 를 2개 연속해서 기술하는 것으로 이스케이프 처리를 한다.
- ' 하나만 문자열 데이터일 경우에는 '''' 으로 쓴다.
- SQL에서는 싱글쿼트로 문자열 상수를 기술하는데 시작의 '과 끝의 '이 정확하게 표기되지 않으면 에러가 발생한다.
복잡한 패턴을 매칭하는 경우에는 정규표현식을 사용하는 편이 낫다.
'CS > Database' 카테고리의 다른 글
9,10강 ) 정렬, 복수의 열 지정 정렬 (0) | 2021.10.08 |
---|---|
4장 ) 데이터베이스와 아키텍처 구성(1) (0) | 2021.10.07 |
3장 ) 데이터베이스의 운영비용 (0) | 2021.09.28 |
5,6강 ) 테이블 구조 참조하기, 검색 조건 지정하기 (0) | 2021.09.26 |
3장 ) 데이터베이스 초기비용 (0) | 2021.09.25 |