[SQL] 테이블에서 데이터 검색 - SELECT, DECS, 행 열 지정, 연산자, LIKE

SELECT


SELECT

: 데이터베이스의 데이터를 읽어옴

: DML에 속하는 명령

: 표 형식의 데이터 출력

: '질의'나 '쿼리'라고 불리기도 함

 

 

SELECT * FROM 테이블명;
  • SELECT : SQL 명령의 한 종류
  • * : 모든 열을 의미하는 메타문자
  • FROM : 처리 대상 테이블을 지정하는 키워드

예약어와 데이터베이스 객체명은 대소문자 구별 X

 

 

SELECT * FROM sample21;

 

 

테이블 데이터

  • 수치형 데이터 : 숫자만으로 구성된 데이터. 오른쪽 정렬
  • 문자열형 데이터 : 임의의 문자로 구성된 데이터. 왼쪽 정렬
  • 날짜시간형 데이터 : 날짜와 시각을 나타내는 데이터. 왼쪽 정렬
  • NULL 데이터 : 값이 없는 데이터

 

 

 

DESC


DESC

: 테이블 구조 참조할 때 사용

: 테이블에 어떤 열이 정의되어 있는지 확인

 

DESC 테이블명;

  • Field : 열 이름 표시
  • Type : 해당 열의 자료형
  • Null : NULL 값을 허용할 것인지 아닌지를 나타내는 제약사항
  • Default : 그 열에 주어진 기본값. 데이터 값을 생략했을 경우 적용되는 값

 

 

자료형

  • INTEGER형 : 정수값 저장
  • CHAR형 : 고정 길이 문자열 저장. 열의 최대 길이 지정해야 함
  • VARCHAR형 : 가변 길이 문자열 저장. 열의 최대 길이 지정해도 데이터 크기에 따라 저장공간 크기 변경
  • DATE형 : 날짜값 저장
  • TIME형 : 시간 저장

 

 

 

검색 조건 지정 - 행 열 지정


SELECT 선택할열 FROM 테이블명 WHERE 조건식;

 

 

 

SELECT 구에서 열 지정

 

: 열을 지정하지 않으면 에러 발생

: 존재하지 않는 열 지정하면 에러 발생

SELECT no, name FROM sample21;

no열과 name 열만 선택

 

 

WHERE 구에서 행 지정

 

: FROM 구 뒤에 작성해야 함

: WHERE 구 생략하면 모든 행이 검색 대상

 

 

  • = 연산자 : 좌변과 우변의 값이 같으면 참, 같지 않으면 거짓
SELECT * FROM sample21 WHERE no=2;

no열 값이 2인 행만 선택

 

 

SELECT * FROM sample21 WHERE name = '박준용';

I문자열은 ' '으로 감싸기

 

 

  • <> 연산자 : 좌변과 우변의 값이 서로 다른 경우 참, 같으면 거짓
SELECT * FROM sample21 WHERE no <> 2;

no 열 값이 2가 아닌 행만 선택

 

 

  • IS NULL : 좌변 항목의 값이 NULL인 경우 참
SELECT * FROM sample21 WHERE birthday IS NULL;

birthday가 NULL인 행만 선택

 

 

 

AND, OR, NOT - 조건 조합하기


  • sample24 테이블

 

 

AND로 조합

 

: 모든 조건이 만족하는 경우 참

: 논리곱 계산

: OR보다 우선 순위 높음

SELECT * FROM sample24 WHERE a <> 0 AND b <> 0;

a열과 b열이 모두 0이 아닌 행 검색

 

 

OR로 조합

 

: 어느 쪽이든 하나만 참이 되면 참

: 논리합 계산

SELECT * FROM sample24 WHERE a <> 0 OR b <> 0;

a열이 0이 아니거나 b열이 0이 아닌 행 검색

 

 

NOT로 조합

 

: 오른쪽에 지정한 조건식의 반대 값 반환

SELECT * FROM sample24 WHERE NOT (a <> 0 OR b <> 0);

a열이 0이 아니거나 b열이 0이 아닌 행을 제외한 나머지 행 검색

 

 

 

LIKE


LIKE

: 특정 문자나 문자열이 포함되어 있는지 검색할 때 사용

: 패턴 매칭(부분 검색)이라고 함

열 LIKE '패턴'

 

 

  • sample25 테이블

 

 

메타문자(와일드카드)

  • 퍼센트(%) : 임의의 문자열
  • 언더스코어(_) : 임의의 문자 하나

 

 

전방 일치

 

: 특정 문자열로 시작하는 값을 포함한 데이터 검색

SELECT * FROM sample25 WHERE text LIKE 'SQL%';

'SQL'로 시작하는 데이터를 가진 행 검색

 

 

중간 일치

 

: 특정 문자열을 가진 값을 포함한 데이터 검색

SELECT * FROM sample25 WHERE text LIKE '%SQL%';

'SQL'를 포함하는 데이터를 가진 행 검색

 

 

후방 일치

 

: 특정 문자열로 끝나는 값을 포함한 데이터 검색

SELECT * FROM sample25 WHERE text LIKE '%있다.';

'있다.'로 끝나는 데이터를 가진 행 검색

 

 

이스케이프

 

: 메타문자를 검색할 때 사용

  • '%\%%' : %를 포함한 문자열 검색
  • '''' : '를 포함한 문자열 검색

 

'Back-end > SQL' 카테고리의 다른 글

[SQL] 데이터베이스와 SQL, mysql 클라이언트 사용법  (0) 2023.11.17