일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring form
- 엑셀
- 인텔리제이
- java 오류
- JavaScript
- 자바
- 자바스크립트
- 자바 리스트
- Java
- 쿼리
- 엘라스틱서치
- Excel
- 형변환
- eclipse 설정
- 데이터베이스
- docker
- HTML
- 이클립스
- db
- vscode
- jQuery
- 한글 깨짐
- elasticsearch
- 이클립스 설정
- 도커
- Eclipse
- CSS
- JSP
- tomcat
- spring 오류
- Today
- Total
목록2024/11 (24)
개발노트
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kTZnl/btsKGi1HSNH/JdBVqz4F4WGyX52vv4Kcxk/img.png)
USING 사용 방법 ON 대신에 USING으로 변경하고, USING (두 테이블에 같은 이름을 가진 컬렴명) USING이 사용될 수 있는 조건EQUAL JOIN 일때 양쪽에 같은 이름을 가진 컬럼이 있어야함SELECT EMPNO, A.ENAME, B.DNAMEFROM EMP AJOIN DEPT BUSING (DEPTNO);
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sWTfx/btsKEbh8n9H/9ChsamS1UoP2setzEq0V5k/img.png)
OUTER JOIN한 쪽 테이블 기준으로 조인 기준 테이블을 불러오고, 다른쪽 테이블을 추가한다.기준이 되는 반대쪽에다가(+) 기호 추가SELECT A.STADIUM_NAME, A.STADIUM_ID, B.STADIUM_ID, B.TEAM_NAMEFROM STADIUM A, TEAM BWHERE B.STADIUM_ID(+) = A.STADIUM_ID;
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/k6IWn/btsKFeye1HO/KjWGcWpC0q8WhG9KkIXrek/img.png)
CROSS JOIN : 양쪽 테이블의 모든 조합-- 가상의 테이블 생성WITH SALGRADE AS ( SELECT 1 GRADE, 700 LOSAL, 1200 HISAL FROM DUAL UNION ALL SELECT 2 GRADE, 1201 LOSAL, 1400 HISAL FROM DUAL UNION ALL SELECT 3 GRADE, 1401 LOSAL, 2000 HISAL FROM DUAL UNION ALL SELECT 4 GRADE, 2001 LOSAL, 3000 HISAL FROM DUAL UNION ALL SELECT 5 GRADE, 3001 LOSAL, 9999 HISAL FROM DUAL)-- 조건을 주지 않고 JOIN하면 CROSS..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/589UG/btsKCTnkJce/Scs2PE9Z78lSCT0XBIXtk1/img.png)
JOIN일반적으로 PK, FK를 이용논리적 관계만으로 가능테이블 여러개 조인해도 2개씩 조인JOIN A, B, C,D -> JOIN(JOIN(JOIN(A,B), C), D)EQUI JOIN테이블 간의 칼럼 값들이 정확히 일치 할때JOIN 대상 테이블이 N개라면 EQUI JOIN은 조인 조건 N-1개 필요SELECT EMP.EMPNO, EMP.ENAME, DEPT.DNAMEFROM EMP, DEPTWHERE EMP.DEPTNO = DEPT.DEPTNO; [제약사항]ALIAS를 사용하면 기존 테이블의 이름 사용 불가능ALIAS를 사용하면 ALIAS만 사용가능FROM에 AS 사용 불가 조건 추가해서 사용 가능SELECT A.EMPNO, A.ENAME, B.DNAMEFROM EM..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/o4DjH/btsKyBhxWMi/9HHRUirBALcpbyVy9FIgM0/img.png)
ORDER BY 절: 결과를 정렬해서 출력SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY BIRTH_YEAR; -- (기본 : ASC) 생략가능한 옵션정렬 순서ORDER BY에 있는 컬럼 순서대로 정렬-- ORDER BY의 첫번째 컬럼으로 정렬(BIRTH_YEAR)-- 같은 것들을 두번째 컬럼으로 정렬SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY GROUP_NAME, BIRTH_YEAR DESC ; -- 정렬 기준을 각각 다르게 줄 수 있다SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY GROUP_NAME ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bn5k4i/btsKyyrhTM4/6F0lkwcRrEk8TVaKEclh11/img.png)
HAVING: GROUP BY 되거나 집계된 데이터 필터링SELECT GROUP_NAME, ROUND(AVG(HEIGHT), 2), MAX(HEIGHT), MIN(HEIGHT), AVG(FOOT_SIZE)FROM ARTISTGROUP BY GROUP_NAMEHAVING AVG(FOOT_SIZE) > 240; HAVING과 GROUP BY 순서를 바꿔도 실행이 된다. (논리적으로 GROUP BY 먼저 수행한 후 HAVING이 처리된다.)SELECT GROUP_NAME, ROUND(AVG(HEIGHT), 2), MAX(HEIGHT), MIN(HEIGHT), AVG(FOOT_SIZE)FROM ARTISTHAVING AVG(F..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhPwk8/btsKxH2q2Yh/lx9pmDxzMrk8vSWBPzYjg0/img.png)
-- GROUP_NAME이 같은 것끼리 그룹화-- 같은 GROUP_NAME을 가진 것 끼리 평균, 가장큰값, 작은값, 합계를 구함SELECT GROUP_NAME, COUNT(*), ROUND(AVG(HEIGHT),2), MAX(HEIGHT), MIN(HEIGHT), SUM(HEIGHT)FROM ARTISTGROUP BY GROUP_NAME; GROUP BY에 2개 이상의 컬럼 지정 가능SELECT GROUP_NAME, BIRTH_YEAR, COUNT(*), ROUND(AVG(HEIGHT),2), MAX(HEIGHT), MIN(HEIGHT), SUM(HEIGHT)FROM ARTISTGROU..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/smbJE/btsKxuh0FQC/ZDbH1uvi1NJvRMmc0dVxIK/img.png)
집계함수MIN, MAX, SUM, AVG, COUNT -- 전체 데이터를 집계해서 한줄로 표현SELECT COUNT(*), SUM(HEIGHT), AVG(HEIGHT), MAX(HEIGHT), MIN(HEIGHT)FROM ARTIST; -- NULL을 포함한 중복제거SELECT DISTINCT GROUP_NAME FROM ARTIST;SELECT COUNT(*), -- NULL 포함 전체 개수 COUNT(GROUP_NAME), -- NULL 포함X COUNT(DISTINCT GROUP_NAME) -- NULL 포함XFROM ARTIST;SELECT COUNT(*) AS 전체행수, COUNT(FOOT_SIZE) AS NULL..