1주차의 문법들
Select: 데이터베이스에서 선택하겠다
ex: select ? from ?? = ?? 테이블에서 ?필드 선택
Where : Select로 가져올 데이터에 조건을 걸어주는 것을 의미
ex: orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와
select * from orders where payment_method = "kakaopay";
=! 다른것, 같지않은 것
select * from orders where course_title != "웹개발 종합반"이면 오더스에서 웹종이 아닌 데이터를 끌어온다
between: 범위조건문, 날짜에서 써봤다
ex 7월 13일, 7월 14일의 주문데이터 이러면
select * from orders where created_at between "2020-07-13" and "2020-07-15";
인데 13일 부터 15일 되기 전이니까 14일까지임, 자주 햇갈린다
in: 포함
select * from checkins where week in (1, 3);
이면 1,3 week에 포함된 사람 데이터가 나온다
like: 패턴 조건문, 이메일로 여러 데이터를 묶는거 처럼 비슷한 데이터를 묶을때 쓴다, 제일 어렵다
select * from users where email like '%daum.net';
이면 아이디는 상관없이 다음 이메일만 가져온다, 골뱅이는 꼬일까봐 안했고 %가 앞의 여러 다른걸 퉁쳐줌
Limit:몇개만 꺼내보기, 통계용으로 쓸 수 있는지는 모르겠다
ex: select * from orders where payment_method = "kakaopay" limit 5;
이면 5개만 랜뽑
Distinct: 중복제외하고 가져오기
ex: select distinct(payment_method) from orders;
이면 payment_method 종류만 보여줌
Count: 숫자 세줌
ex: select count(*) from orders
이면 오더스 총 데이터 갯수를 세줌
2주차 문법정리
Group by: 데이터 묶기, where의 발전형, 원하는 필드에서 같은 값을 가지는 걸 다 묶어준다
ex: select name, count(*) from users group by name;
이면 이름 같은 사람들끼리 묶고, 수를 세줌
여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어주는 것
Order by: 뽑아온 데이터를 조건에따라 순위지어줌
ex: select name, count(*) from users group by name; order by count(*)
이면
위 이미지가 이렇게 카운트에 따라 정렬, 지금은 오름차순이라 저렇고 내림차순이면 오더바이 카운트 뒤 괄호 뒤에
desc 쓰면 크기순 정렬이 된다
3주차
join: 여러 테이블을 동일한 필드(데이터)를 사용하 묶고 합쳐서 보여줌, 월급표와 전화번호부가 있으면
이름으로 엮어서 이름 월급 전번이 한 테이블로 표시되는 것
join의 파생 inner join(교집합)과 left join
inner join
만약 select * from users u
inner join point_users p
on u.user_id = p.user_id;
한다면 U와 P에서 같은 유저아이디 값을 가진 데이터만 출력
left join
이런 꼬라지가 나온다고 하는데 이해안가서 웹검색
SQL LEFT JOIN 구문 (tistory.com) 참조
select * from info A
left join order B
on A.p_num = B.p_num;
로
와
이 두 테이블을 공통 필드인 p넘을 기준으로 엮으면
이렇게 합쳐지는데 p넘1은 2테에 없으니 널이 나온다
union 두 쿼리를 하나로 엮을 때 씀
MSSQL UNION 사용하기 : 네이버 블로그 (naver.com)
MSSQL UNION 사용하기
- UNION 문이란? 두개 이상의 쿼리 결과를 하나의 테이블로 합쳐서 표시하는데 이용됩니다. - MSS...
blog.naver.com
SQL UNION 구문 (tistory.com)
SQL UNION 구문
안녕하세요!! 이번에 포스팅할 내용은 SQL UNION 구문 입니다. UNION 은 두 개 이상의 select 문을 결합하는데 사용합니다. 두 개 이상의 select 문을 결합할때 주의해야 할 점은 불러오는 칼럼의 개수가
makand.tistory.com
참조
조건: 엮을 쿼리끼리 칼럼값이 같아야 한다
주의: 중복되는건 한번만 나온다, 첫 블로그 참조
4주차
Subquery : 쿼리 안의 쿼리
원래 이런식으로 유저목록과 오더를 엮어 카카오 페이로 결재한 유저만을 추출할 수있는데
기존의 오더에서 카카오 결재한 유저 아이디만 떼는 쿼리를
유저목록에서 괄호치고 넣으면 간단한(개념만) 방식으로 겹치는 부분만 뗄수있다
with: 영어에서 with로 시작하는 문장을 생각해보자, 대전제 같이
이게
같은 말이지만 알아보긴 쉽다