조회하기

Heon·2021년 3월 3일
0

MySQL

목록 보기
1/2

SELECT

SELECT는 테이블에 있는 데이터를 조회하는 명령어입니다.

-- 모든 컬럼을 조회한다.
SELECT * FROM TABLE_NAME ;

-- 특정 컬럼만 조회한다.(EX > ID, AGE, NAME을 조회) 
SELECT ID, AGE, NAME FROM TABLE_NAME ;

별칭주기

컬럼명 대신 임의로 이름을 붙일 수 있습니다.
이는 컬럼명이 너무 길거나 두 개 이상의 컬럼을 합칠 때 유용합니다.

SELECT ID, NAME_REGTATE AS NR FROM TABLE_NAME ;

이때 AS는 생략을 해도 된다.
그리고 테이블 이름도 똑같이 별칭을 줄 수 있습니다.

Where(조건문)

조건문을 지정해서 조건에 맞는 row만 출력하기 위한 구문.

-- 나이가 20살 검색한다면
SELECT * FROM TABLE_NAME WHERE AGE = 20 ;

-- 나이가 20살 이상인 사람의 이름과 ID 를 조회한다면
SELECT ID, NAME FROM TABLE_NAME WHERE AGE >= 20 ;

-- ID가 '15' 이고 나이가 25살보다 작거나 이름이 'KIM'인 사원 조회
SELECT * FROM TABLE_NAME WHERE ID = '15' AND (Age<25  OR NAME = 'KIM') ;

LIKE(~로 시작, 끝나는, 포함하는 단어)

-- 이름이 KIM으로 시작하는 사람 검색
SELECT * FROM TABLE_NAME WHERE NAME LIKE 'KIM%' ;

-- 이름이 KIM으로 끝나는 ID와 나이 검색
SELECT ID, AGE FROM TABLE_NAME WHERE NAME LIKE '%KIM' ;

-- 이름에 KIM을 포합하는 사람 검색
SELECT * FROM TABLE_NAME WHERE NAME LIKE '%KIM%' ;

In(~이거나)

-- 나이가 20살, 24살, 28살인 사람 검색
SELECT * FROM TABLE_NAME WHERE AGE IN (20, 24, 28) ;

Between(~부터~까지)

-- 20살 부터 30살 사이의 사람들 검색
SELECT * FROM TABLE_NAME WHERE AGE BETWEEN 20 AND 30 ;

NOT

-- 20살이 아닌 사람의 데이다 모두 검색
SELECT * FROM TABLE_NAME WHERE NOT AGE = 20 ;

IS NULL, IS NOT NULL

특정 컬럼에 저장된 데이터에 대한 NULL 여부 확인
IS NULL : 컬럼 값 중에서 NULL을 포함하는 행을 검색하기 위해 사용
IS NOT NULL : NULL을 포함하지 않는 행을 검색하기 위해 사용

ORDER BY (정렬)

지정된 컬럼을 기준으로 정렬하고 기본은 오름차순(ASC)이며 내림차순(DESC)도 있다.

-- 나이를 오름차순으로 정렬
SELECT * FROM TABLE_NAME ORDER BY AGE ASC ;

-- 나이를 내림차순으로 정렬 후 이름을 오름차순으로 정렬
SELECT name, age FROM table_name ORDER BY age DESC, name ;

LIMIT (상위 N개의 레코드)

-- 상위 4개의 레코드 가져오기
SELECT * FROM TABLE_NAME LIMIT 4 ;

-- 4번째부터 10개의 레코드 가져오기
SELECT * FROM TABLE_NAME LIMIT 3,10 ;

MAX, MIN (최대값, 최소값)

데이터의 최대값과 최소값을 가져올떄 사용, 숫자뿐 아니라 문자에도 사용합니다.
문자열을 사용할 경우 MAX는 데이터베이스가 해당 열에 정의한 정렬 순서에서 가장 높은 값을 찾습니다. MIN은 그 반대.

한글의경우 자음 < 한글 < 모음순으로 큰 값이 되고,

영문의 경우 A<Z, 같은 알파벳일경우 소문자 < 대문자 순으로 대문자영문이 가장 큰 값이 됩니다.

MIN, MAX 날짜에 적용 시 MIN은 먼저 들어온 데이타, MAX는 최신

-- 가장 높은 나이값 가져오기
SELECT MAX(AGE) FROM TABLE_NAME ;

DISTINCT(중복제거하기)

--컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM TABLE_NAME;

--조건 처리 후에 컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM TABLE_NAME WHERE 조건식;

--컬럼 범주 개수 조회
SELECT COUNT(DISTINCT 컬럼) FROM TABLE_NAME;

CASE WHEN

CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명

--테이블(user)에서 나이(GENDER)가 36이면 X, 37이면 Y 그리고 나머지 다른 값은 Z
SELECT NAME,CASE WHEN AGE = 36 THEN 'X'
 WHEN AGE =37 THEN 'Y'
 ELSE 'Z' END AS AGE
 FROM user GROUP BY AGE;
profile
삽질중

0개의 댓글