티스토리 뷰
SQL 에서 데이터가 억 건이 넘어가면, 속도가 많이 느려진다
NOSQL - 스키마 없고, 분산처리(샤딩) 용이
sum() as sum
서브쿼리
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, # id 필드는 정수형의 primary key, 자동증가
firstname VARCHAR(30) NOT NULL, # firstname 필드는 문자열30 글자, null 허용 안함
lastname VARCHAR(30) NOT NULL, # lastname 필드는 문자열30 글자, null 허용 안함
email VARCHAR(50), # email 필드는 문자열50 글자
reg_date TIMESTAMP # reg_date 필드는 TIMESTAMP타입
)
show index from city;
인덱스 설정
create index city_idx1 on city(Population);
drop index city_idx1 on city(Population);
쿼리 분석
explain select * from city where Population>1000000;
like 'KO%'
like '%KO%'
출력 방법 (게시판)
select 문 limit 4 첫 4개를 가져옴
select 문 limit 4,2 4번째 부터 2개를 가져옴
select CountryCode, sum(Population)
from city
group by CountryCode
having CountryCode='KOR';
조회 조건 + Aggregation 함수
1. where 조건 후에 group by (추린 후에 그룹화)
2. group by 후에 aggregation function 수행 (그룹화 후에 추림)
3. where 절에서 Sum, Avr 등 aggregation 함수 사용 불가
group by
where 서치 후에 필터링 연산
having 은 필터링 후 서치, group function을 추가 할 수 있다
서브쿼리 (내부 select)
상관 서브쿼리 (내부쿼리에서 외부쿼리의 테이블을 참조하는 쿼리)
select CountryCode, Name, Population
from city c1
where Population =
(select max(Population)
from city c2
where c1.CountryCode = c2.CountryCode)
order by Population desc;
조인
cross join - 사이즈 커짐 m x n 개
inner join - 같은것만 붙임
outer join - 다른 것도 붙임
left 면 기준은 g1 기준으로 붙임
right 면 g2 기준으로 붙임
가까이 있는 쿼리를 가져와서
다시 서브쿼리에 적용해봄
워크벤치에서 limit row 이후 데이터 가져오기 -