일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @JUnit
- @AspectJ
- unix
- 마이바티스
- 리눅스
- pointcut
- spring aop
- @Spring-Test
- 컨테이너
- STS
- JdbcTemplate
- spring framework
- JDBC TEMPLATE
- SpringJDBC
- @test
- 프로퍼티
- Framework
- myBatis
- Di
- Ubunt
- Spring Boot
- Spring JDBC
- Dependency Injection
- AOP
- XML
- java spring
- java
- spring
- POJO
- Linux
- Today
- Total
목록Content (307)
개키우는개발자 : )

서브쿼리 란? 서브쿼리는 SQL문 내에서 메인 쿼리가 아닌 하위에 존재하는 쿼리를 말하며, 서브쿼리를 활용함으로써 다양한 결과를 도출 할 수 있다. 실습 - FILM 테이블의 RENTAL_RATE 의 평균값을 구하고, 계산된 평균값 보다 큰 RENTAL_RATE 의 값을 조회합니다. 1. FILM 테이블의 RENTAL_RATE컬럼의 평균값을 구하기. SELECT AVG(RENTAL_RATE) FROM FILM; 2. RENTAL_RATE의 평균 보다 큰 RENTAL_RATE 구하기 SELECT FILM_ID, TITLE, RENTAL_RATE FROM FILM WHERE RENTAL_RATE > 2.98; 3. 2개의 SQL을 결합하여 하나의 SQL문으로 두번째의 결과값과 같은 결과를 조회합니다. 중첩 ..

EXCEPT 연산 이란? 맨위에 SELECT문의 결과 집합에서 그 아래에 있는 SELECT문의 결과 집합을 제외한 결과를 반환합니다. LEFT ONLY 기본문법 두개의 SELECT문 간 컬럼의 개수는 동일해야 하고 해당 순서의 열에는 서로 호환되는 데이터 유형 이어야 합니다. SELECT COLUMN_1_1, COLUMN_1_2 FROM TABLE_NAME_1 EXCEPT SELECT COLUMN_2_1, COLUMN_2_2 FROM TABLE_NAME_2 ORDER BY ... 실습 - INVENTORY 테이블과 FILM테이블을 FILM_ID 컬럼 기준으로 INNER JOIN 합니다. SELECT DISTINCT INVENTORY.FILM_ID, TITLE FROM INVENTORY INNER JOIN..

INTERSECT 연산 이란? 두 개 이상의 SELECT 문들의 결과 집합을 하나의 결과 집합으로 결합 합니다. INTERSECT 연산자에 의해 조회된 결과는 A와B의 교집합의 값을 반환 합니다. 기본문법 두개의 SELECT문 간 컬럼의 개수는 동일해야 하며 해당 순서의 열에는 서로 호환되는 데이터 유형 이어야 합니다. ORDER BY로 정렬하고자 할 경우 맨 마지막 SELECT문에 ORDER BY절을 사용합니다. SELECT COLUMN_1_1, COLUMN_1_2 FROM TABLE_NAME_1 INTERSECT SELECT COLUMN_2_1, COLUMN_2_2 FROM TABLE_NAME_2 실습 - KEYS 테이블의 EMPLOYEE_ID컬럼 기준 값과 HIPOS 테이블의 EMPLOYEE_ID컬..

