일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Forensic 절차
- reversing.kr
- 3단계 지역 DB
- webhacking 처음
- Database
- frontend
- 인턴 후기
- restapi
- PyAmdecoder
- spring
- Django
- react
- 소개딩
- JSTL
- DBMS
- EER
- jsp
- riceteacatpanda
- 방명록 만들기
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- SessionAttribute
- mysql
- 인턴 지원
- 메모리 포랜식
- 행정지역 DB
- 정보보호병 후기
- 동읍면 DB
- 네이버 인턴
- Layered Architecture
- 소프트웨어 개발보안 경진대회
- Today
- Total
웹찢남
Database - 6일차 본문
Joined table
- FROM 절에 join을 추가하여 table을 합침
- 아래는 INEER JOIN
SELECT Fname,Lname,Address
FROM EMPLOYEE JOIN DEPARTMENT ON Dno=Dnumber)
WHERE Dname='Research';
위에서는 Dno와 Dnumber의 값이 같으면 하나로 침
NATURAL JOIN with two relations R and S
- No join condition specified
- 두 테이블에 같은 attribute가 있으면 NATURAL JOIN
- ATTRIBUTE가 다른데 natural join을 쓰려면 아래와 같이 하면됨
아래는 EMPLOYEE에 Dno가 있는데 DEPARTMENT에는 Dnumber라는 같은 attribute가 있는 상태
SELECT Fname, Lname, Address
FROM (EMPLOYEE NATURAL JOIN
(DEPARTMENT AS DEPT(Dname,Dno,Mssn,MSdate)))
WHERE Dname='Research';
INNER and OUTER JOIN
INNER JOIN
- joined table의 Default 타입
- 매칭되는 튜플이 있을 때만 결과에 튜플이 포함됨
LEFT OUTER JOIN
- 왼쪽의 테이블은 무조건 결과에 나온다.
- 매칭되는 튜플이 없을 경우 오른쪽 테이블 값들은 NULL로 채워진다.
RIGHT OUTER JOIN
- 오른쪽의 테이블은 결과에 무조건 나온다.
- 매칭되는 튜플이 없을 경우 왼쪽 테이블의 값들은 NULL로 채워진다.
Multiway JOIN in the FROM Clause
Aggregate(합계) Functions in SQL
- COUNT,SUM,MAX,MIN,AVG (여러 투플을 하나의 튜플로 요약하기위해 사용)
- GROUPING - Summarizing을 하기 전 튜플의 부분집합 설정
- 전체 그룹을 택하기 위해서 HAVING 절을 사용한다.
사용법
SELECT SUM(Salary), MAX(Salary)
FROM EMPLOYEE;
COUNT의 경우 SELECT COUNT(*) FROM EMPLOYEE 같이 사용 가능
GROUP BY는 SELECT 구문에만 나온다.
여기서 attribute의 값이 NULL이면 NULL끼리 모인다.
SELECT Dno, COUNT (*), AVG (Salary)
FROM EMPLOYEE GROUP BY Dno;
결과는 아래와 같다.
HAVING
SQL을 사용하여 두명의 사용자를 가진 그룹을 찾는다거나 그럴떄 사용
WHERE과 HAVING 접목
WHERE은 GROUP BY보다 먼저 실행된다. %주의%
→ 의도하지 않은 결과가 나올 수 있음
따라서 아래와 같이 복잡하게 사용해 줘야함
WITH
WITH 절은 특정한 절에서만 테이블을 정의할 때 사용한다.
일시적인 (Temp) VIEW를 사용할 때 사용한다.
특징은 선 정의 후 사용이라는 거다
CASE
SWITCH 절과 비슷한 친구
특정한 상태에서 값이 다를 떄 사용
CASE WHEN ~ THEN ~ ELSE ~
이 친구가 sql에서 <>if를 대체할 수 있다 실제로 SQLINJECTION에 BYPASS로 종종 쓰인다
'Database' 카테고리의 다른 글
Database - 7일차 (0) | 2021.02.02 |
---|---|
Database - 5일차 (0) | 2021.02.02 |
동읍면 DB 만들기 (0) | 2020.11.11 |
Database - 4일차 (0) | 2020.10.26 |
Database - 3일차 (0) | 2020.10.07 |