부트캠프에서 처음으로 java수업을 받고 있기에 기록하는게 좋다고 생각했고, 수업이 있는 날이면 매일 글을 쓰려고 합니다. 쵀대한 몰랐거나 필요하다고 생각되는 내용 위주로 기록할 예정입니다. (제가 게을러서 이러한 시도를 성공한 적이 없기에 이번 부트캠프 목표 중 1가지입니다. 할 수 있도록 화이팅!!)
데이터를 조회할 때 사용하는 기본적인 SQL 명령어. 특정 컬럼만 선택 가능하다.
모든 컬럼을 선택할 경우 SELECT * FROM table_name;
사용
SELECT
menu_code
, menu_name
, menu_price
FROM tbl_menu;
정렬할 때 사용하는 절로 ASC(오름차순, 기본값), DESC(내림차순) 지정 가능하다.
SELECT
menu_code
, menu_name
, menu_price
FROM tbl_menu
ORDER BY menu_price;
조건을 만족하는 행(row)만 조회하도록 필터링하는 절이다. 비교 연산자 (=, !=, <, >, <=, >=) 사용 가능하고 논리 연산자 (AND, OR, NOT) 사용 가능하다.
SELECT
menu_name
, menu_price
, orderable_status
FROM tbl_menu
WHERE menu_price = 13000;
SELECT
menu_code
, menu_name
, menu_price
FROM tbl_menu
WHERE menu_price > 20000;
중복을 제거하고 고유한 값만 조회하는 키워드로 중복된 데이터를 한 번씩만 출력하게 할 수 있다.
SELECT
DISTINCT category_code
FROM tbl_menu
ORDER BY category_code;
두 개 이상의 테이블을 연결하여 데이터를 조회하는 방식
각 테이블은 공통된 colum(키)을 기반으로 결합됨.
/* 기본 사용법*/
SELECT
a.menu_name
, b.category_name
FROM tbl_menu a
-- inner join tbl_category b ON a.category_code = b.category_code;
JOIN tbl_category b ON a.category_code = b.category_code;
/* LEFT JOIN */
-- 첫 번째(왼쪽)테이블의 모든 레코드와 두 번째(오른쪽)테이블에서 일치하는 레코드를 반환하는 JOIN
SELECT
a.category_code
, b.menu_name
FROM tbl_category a
LEFT join tbl_menu b on a.category_code = b.category_code;
/* RIGHT JOIN */
-- 두 번째(오른쪽) 테이블의 모든 레코드와 첫 번째(왼쪽) 테이블에서 일치하는 레코드를 반환하는 JOIN
SELECT
a.menu_name
, b.category_name
FROM tbl_menu a
RIGHT join tbl_category b on a.category_code = b.category_code;
/* CROSS JOIN */
-- 두 테이블의 모든 가능한 조합을 반환하는 JOIN
SELECT
a.menu_name
, b.category_name
FROM tbl_menu a
CROSS join tbl_category b;
postgreSQL를 사용해서 프로젝트를 진행했을 때는 문법을 제대로 공부를 안 하고 필요할 때만 검색을 했다. 그래서 잘 모르고 썼는데 이제는 명어가 뜻하는 것이 무엇인지 알게 되어서 재미있었다.