[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.
# SQL
SELECT prod_name
FROM Products;

Products 테이블에서 prod_name이라고 불리는 하나의 열을 가져오기 위해 SELECT 문을 사용하였다. SELECT 키워드 바로 오른쪽에 가져오고 싶은 열 이름을 적고, FROM 절에는 가져올 데이터가 있는 테이블의 이름을 적는다.;)으로 분리해야 한다.,)로 구분하여 모두 나열한다.# SQL
SELECT prod_id, prod_name, prod_price
FROM Products;

Products 테이블에서 데이터를 가져오는데, prod_id, prod_name, prod_price 3개의 열 이름을 나열하였고, 각 열은 콤마(,)로 구분하였다.*)를 사용하여 모든 열을 가져올 수도 있다.SELECT *
FROM Products;

*)를 사용하면, 테이블의 모든 열이 반환되는데, 열의 순서는 일반적으로 테이블에서 정의한 순서대로 불러온다.*)를 사용하지 않는 것이 더 낫다. 원하는 열을 직접 적는 것보다 와일드 카드 문자를 쓰는 것이 시간과 노력을 절약할 수 있지만, 불필요한 열을 가져와 검색 성능을 저하한다.SELECT vend_id
FROM Products

BRS01, DLL01, FNG01 로 3개의 판매처를 가지고 있지만 결과는 9개의 레코드를 호출한다.Products 테이블이 9개의 레코드로 구성되어 있기 때문이다.DISTINCT 키워드를 사용하면 된다.DISTINCT 키워드는 중복되는 값을 제거한다.SELECT DISTINCT vend_id
FROM Products

DISTINCT 키워드는 모든 열에 일괄 적용된다. 하나의 열에만 부분적으로 적용할 수는 없다. 만약 SELECT DISTINCT a, b FROM table 라고 적는다면 지정된 두 항목을 결합하여 생성된 고유한 조합이 반환된다.MySQL, MariaDB, PostgreSQL 이나 SQLite 를 사용한다면 LIMIT 키워드를 사용하면 된다.SELECT prod_name
FROM Products
LIMIT 3, 4;
LIMIT 3, 4; 의 의미는 Products 테이블에서 추출한 prod_name 열의 레코드 중 인덱스 3 부터 4 개 즉, 인덱스 6번가지의 레코드를 반환하는 것을 의미한다.SELECT prod_name -- 주석
FROM Products
--)을 사용하여 한 줄 주석을 달 수 있다.CREATE TABLE 문에서 열에 대한 설명을 적는 것은 바람직한 사용 방법이다.SELECT prod_name # 주석
FROM Products
# 으로 시작하는 문장은 주석으로 처리된다./*SELECT prod_name
FROM Products*/
SELECT prod_name
FROM Products
/* 으로 시작해서 */ 으로 끝나는 문장은 주석으로 처리된다.Customers 테이블에서 모든 고객 ID(cust_id)를 가져오는 SQL 문을 작성하라.SELECT cust_id
FROM Customers;

OrderItems 테이블에는 주문 목록을 모두 저장한다(일부는 여러 번 주문되었다). 주문한 제품 목록(prod_id)을 가져오는 SQL 문을 작성하라(모든 주문이 아니라 고유한 제품 목록이다). 결과로 7개의 행이 표시되어야 한다.SELECT DISTINCT prod_id
FROM OrderItems;

Customers 테이블에서 모든 열을 가져오는 SQL 문을 작성해 보고 고객 ID만 가져오는 SELECT 문을 작성하라. 한 문장을 주석 처리하여 하나만 실행하게 한다(그러고 나서 다른 문장을 주석 처리하여 실행한다).SELECT *
FROM Customers;
/* SELECT cust_id
FROM Customers; */
/* SELECT *
FROM Customers; */
SELECT cust_id
FROM Customers;

