[Data Base] MySQL where,검색

HOHO·2023년 3월 13일

#MYSQL

목록 보기
5/17

조건지정검색

  • column 검색
SELECT column 1,column 2 ...
FROM
table_name;
#column 1,2만 조회한다
#column 1,2에 포함된 데이터들을 출력

  • row검색
SELECT *
FROM table_name
WHERE row2 = 3;
#tabl_name전체에서 
#열2가 3인것을 찾아서 
#그 한줄전체를 출력해라

WHERE row2 = 3;에서 (=)연산자는 일치하는 값은 참/ 같지않으면 거짓을 반환한다
-> 조건식을 만족한 3이 포함된 행만 결과값으로 반환


  • 특정행만 빼고 검색
SELECT *
FROM table_name
WHERE row <> 3;
#!= 와같은 연산자 <>
#row가 3이 아니면 참이므로 
#나머지 row를 출력

  • 문자열 검색
SELECT *
FROM table_name
WHERE row2 = 'a'
  • 찾고자하는 문자열을 singlequote(' ')로 감싸준다
  • 날짜시간형의 자료형도 마찬가지로singlequote(' ')로 감싸준다
    연월일은 하이픈(-)으로 표시, 시각은 콜론(:)으로 구분해준다

  • NULL값 검색
SELECT *
FROM table_name
WHERE row1 IS NULL;
---------------------------------
SELECT *
FROM table_name
WHERE row1 IS NOT NULL;
  • null값을 찾을때는 (=)연산자가 아닌 IS를 사용한다
  • null이 아닌값을 찾을때는 IS NOT을 쓴다
  • 공백도 값이 있는것 -> null이 아니다.

  • 논리연산자로 검색조건 조합

AND연산자

SELECT *
FROM table_name
WHERE a <> 0 AND b <> 0
#a값이 0이 아닌것과 b값이 0
#아닌것 둘다 동시에 만족하는 행출력
#교집합

OR연산자

SELECT *
FROM table_name
WHERE a <> 0 OR b <> 0
#a값이 0이 아닌것, b값이 0이 아닌것
#어느쪽이든 조건을 만족하는 행 출력
#합집합

AND,OR 조합 검색

SELECT *
FROM table_name
WHERE a=1 OR a=2 AND b=1 OR b=2;
#이 sql문은 아래와 같다
----------------------------
SELECT *
FROM table_name
WHERE (a=1 OR a=2) AND (b=1 OR b=2);
  • 연산자의 우선순위에 의해 AND연산이 OR보다 먼저 시행되므로 OR연산을 ()로 묶어준다 ()는 논리연산자보다 우선순위이다
  • OR연산자는 ()로 묶어서 지정하는경우가 많다고 한다.

NOT검색

SELECT *
FROM table_name
WHERE NOT(a <> 0 AND b <> 0)
#괄호안의 조건식에 해당하지않는
#나머지 행 출력

패턴지정검색

패턴을 정의하는 메타문자는 %와_ 가있다

SELECT *
FROM table_name
WHERE text LIKE 'SQL%';
#SQL로 시작하고
#뒤에는 무슨문자가 와도 상관없다(%)
---------------------------------------
WHERE text LIKE '%SQL';
#SQL로 끝나는 문장
---------------------------------------
WHERE text LIKE '%SQL%';
#SQL이 포함된 문장인 no 1,3행이 출력, 부분검색
#SQL이라는 문자가 포함만 되있다면 모두출력한다
  • %는 글자수 제한이 없다
  • %는 앞이나 뒤에 공백이 있어도 검색이 가능하다
  • _ (언더바)는 문자수 하나(한글자)를 의미한다
profile
기계 그잡채가 되고싶다

0개의 댓글