SQL(Structured Query Language)
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어
- 즉, 데이터베이스와 대화하기 위한 언어
- 데이터베이스에 요청을 하는 질의를 Query라고 함 (Query를 잘 짜는 것이 중요)
- MYSQL 환경에서 대소문자 상관없이 사용 가능
- ‘데이터베이스’라는 폴더가 있고, 그 안에 ‘테이블’ 이라는 파일이 있다고 생각할 수 있음
- 가장 기본적인 사항: 어느 테이블에서 데이터를 가져올까
Query 구조
기본 구조
- SELECT : 데이터를 가져오는 기본 명령어, 데이터를 조회하는 모든 Query에서 사용
- FROM : 데이터를 가져올 테이블을 특정
SELECT * # *: 모든 컬럼 선택
FROM TABLE_NAME
SELECT 컬럼1, 컬럼2 #컬럼1, 컬럼2만 선택
FROM TABLE_NAME
컬럼에 별명 붙이기
- 별명: 영문이나 언더바는 그냥 적어주고, 한글이나 특수 문자는 큰 따옴표(" ") 안에 넣어주기
- 컬럼 as 별명
- 컬럼 별명
#기본 구조
SELECT 컬럼1 as 별명1, 컬럼2 별명2
FROM TABLE_NAME
#food_orders 테이블에서 order_id(별명: ord_no)와 restaurant_name(별명: 식당 이름) 컬럼 조회
SELECT order_id as ord_no,
restaurant_name "식당 이름"
FROM food_orders
WHERE 문법
- 전체 데이터 중 원하는 데이터(특정 조건)만 필터링
#기본 구조
SELECT *
FROM TABLE_NAME
WHERE 필터링 조건
#food_orders 테이블에서 cuisine_type이 Korean인 컬럼 전체 조회
SELECT *
FROM food_orders
WHERE cuisine_type='Korean'
필터링에 쓰이는 표현
- 비교연산자: 조건을 비교할 때 사용
- = (같다), <> (같지 않다), > (크다), >= (크거나 같다), < (작다), <= (작거나 같다)
- BETWEEN: A 와 B 사이
- 기본 문법 : between a and b
- IN : 특정 값을 포함하는 조건
- 기본 문법 : in (A, B, C)
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로
- 기본 문법: like 시작문자% / %포함문자% / %끝나는문자
- 논리연산: 여러 개의 조건을 적용할 때 사용
- AND(그리고), OR(또는), NOT(아닌)
#비교 연산자 예시 - 나이가 40세 이상인 행 조회
SELECT *
FROM customers
WHERE age>=40
#BETWEEN 예시 - 나이가 10과 20 사이인 행 조회
SELECT *
FROM customers
WHERE age between 10 and 20
#IN 예시 - 15, 21, 31에 해당하는 나이를 가진 행 조회
SELECT *
FROM customers
WHERE age in (15, 21, 31)
#LIKE 예시 - 이름이 김으로 시작하는 행 조회
SELECT *
FROM customers
WHERE name like '김%'
#비교 연산자와 논리 연산자 예시 - cuisine_type이 Korean이면서 가격이 30,000원 이상인 행 조회
SELECT *
FROM food_orders
WHERE cuisine_type='Korean' and price>=30000