SQL 문법 & 사용법_기본

star_pooh·2024년 11월 8일
0

TIL

목록 보기
10/39
post-thumbnail

기본 명령어

  • SELECT : 데이터를 가져오는 기본 명령어로서 데이터를 조회하는 모든 쿼리에 사용
  • FROM : 데이터를 가져올 테이블을 특정해주는 명령어
  • * : 테이블에 존재하는 모든 컬럼 조회
SELECT *
FROM 테이블명

필요한 컬럼만 조회하기

SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
SELECT user_id, name
FROM users

컬럼에 별칭(alias) 부여하기

평소 사용하던 컬럼명이 아니거나 원하는 컬럼명으로 조회하고 싶은 경우 AS 또는 띄어쓰기를 사용하여 별칭 부여

  • 별칭을 붙일 때 유의사항
    한글, 띄어쓰기, 특수문자(언더바는 예외)를 사용할 경우 "" 필수
SELECT
	컬럼명1 AS 별명1  --방법1
    컬럼명2 별명2     --방법2
FROM 테이블명
SELECT
	user_id AS id
    name "유저 이름"
FROM users

조건에 맞는 데이터 조회하기

조건 내용에 문자를 사용하게 될 경우에는 ''를 사용해야함

SELECT *
FROM 테이블명
WHERE 조건 내용
SELECT *
FROM users
WHERE age = 24
SELECT *
FROM users
WHERE gender = 'male'

조건을 지정하는 다양한 방법

비교연산자의미
=같다
<>같지 않다
>크다
>=크거나 같다
<작다
<=작거나 같다
  • 비교연산자
SELECT *
FROM users
WHERE age > 20
  • BETWEEN A AND B : A와 B 사이면 조회
  • IN : IN의 내용을 포함하면 조회
  • LIKE : 비슷한 조건을 포함하면 조회
SELECT * 
FROM users
WHERE age BETWEEN 20 AND 29 --나이가 20 ~ 29인 유저를 조회
-----------------------------------------------------------------
WHERE addr IN ('서울', '대전') --주소가 서울이거나 대전인 유저를 조회
-----------------------------------------------------------------
WHERE name LIKE '김%' --성이 김씨인 이름의 유저를 조회
                      --%는 어떤 값이 와도 상관 없다는 의미 

여러 개의 조건을 적용하는 방법

논리연산자의미
AND그리고
OR또는
NOT아닌
  • 논리연산자
SELECT *
FROM users
WHERE age >= 20 AND gender = 'male' --20세 이상이면서 남자인 유저를 조회
-----------------------------------------------------------------
WHERE age > 24 OR gender = 'female' --24살보다 많거나 여성인 유저를 조회
-----------------------------------------------------------------
WHERE not gender = 'male' --남자가 아닌 즉, 여성인 유저를 조회

사칙연산

SELECT 
	bus_move_time,
    subway_move_time
    bus_move_time + subway_move_time AS total_time
FROM vehicle

중복제거 및 전체 갯수 구하기

  • DISTINCT : 중복된 값 제외
  • COUNT : NULL값을 제외한 데이터의 전체 갯수
SELECT
	DISTINCT 컬럼명
FROM 테이블명
SELECT
	DISTINCT name
FROM users
SELECT
	COUNT(컬럼명),
    --COUNT의 인자로 DISTINCT 설정 가능
    --중복된 값을 제외한 데이터의 갯수를 구함
    COUNT(DISTINCT 컬럼명)
FROM 테이블명
SELECT
	COUNT(payment_amount),
    COUNT(DISTINCT addr) 
FROM users

합계 및 평균

  • SUM : 선택한 컬럼의 총합
  • AVG : 선택한 컬럼의 평균값
SELECT
	SUM(컬럼명),
    AVG(컬럼명)
FROM 테이블명
SELECT
	SUM(payment_amount) total_payment_amount,
    AVG(age) AS avg_age
FROM users

최솟값과 최댓값

  • MIN : 선택한 컬럼의 최솟값
  • MAX : 선택한 컬럼의 최댓값
SELECT
	MIN(컬럼명),
    MAX(컬럼명)
FROM 테이블명
SELECT
	MIN(age),
    MAX(payment_amount)
FROM users

그룹으로 묶기

  • GROUP BY : 특정 그룹의 결과 조회 가능 (ex. 국가별 유저수, 성별 사용시간)
SELECT
	SUM(컬럼명)
FROM 테이블명
GROUP BY 그룹으로 묶을 컬럼명
SELECT
	COUNT(user_id)
FROM users
GROUP BY country

조회 순서 정렬

  • ORDER BY : 원하는 조건으로 정렬
SELECT *
FROM 테이블명
ORDER BY 정렬하고 싶은 컬럼명
SELECT *
FROM users
ORDER BY name ASC --오름차순
-----------------------------------------------------------------
ORDER BY name --오름차순은 기본 값이기 때문에 생략 가능
-----------------------------------------------------------------
ORDER BY nmae DESC --내림차순

✅SQL문의 기본구조

SELECT
FROM
WHERE
GROUP BY
ORDER BY

0개의 댓글

관련 채용 정보