SQL 기본 질의문
21 Jul 2025 | SQL개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
데이터 조회를 위한 SQL 문법
우선 MySQL 환경과 MySQLWorkbench 환경은 아래와 같다.
MySQL 8.0.42-arm64
MySQLWorkbench 8.0.42-arm64
SELECT, FROM
데이터베이스에서 원하는 정보를 가져오는 가장 기본적인 방법
- SELECT [컬럼명]: 조회할 컬럼을 지정. 모든 컬럼을 보고 싶다면
*
을 사용 - FROM [테이블명]: 데이터를 가져올 테이블을 지정
-- 고객 테이블의 모든 컬럼 데이터를 가져온다
SELECT * from 고객;
컬럼 별칭(Alias) 사용하기 > as
조회된 컬럼의 이름을 임시로 바꾸고 싶을때 as
키워드를 사용한다. 별칭 내 공백이나 특수문자가 존재한다면 '' 혹은 ""
으로 감싸준다.
-- 아래 모두 가능
SELECT 마일리지 as m FROM 고객;
SELECT 마일리지 m FROM 고객;
SELECT 마일리지 '마일 리지' FROM 고객;
계산식이 포함된 SQL문
SELECT 절에는 컬럼명 외에도 계산식이나 함수 사용이 가능
-- 문제: 고객 테이블에서 고객번호, 마일리지, 10% 인상된 마일리지로 조회
-- 이때 마일리지는 ‘포인트’ 컬럼명 변경
-- 인상된 마일리지는 ‘10%인상된 마일리지’로 별명을 불임
SELECT 고객번호, 마일리지 as 포인트, 마일리지*1.1 as '10%인상된 마일리지' FROM 고객;
WHERE
특정 조건에 만족하는 데이터만 필터링 조회
-- 문제: 고객 테이블에서 마일리지가 100,000점 이상인 고객의 고객번호, 마일리지를 조회
SELECT 고객번호, 마일리지 FROM 고객 WHERE 마일리지 >= 100000
ORDER BY
조회된 결과를 정렬
- ASC: 오름차순(작은 값부터 정렬, 기본값임)
- DESC: 내림차순(큰 값부터)
-- 문제: 서울특별시'에 사는 고객들의 고객번호, 마일리지를 조회
-- 결과는 마일리지가 많은 순서로
SELECT 고객번호, 마일리지 FROM 고객 WHERE 도시 = "서울특별시" ORDER BY 마일리지 desc
SELECT 고객번호, 마일리지 FROM 고객 WHERE 도시 = "서울특별시" ORDER BY 2 desc
위와 같이 ORDER BY절에는 컬럼명 대신 별칭이나 SELECT 절에서의 컬럼순서를 사용 가능!
LIMIT n
반환되는 행의 수를 제한. ORDER BY와 함께 상위/하위 n개를 조회하는 데 사용
-- 문제1: 고객 테이블에서 첫 3개의 고객 정보를 조회
SELECT * FROM 고객 LIMIT 3
-- 문제2: 마일리지가 가장 많은 상위 3명의 고객 정보를 조회
SELECT * FROM 고객 ORDER BY 마일리지 desc LIMIT 3
-- 문제3: 마일리지가 가장 적은 하위 3명의 고객 정보를 조회
SELECT * FROM 고객 ORDER BY 마일리지 asc LIMIT 3
SELECT * FROM 고객 ORDER BY 마일리지 LIMIT 3
DISDICNT
특정 컬럼의 값에서 중복을 제거하고 고유한 값을 보여줌
-- 문제: 고객 테이블에 등록된 고객들이 사는 도시를 중복 없이 모두 보여주기
SELECT DISTINCT 도시 FROM 고객;