데이터베이스 폴더에 있는 특정 데이터베이스를 우클릭하여 queryTool을 활용할 수 있다.
SELECT
SELECT 칼럼명 FROM 테이블명;
SELECT * FROM film;
이렇게 전체를 select할 수도 있는데 모든 내용이 쿼리되어 데이터베이스 서버와 애플리케이션 사이의 트래픽이 증가될 수 있다.
검색 성능을 생각한다면 자주 사용하는게 바람직하지는 않을 듯하다.
DISTINCT
중복값이 테이블에 존재해도, 중복되지 않은 값만 반환하고 싶을떄 쓰는 키워드
고유한 대여료는 얼마인가??
영화의 등급을 어떻게 나타낼수있을까??
SELECT DISTINCT rental_rate FROM film;
SELECT DISTINCT rating FROM film;
COUNT
SELECT COUNT(amount) FROM payment;
이렇게 특정 열이름(amount)으로 작성해주어야 나중에 볼때 특정한 열에 대한 카운팅질문을 했다는 것을 유추할수있다.
e.g. 고유한 금액의 갯수는?
SELECT COUNT(DISTINCT amount) FROM payment;
WHERE
SELECT COUNT(*) FROM film
WHERE rental_rate > 4 AND replacement_cost >= 19.99
AND rating = 'R';
ORDER BY
SELECT * FROM customer
ORDER BY store_id, first_name DESC
=> 이렇게 하게 되면 store_id를 기준으로 오름차순 정렬을 먼저하고, 그다음 그중에서 first_name기준으로 내림차순정렬 처리를 함.
=> 둘다 내림차순 하려면
ORDER BY store_id DESC, first_name DESC
LIMIT
마지막에 추가하여 반환되는 행의 수를 제한할 수 있다. ORDER BY와 함께 사용하면 유용.
BETWEEN
값을 범위와 비교할때 사용
WHERE문 뒤에 사용하는 조건문으로 쓰임.
SELECT COUNT(*) FROM payment
WHERE amount NOT BETWEEN 8 AND 9;
IN
옵션을 구분하기 위해 괄호와 쉼표를 사용하고, 옵션들은 해당열의 일반 구문을 충족해야함.
알려진 이름 목록 안에 사용자의 이름이 표시되는 경우
SELECT color FROM table
WHERE color NOT IN (’red’,’blue’,’green’)
LIKE와 ILIKE
LIKE는 대소문자 구분한다.
ILIKE는 대소문자 구분X
SELECT * FROM customer
WHERE first_name ILIKE 'j%' AND last_name ILIKE '%er%';
여러 조건을 입력하여 하나의 결과를 반환.
AVG, COUNT, MAX, MIN, SUM
하나의 열에 대해서만 집계함수를 호출할 수 있다.
다른 열을 호출하기 위해선???
⇒ GROUP BY
데이터가 카테고리별로 어떻게 분포되어 있는가를 파악하기 위해 쓰임.