UNION 이란? 두 개 이상의 SELECT 문들의 결과 집합을 단일 결과 집합으로 결합하며 결합 시 중복된 데이터는 제거된다. 기본 문법 두 개의 SELECT문 간 컬럼의 개수는 동일해야 하며 해당 순서의 열에는 서로 호환되는 데이터 유형 이어야 합니다. 두 개의 SELECT문에서 중복되는 데이터 값이 있다면 중복은 제거된다. ORDER BY로 정렬하고자 할 경우 맨 마지막 SELECT문에 ORDER BY 절을 사용한다. SELECT COLUMN_1_1, COLUMN_1_2 FROM TABLE_NAME_1 UNION SELECT COLUMN_2_1, COLUMN_2_2 FROM TABLE_NAME_2; 실습 - SALES2007_1 , SALES2007_2 UNION 연산 조회 SELECT * FROM..
실습준비1 SALES2007_1 테이블 만들기 CREATE TABLE SALES2007_1 ( NAME VARCHAR(50), AMOUNT NUMERIC(15,2) ); SALES2007_1 데이터 저장 INSERT INTO SALES2007_1 VALUES ('MIKE',15000.25), ('JON',132000.75), ('MARY',10000) commit; SALES2007_2 테이블 만들기 CREATE TABLE SALES2007_2 ( NAME VARCHAR(50), AMOUNT NUMERIC(15,2) ); SALES2007_2 데이터 저장 INSERT INTO SALES2007_2 VALUES ('MIKE',120000.25), ('JON',142000.75), ('MARY',10000)..

RENTAL과 CUSTOMER 테이블을 이용하여 현재까지 가장 많이 RENTAL을 한 고객의 고객ID, 렌탈순위, 누적렌탈 횟수, 이름까지 출력하세요. SELECT * FROM RENTAL; SELECT * FROM CUSTOMER; - MAX , WHERE SELECT ROW_NUMBER() OVER ( ORDER BY COUNT(A.RENTAL_ID) DESC) AS RENTAL_RANK , MAX(B.FIRST_NAME) AS FIRST_NAME, MAX(B.LAST_NAME) AS LAST_NAME, A.CUSTOMER_ID, COUNT(*) RENTAL_COUNT FROM RENTAL A, CUSTOMER B WHERE A.CUSTOMER_ID = B.CUSTOMER_ID GROUP BY A.C..

