- SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
- FROM : 데이터를 가져올 테이블을 특정해주는 문법
- *: 모든 컬럼을 가져와준다는 의미. 또는 특정 컬럼명을 넣어 사용 가능.
select *
from order_id
select date, customer_name
from order_id - 컬럼에 별명(alias) 주기 : 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다. 이럴 때 컬럼 명에 별명을 지정하여 변경할 수 있습니다.
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
select restaurant_name as "식당 이름", addr address
from food_orders
WHERE절 사용 : 조건을 준다. from 다음에 필터링 조건을 적는다.
SELECT *
FROM customers
WHERE gender='male'
비교연산자의 종류 비교연산자 의미 예시
= | 같다 | age=21 |
gender=’female’ | ||
<> | 같지 않다 (다르다) | age<>21 |
gender<>’female’ | ||
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
BETWEEN : A 와 B 사이
- 기본 문법 : between a and b
- 예시 : 나이가 10 과 20 사이(10과 20 포함)
- where age between 10 and 20
- IN : ‘포함’ 하는 조건 주기
- 기본 문법 : in (A, B, C)
- 예시1 : 나이가 15, 21, 31 세인 경우
- age in (15, 21, 31)
- 예시2 : 음식 종류가 한식, 일식인 경우
- cuisine_type in ('Korean', 'Japanese')
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
- 특정한 문자로 시작하는 경우 (%: 어떤 값이 와도 된다는 의미)
- 기본 문법 : like ‘시작문자**%**’
- 예시 : ‘김’ 으로 시작하는 이름
- name like '김%'
- 특정한 문자를 포함하는 경우
- 기본 문법 : like ‘%포함문자%’
- 예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
- restaurant_name like '%Next%'
- 특정한 문자로 끝나는 경우
- 기본 문법 : like ‘**%**끝나는문자’
- 예시 : ‘임’ 으로 끝나는 이름
- name like '%임'
- 특정한 문자로 시작하는 경우 (%: 어떤 값이 와도 된다는 의미)
논리연산자
and 그리고 |
age>20 and gender=’female’ → 나이가 20세 이상이고, 여성
|
or 또는
|
age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성
|
not 아닌 (= '<>')
|
not gender=’female’ → 여성이 아닌
|
- 에러가 발생했을 경우: '왜 에러가 났는가'에 집중, '에러 메시지를 읽어보는 것’
- 연산자
+ 더하기 - 빼기 * 곱하기 / 나누기
함수
- 합계 : SUM(컬럼)
- 평균 : AVG(컬럼)
- 데이터 갯수 : COUNT(컬럼) + 컬럼명 대신 '1' 혹은 '*' 사용하여 모든 데이터의 갯수 파악 가능
+ 몇 개의 값을 가지고 있는지 구할 때 : DISTINCT
select count(1) as total_pay, count(distinct pay_type) as count_of_pay_typefrom payments
-> total_pay에는 payments의 데이터 갯수(행의 수),
count_of_pay_type에는 payments 안에 저장된 지불 종류의 갯수
distinct는 중복을 없앤다는 의미. - 최솟값 : MIN(컬럼)
- 최댓값 : MAX(컬럼)
- Group by : 범주별 계산, "group by 범주형 컬럼"을 적어주는 것으로 적용 가능.
SELECT pay_type,
max(date) recent_date
from payments
group by pay_type
-> 지불 방식 별로 최근 결제일을 나타냄.
- Order by : 조회된 결과를 정렬. "Order by 정렬을 원하는 칼럼"을 적어주는 것으로 적용 가능,
기본은 오름차순, 내림차순은 desc 추가
select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum(price) desc
->
1. food_orders 에서 cuisine_type, sum(price) sum_of_price을 가져옴.
2. cuisine_type별로 묶고 합계 금액 sum(price) sum_of_price 을 계산하여 내림차순으로 정렬 order by sum(price) desc
order by name, gender / order by gender, name
전자는 name으로 정렬 후 gender로 정렬, 후자는 성별로 정렬 후 이름으로 정렬.
+ order by gender desc, name라면 남성 전체를 이름 순으로 정렬 후, 여성 전체를 이름 순으로 정렬.
'SQL' 카테고리의 다른 글
DB, RDB, DBMS, RDBMS (1) | 2024.12.09 |
---|---|
WITH절 - CTE 구문 만들기. (0) | 2024.11.11 |
기본키(pk), 외래키(fk) 동시 적용 (1) | 2024.10.04 |
SQL - DDL, DML (0) | 2024.10.02 |
SQL 기초2 (0) | 2024.08.25 |