Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- expo 51 버전
- 네스트시큐리티
- langchain react agent
- expo 안드로이드
- langchain tools
- 자바공부
- AI
- langchain
- react
- 타입스크립트상태관리
- expo 아이폰 오류
- 리액트 네이티브 오류
- 상태관리
- expo 51 오류
- comfyui
- 이미지처리
- 스프링 공부
- expo 버전 오류
- langgraph mcp
- 리액트 네이티브
- vllmmcp
- jotai
- 크로마DB
- VectorDB
- 랭체인 툴
- expo go 오류
- rnn gnsfus
- expo 아이폰
- nestjs시큐리티
- langgraph
Archives
- Today
- Total
영리의 테크블로그
05 distinct,limit, join 본문
-- distinct
-- distinct 는 중복된 값을 제거하는데 사용된다.
-- 컬럼에 있는 컬럼값들의 종류를 쉽게 파악할 수 있다.
select
*
from
tbl_menu
order by category_code;
-- 단일 열(컬럼) 중복 제거
select
distinct category_code
from
tbl_menu
order by category_code;
-- null 값을 포함한 열의 distinct 사용
select
*
from
tbl_category;
select
distinct ref_category_code
from
tbl_category;
-- 다중 열(컬럼) distinct 사용
-- 다중열의 값들이 모두 동일하면 중복된 것으로 판별한다.
select
category_code,
orderable_status
from
tbl_menu;
select distinct
category_code,
orderable_status
from
tbl_menu;
-- limit
-- limit elect 문의 경로가 집합에서 반환할 행의 수를 제한하는데 사용된다.
select
*
from
tbl_menu
order by
menu_price desc;
select
*
from tbl_menu
order by
menu_price desc
limit 5;
-- limit [offset, ] row)_count
-- offset : 시작할 행의 번호(인덱스 체계)
-- row_count : 이후 행 부터 빈환 받을 행의 갯수
select
menu_code,
menu_name,
menu_price
from
tbl_menu
order by
menu_price desc
limit 0,4; -- 인덱스 체계 인덱스 부터, 몇개 까지
-- join
-- 두 개 이상의 테이블을 관련 있는 컬럼을 통해 결합하는데 사용된다.
-- 두 개 이상의 테이블은 반드시 연관있는 컬럼이 존재해야 하며,
-- 이를 통해 join 된 테이블들의 컬럼을 모두 사용할 수 있다.
-- alias (as)
-- sql 문의 컬럼 또는 테이블에 별칭을 달아줄 수 있다.
-- 이러한 별칭을 alias 라고 한다.
-- 별칭에 띄어쓰기나 특수기호가 없다면 홀따옴표(') 와 as 는 생략 가능하다.
select
menu_code as 'code',
menu_name as name,
menu_price price
from
tbl_menu
order by
price;
-- 테이블 별칭
-- 테이블에 별칭을 작성할 수 있으며 어떤 테이블 소속인지를 쉽게 알 수 있게 한다.
select
a.category_code,
a.menu_name
from
tbl_menu a;
-- join 의 종류
-- inner join
-- 두 테이블의 교집합을 반환하는 join 유형
-- inner join 에서 inner 키워드는 생략이 가능하다.
-- select
-- menu_name,
-- category_name
-- from
-- tbl_menu;
-- on 키워드를 횔용한 join
-- 컬럼명이 같거나 다를 경우 on 으로 서로 연관있는 컬럼에 대한 조건을 작성하여
-- join
select
a.menu_name,
b.category_name
from
tbl_menu a
join tbl_category b on a.category_code = b.category_code;
-- using 을 활용한 join
-- 컬럼명이 같을 경우 using 으로 서로 연관있는 컬럼에 대한 조건을 작성하여
-- join 하는 경우
select
a.menu_name,
b.category_name
from
tbl_menu a
join tbl_category b using(category_code);
-- left join
-- 첫 번째(왼쪽) 테이블의 모든 레코드와 두 번째(오른쪽) 테이블에서 일치하는 레코드를
-- 반환하는 sql join 유형
select
a.category_name,
b.menu_name
from
tbl_category a
left join tbl_menu b on a.category_code = b.category_code;
-- right join
-- 두 번째(오른쪽) 테이블의 모든 레코드와 첫 번쨰(왼쪽) 테이블에서 일치하는 레코드를 반환하는
-- sql 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
-- 두 테이블의 모든 가능한 조합을 반환하는 sql join 유형
select
a.menu_name,
b.category_name
from
tbl_menu a
cross join tbl_category b;
-- self join
-- 같은 테이블 내에서 행과 행 사이의 관계를 찾기 위해 사용되는 sql join 유형
select
*
from
tbl_category;
select
a.category_name,
b.category_name
from
tbl_category a
join tbl_category b on a.ref_category_code = b.category_code;
select
a.menu_name,
b.menu_name
from
tbl_menu a
join tbl_menu b on a.menu_code = b.menu_code;
select
menu_code,
menu_price
from
tbl_menu;'dev > SQL' 카테고리의 다른 글
| SQL(GROUP BY, SUBQUERY, set_operators , dml, transaction, view, data type, build_in_functions) (0) | 2024.03.04 |
|---|---|
| SELECT,ORDER BY, WHERE (0) | 2024.02.28 |