RENTAL 테이블을 이용하여 연, 연월, 연월일, 전체 각각의 기준으로 RENTAL_ID 기준 렌탈이 일어난 횟수를 출력하세요. (전체 데이터 기준으로 모든 행을 출력합니다) SELECT * FROM RENTAL; - 연별 조회 SELECT TO_CHAR(RENTAL_DATE, 'YYYY'), COUNT(*) FROM RENTAL GROUP BY TO_CHAR(RENTAL_DATE, 'YYYY') ORDER BY TO_CHAR(RENTAL_DATE, 'YYYY') - 연월 조회 SELECT TO_CHAR(RENTAL_DATE, 'YYYYMM'), COUNT(*) FROM RENTAL GROUP BY TO_CHAR(RENTAL_DATE, 'YYYYMM') ORDER BY TO_CHAR(RENTAL_DAT..

실습 테이블 만들기 https://dog-developers.tistory.com/154 LAG,LEAD 함수 특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 특정 컬럼의 이전 행의 값 혹은 다음 행의 값을 구합니다. 실습 LAG 1. PRODUCT 테이블과 PRODUCT_GROUP 테이블을 GROUP_ID 기준으로 INNER JOIN 합니다. 2. PRICE의 이전 행의 값을 구합니다. 3. 현재 행에서 이전행의 PRICE값을 뺍니다. 4. GROUP_NAME 컬럼 기준으로 PRICE컬럼으로 정렬 합니다. SELECT A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE, LAG(A.PRICE, 1) OVER (PARTITION BY B.GROUP_NAME ORDER BY A.P..

실습 테이블 만들기 https://dog-developers.tistory.com/154 ROW_NUMBER, RANK, DENSE_RANK 특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 특정 컬럼의 순위를 구하는 함수입니다. 실습 ROW_NUMBER - 집합 내의 순위를 GROUP_NAME 컬럼 기준으로 구하고 GROUP_NAME 기준의 각 순위는 PRICE 컬럼 기준으로 정렬 합니다. SELECT A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE, ROW_NUMBER () OVER (PARTITION BY B.GROUP_NAME ORDER BY A.PRICE) FROM PRODUCT A INNER JOIN PRODUCT_GROUP B ON (A.GROUP_ID = B.GR..

실습 테이블 만들기 https://dog-developers.tistory.com/154 AVG 란? 분석함수 AVG() 부터 본격적으로 분석함수를 알아 볼 수 있습니다. 기본문법 - 사용하고자 하는 분석함수를 쓰고 대상 컬럼을 기재 후 PARTITION BY에서 값을 구하는 기준 컬럼을 작성 후 ORDER BY에서 정렬 컬럼을 기재합니다. SELECT C1, 분석함수(C2,C3,...) OVER(PARTITION BY C4 ORDER BY C5) FROM TABLE_NAME; 실습 - PRODUCT 테이블의 전체 PRICE 평균 구하기. select AVG (PRICE) from PRODUCT; - PRODUCT_GROUP 테이블과 PRODUCT 테이블을 GROUP_ID컬럼 기준으로 INNER JOIN..

실습 테이블 만들기 https://dog-developers.tistory.com/154 분석 함수란? 특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 합계 및 카운트 등을 계산할 수 있는 함수 이다. 실습 - PRODUCT 테이블의 데이터 개수를 조회 SELECT COUNT(*) FROM PRODUCT; 데이터의 리스트의 개수를 조회한다 - PRODUCT 테이블의 데이터와 개수를 같이 조회 SELECT COUNT(*) OVER(), A.* FROM PRODUCT A; 모든 개수와 데이터를 조회합니다.
실습준비 1 PRODUCT_GROUP 테이블 생성 CREATE TABLE PRODUCT_GROUP ( GROUP_ID SERIAL PRIMARY key, GROUP_NAME VARCHAR (255) NOT NULL ) PRODUCT_GROUP 데이터 저장 INSERT INTO PRODUCT_GROUP (GROUP_NAME) VALUES ('SMARTPHONE'), ('LAPTOP'), ('TABLET') commit; PRODUCT 테이블 만들기 CREATE TABLE PRODUCT ( PRODUCT_ID SERIAL PRIMARY KEY, PRODUCT_NAME VARCHAR(255) NOT NULL, PRICE DECIMAL (11,2), GROUP_ID INT NOT NULL, FOREIGN KEY..

CUBE 란? 지정된 GROUPING 컬럼의 다차원 소계를 생성하는데 사용된다. 간단한 문법으로 다차원 소계를 출력할 수 있다. 기본문법 - CUBE절에서 다차원 소계를 할 열을 지정한다. (지정한 그룹의 모든 경우에 수에 대한 소계와 총계를 구한다.) SELECT C1,C2,C3, 집계함수(C4) FROM TABLE_NAME GROUP BY CUBE (C1, C2, C3); - 특정 컬럼만 분리,선택하여 CUBE 지정을 할 수 있다. SELECT C1,C2,C3, 집계함수(C4) FROM TABLE_NAME GROUP BY C1, CUBE (C2, C3); CUBE 절은 GROUPING SETS 절로 표현하면 총 8개의 소계가 발생합니다. CUBE(C1,C2,C3) -> GROUPING SETS ( (..

ROLL UP 이란? 지정된 GROUPING 컬럼의 소계를 생성하는데 사용된다. 간단한 문법으로 다양한 소계를 출력합니다. 기본문법 소계 「명사」 : 전체가 아닌 어느 한 부분만을 셈한 합계. - 소계를 생성할 컬럼을 지정한 후 순서에 따라 결과값이 달라질 수 있다. (제일 앞에 놓인 것에 소계를 구함) SELECT C1,C2,C3, 집계함수(C4) FROM TABLE_NAME GROUP BY ROLLUP (C1,C2,C3); - 특정 컬럼을 제외한 부분적,선택적 ROLLUP도 가능 합니다. SELECT C1,C2,C3, 집계함수(C4) FROM TABLE_NAME GROUP BY C1 ROLLUP (C2, C3); 실습 - SALES 테이블의 BRAND,SEGMENT 컬럼 기준으로 ROLL UP을 합니..

실습테이블 만들기 https://dog-developers.tistory.com/140 GROUPING SET 이란? 여러 개의 UNION ALL을 이용한 SQL과 같은 결과를 도출할 수 있다. 실습 - SALES 테이블을 BRAND 와 SEGMENT 컬럼 기준으로 GROUP BY 합니다. SELECT BRAND, SEGMENT, SUM (QUANTITY) FROM SALES GROUP BY BRAND, SEGMENT; 일반적인 조회와 값이 별다른 변화가 없습니다. - SALES 테이블을 BRAND 컬럼 기준으로 GROUP BY 합니다. SELECT BRAND, SUM (QUANTITY) FROM SALES GROUP BY BRAND; 그룹화된 BRAND 의 QUANTITY의 합계를 보여줍니다. - SA..

실습테이블 만들기 https://dog-developers.tistory.com/140 HAVING 이란? GROUP BY 절과 함께 HAVING절을 사용하여 GROUP BY의 결과를 특정 조건으로 필터링 하는 기능을 한다. 기본문법 WHERE 절과는 다른건 집계함수의 결과를 가지고 조건을 적용하여 조회합니다. SELECT COLUMN_1, 집계함수(COLUMN_2) FROM TABLE_NAME GROUP BY COLUMN_1 HAVING 조건식; 실습 - PAYMENT 테이블을 CUSTOMER_ID 기준으로 GROUP BY 하고 SUM(AMOUNT) 가 200을 초과하는 값을 조회합니다. SELECT CUSTOMER_ID, SUM(AMOUNT) AS AMOUNT_SUM FROM PAYMENT GROUP..

실습 테이블 만들기 https://dog-developers.tistory.com/140 GROUP BY 란? GROUP BY 절은 SELECT 문에서 반환된 행을 그룹으로 나눈다. 각 그룹에 대한 합계,평균,카운트 등을 계산할 수 있다. 기분문법 GROUP BY 절은 N개의 컬럼을 GROUP BY 하는경우 ,(콤마) 로 구분하며 GROUP BY 절은 FROM 또는 WHERE절 바로 뒤에 작성해야 합니다. SELECT COLUMN_1, 집계함수(COLUMN_2) FROM TABLE_NAME GROUP BY COLUMN_1 실습 PAYMENT 테이블은 payment_id 가 기본키 이기때문에 유일한 값입니다. 하지만 customer_id(1명의 id) 는 여러개의 payment_id 를 가질수 있습니다. ..

실습 테이블 만들기 https://dog-developers.tistory.com/140 NATURAL 조인 이란? 두개의 테이블에서 같은 이름을 가진 컬럼 간의 INNER 조인 집합 결과를 출력한다. SQL문을 보다 짧게 작성할 수 있다. 참고: 실무에선 잘 사용하지 않습니다. 하지만 NATURAL JOIN과 INNER JOIN의 차이로 인해 INNER JOIN을 더 깊게 이해할 수 있습니다. 실습 - PRODUCTS 테이블과 CATEGORIES 테이블을 NATURAL 조인 한다. CATEGORY_ID 를 동일하게 가지고있는 컬럼을 기준으로 INNER 조인 한다. SELECT * FROM PRODUCTS A NATURAL JOIN CATEGORIES B; 장점 - 자동으로 매칭해 코드가 간결해지며 편함..
Functions (기능,함수) 우리는 어떠한 기능을 수행하는 코드를 개발할 때 여러번 반복되는 기능들을 구현합니다. 예를들어 방문자가 로그인, 로그아웃 및 여러곳에서 메시지를 표현 해야 합니다. 이러한 메시지를 표시하는 기능을 반복하지 않고 여러번 호출 할 수 있습니다. 이미 자바스크립트에는 메시지를 보여주는 내장함수가 포함되어 있습니다. alert(message),prompt(message,default), confirm(question) 그러나 이런 함수는 직접 기능을 구현할 수 있습니다. 사이트 가시면 자바스크립트를 직접 실습 하면서 배울수 있습니다. https://plnkr.co/edit/ Plunker plnkr.co 함수 선언 함수는 function 키워드 선언후 함수의 이름 매개괄호 순으로..

실습 테이블 만들기 https://dog-developers.tistory.com/140 CROSS 조인 이란? 두개의 테이블의 CATESIAN PRODUCT 연산의 결과를 출력한다. 데이터 복제에 많이 쓰이는 기법이다. 실습 SELECT * FROM CROSS_T1 CROSS JOIN CROSS_T2; CATESIAN PRODUCT 연산의 결과를 출력합니다. 링크 : CATESIAN PRODUCT LABEL 컬럼으로 정렬 SELECT * FROM CROSS_T1 CROSS JOIN CROSS_T2 ORDER BY LABEL; - 같은 표현방법 SELECT * FROM CROSS_T1, CROSS_T2 ORDER BY LABEL; 응용 - LABEL A,B의 SCORE 값을 더하고 B는 -1 을 곱하여 ..

실습 테이블 만들기 https://dog-developers.tistory.com/140 FULL OUTER 조인 이란? INNER,LEFT OUTER,RIGHT OUTER 조인 집합을 모두 출력하는 조인 방식이다. 즉 두 테이블간 출력가능한 모든 데이터를 포함한 집합을 출력한다. 실습 - A와 B의 테이블을 FRUIT 컬럼 기준으로 FULL OUTER 조인 합니다. SELECT A.ID ID_A, A.FRUIT FRUIT_A, B.ID ID_B, B.FRUIT FRUIT_B FROM BASKET_A A FULL OUTER JOIN BASKET_B B ON A.FRUIT = B.FRUIT; ID_A -> 1,2는 INNER JOIN , 3,4는 LEFT OUTER 조인 , ID_B -> 3,4는 RIGH..

실습 테이블 만들기 https://dog-developers.tistory.com/140 SELF 조인 이란? 같은 테이블 끼리 특정 컬럼을 기준으로 매칭 되는 컬럼을 출력하는 조인이다. 즉 같은 테이블의 데이터를 각각의 집합으로 분류한 후 조인합니다. 실습 - 업체의 직원 조직도의 데이터를 보여주는 테이블 입니다. SELECT * FROM EMPLOYEE; manager_id는 employee_id 의 하위에 포함된 직원이라고 판단 할 수 있습니다. Windy 는 manager_id 가 null이니 최상위 관리자라 할 수 있으며 Ava,Hassan 은 manager_id가 1입니다. 즉 employee_id 1번 보다 하위의 직책 입니다. 이런식으로 조직도 관계를 데이터로 파악이 가능합니다. tree ..

실습 테이블 만들기 https://dog-developers.tistory.com/140 OUTER 조인 이란? 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값 만을 출력한다. 실습 - A테이블과 B테이블을 조인하는데 A를 기준집합으로 조인한다. (OUTER 생략 가능) SELECT A.ID AS ID_A, A.FRUIT AS FRUIT_A, B.ID AS ID_B, B.FRUIT AS FRUIT_B FROM BASKET_A A LEFT JOIN BASKET_B B ON A.FRUIT = B.FRUIT 일단 A의 데이터는 모두 가져오며 B는 중복되는 값은 보여주고 중복되는 값이 없으면 NULL로 보여준다. - A의 테이블에만 존재하는 데이..

실습 테이블 만들기 https://dog-developers.tistory.com/140 INNER 조인 이란? 특정 컬럼을 기준으로 정확히 매칭된 집합을 출력한다. INNER 조인은 대표적인 조인의 종류이다. A와 B의 집합 실습 FRUIT 컬럼을 기준으로 A테이블과 B테이블의 데이터를 조회한다. SELECT A.ID ID_A, A.FRUIT FRUIT_A, B.ID ID_B, B.FRUIT FRUIT_B FROM BASKET_A A INNER JOIN BASKET_B B ON A.FRUIT = B.FRUIT; 서로 중복되는 집합의 데이터를 출력합니다. - CUSTOMER 테이블과 PAYMENT 테이블을 CUSTOMER_ID 기준으로 조인 조회를 합니다. SELECT A.CUSTOMER_ID, A.FI..
이년....