일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- XML
- 마이바티스
- Di
- AOP
- java
- Dependency Injection
- POJO
- STS
- JDBC TEMPLATE
- 프로퍼티
- @AspectJ
- myBatis
- JdbcTemplate
- spring framework
- 컨테이너
- 리눅스
- SpringJDBC
- @JUnit
- Ubunt
- @Spring-Test
- spring aop
- Spring Boot
- Framework
- Spring JDBC
- pointcut
- Linux
- spring
- java spring
- unix
- @test
- Today
- Total
목록Content (292)
개키우는개발자 : )
실습테이블 만들기 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..
이년....
조인이란? 2개 이상의 테이블에 있는 정보 중 사용자가 필요한 집합에 맞게 가상의 테이블 처럼 만들어서 결과를 보여주는 것이다. 종류 설명 INNER 조인 특정 컬럼을 기준으로 정확히 매칭된 집합을 출력한다. OUTER 조인 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값 만을 출력한다. SELF 조인 동일한 테이블 끼리 의 특정 컬럼을 기준으로 매칭되는 집합을 출력한다. FULL OUTER 조인 INNER, LEFT OUTER, RIGHT OUTER 조인 집합을 모두 출력한다. CROSS 조인 Cartesian Product라고도 하며 조인되는 두 테이블에서 곱집합을 반환한다. NATURAL 조인 특정 테이블의 같은 이름을 가진 컬럼 간..
문제 고객에게 단체 이메일을 전송 하고자 한다. CUSTOMER 테이블에서 고객의 EMAIL 주소를 추출하고, 이메일 형식에 맞지 않는 이메일 주소는 제외시켜라. ( '@'가 존재해야 하고 '@'로 시작하지 말아야 하고 '@'로 끝나지 말아야 한다.) 1. @로 시작하지 않기 select email from customer where email not like '@%' 2. @로 끝나지 않기 select email from customer where email not like '@%' and email not like '%@' 3. @를 포함하기 select email from customer where email not like '@%' and email not like '%@' and email li..
문제 - PAYMENT 테이블에서 단일 거래의 AMOUNT의 액수가 가장 많은 고객들의 CUSTOMER_ID를 추출해라. 단 CUSTOMER_ID의 값은 유일해야 한다. 1. 가장큰 금액을 먼저 찾는다. 테이블의 데이터를 DESC 내림차순으로 정렬한 후 1개의 데이터만 출력하면 나중에 11.99 보다 큰 금액의 데이터가 들어오더라도 가장 큰금액을 항상 반환한다. select amount from payment order by amount desc limit 1; 2. 서브쿼리를 이용하여 WHERE 조건 필터링 하기 payment테이블의 amount 값이 가장많은 ( 11.99 (최대금액을 계속 반환하는) )값 을 조회한다. select* from payment where amount = ( select ..
NULL연산자 문법 기본문법 특정 컬럼의 값이 IS NULL인지 NOT NULL인지 판단하는 연산자 column_name 값이 null인 데이터 조회 select * from table_name where column_name is null; column_name 값이 null이 아닌 데이터 조회 select * from table_name where column_name is not null; 실습준비 CONTACTS 테이블 만들기 create table CONTACTS( ID INT generated by default as identity, FIRST_NAME VARCHAR(50) not null, LAST_NAME VARCHAR(50) not null, EMAIL VARCHAR(255) not n..
LIKE 문법 집합에서 어떠한 컬럼의 값이 특정 값과 유사한 패턴을 갖는 집합을 출력하는 연산자 기본문법 특정 패턴과 유사한 값을 조회 select * fromt table_name where column_name like 특정패턴 특정 패턴과 유사하지 않은 집합 select * fromt table_name where column_name not like 특정패턴 '%' 는 문자 혹은 문자열이 매칭 되었다고 판단한다. '_'는 한개의 문자이든지 매칭 되었다고 판단한다. 실습 - CUSTOMER 테이블의 FIRST_NAME이 Jen으로 시작하는 데이터를 조회 select first_name, last_name from customer where first_name like 'Jen%' - LIKE 패턴을..
BETWEEN 연산자 문법 특정 범위안에 들어가는 집합을 출력하는 연산자. 기본문법 COLUMN_NAME 값이 VALUE_A 와 VALUE_B 사이에 있는 값을 조회 SELECT * FROM TABLE_NAME WHERE COLUMN_NAME BETWEEN VALUE_A AND VALUE_B; -- BETWEEN연산자를 사용하지 않으면 아래와 같다. COLUMN_NAME >= VALUE_A AND COLUMN_NAME VALUE_B 실습 - AMOUNT가 8부터 9사이의 값을 조회 select customer_id, payment_id, amount from payment where amount between 8 and 9; 다른 방법 select customer_id, payment_id, amount..
IN연산자 문법 특정 집합(컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 연산자입니다. 기본 문법 column_name이 가지고 있는 집합에서 value1,2 등의 값이 존재하는지 확인합니다. select * from table_name where column_name in(value1,value2,...) column_name이 가지고 있는 집합에서 table_name2 테이블의 column_name2의 집합이 존재하는지 확인합니다. select * from table_name where column_name in (select column_name2 from table_name2); 실습 - IN연산자를 사용하여 rental 테이블의 customer_id 가 1 또는 2 인 값을..
FETCH 문법 LIMIT와 마찬가지로 조회한 결과의 개수를 제한하는 역할을 하며. 부분 범위 처리시 사용합니다. 기본문법 출력하는 행의 수를 지정하며 N을 입력하지 않고 ROW ONLY만 입력하면 1개의 데이터만 조회 합니다. SELECT * FROM TABLE_NAME FETCH FIRST [N] ROW ONLY 출력하는 행의 범위를 지정합니다. SELECT * FROM TABLE_NAME OFFSET N ROWS FETCH FIRST [N] ROW ONLY 실습 - film 테이블의 1건의 데이터를 title컬럼 기준으로 조회합니다. select film_id, title from film order by title fetch first row only; - film 테이블의 20건의 데이터를 ti..
LIMIT 문법 LIMIT는 조회한 결과 값의 행의 수를 제한, 한정하는 역할을 합니다. 결과의 범위를 처리할 때 사용합니다. 기본 문법 출력하는 행의 수를 지정한다 SELECT * FROM TABLE_NAME LIMIT N 출력하는 행의 범위를 지정한다. SELECT * FROM TABLE_NAME LIMIT N OFFSET M 실습 - film 테이블 데이터중 5개의 결과 값만 조회하며 film_id로 정렬을 한다. select film_id, title, release_year from film order by film_id limit 5; - film 테이블 데이터중 4개의 결과 값을 film_id로 정렬하여 조회하며 첫번째 데이터는 4번째 행부터 시작을 한다. select film_id, tit..
WHERE 절 문법 집합을 가져올 때 어떤 집합을 가져올 것인지에 대한 조건을 설정할 때 사용하는 WHERE절 입니다. 기본 문법 SELECT COLUMN_1, COLUMN_2 FROM TABLE_NAME WHERE 조건 연산자 연산자 설명 = 같음 > ~보다 큰 = ~보다 크거나 같은
DISTINCT 문법 SELECT 시 DISTINCT를 사용하면 중복 값을 제외한 결과 값이 출력됩니다. 즉 같은 결과의 행이라면 중복을 제거할 수 있습니다. COLUMN_1의 값이 중복 값 존재 시 중복 값을 제거 SELECT DISTINCT COLUMN_1 FROM TABLE_NAME; COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거 SELECT DISTINCT COLUMN_1 , COLUMN_2 FROM TABLE_NAME; COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거 , 결과를 명확하게 하기 위해 ORDER BY절 사용 SELECT DISTINCT COLUMN_1 ,COLUMN_2 FROM TABLE_NAME ORDER BY COLUMN..
ORDER BY 문법 기본 문법 ORDER BY 는 SELECT 문에서 가져온 데이터를 정렬하는데 사용합니다. 기본본적으로 데이터를 가져오면 오름차순(ASC)정렬 이며 밑의 문법에선 COLUMN_1 오름차순(ASC) 정렬 COLUMN_2 내림차순(DESC) 정렬 SELECT COLUMN_1, COLUMN_2, ... FROM TABLE_NAME ORDER BY COLUMN_1 ASC, COLUMN_2 DESC; ASC 정렬 (ASC 생략가능) SELECT FIRST_NAME, LAST_NAME FROM CUSTOMER ORDER BY FIRST_NAME ASC; ------------------------------ SELECT FIRST_NAME, LAST_NAME FROM CUSTOMER ORDER ..
SELECT 문법 - 특정 테이블의 모든 데이터 조회 추출하고 싶은 컬럼의 명, 모든 컬럼을 보고싶으면 * 를 입력하고 FROM절 뒤에 TABLE명을 입력하면 해당 TABLE의 데이트를 추출할 수 있습니다. 코드를 작성후 Ctrl + Enter 를 누르면 조회가 됩니다. SELECT COLUMN_1 ,COLUMN_2 ,... FROM TABLE_NAME; CUSTOMER TABLE 조회하기 SELECT * FROM CUSTOMER; 모든 데이터를 불러옵니다. DBeaver 기능중에 정보를 볼 수 있는 방법이 있는데 해당 코드를 마우스드래그로 블럭한 후 Ctrl+Shift+E 를 누르면 아래와 같이 정보가 조회 됩니다. CUSTOMER TABLE을 펼치면 테이블의 속성들이 보여지며 조회된 개수,시간 등등 ..
1. 데이터베이스 Tool 설치하기 https://dbeaver.io/download/ Download | DBeaver Community Download Tested and verified for MS Windows 7/8/10, Linux and Mac OS X. DBeaver requires Java 1.8 or higher. Windows and MacOS installers include OpenJDK 11 bundle. If you are on Mac OS X and you do NOT use PKG installer then you will need to setup Java. N dbeaver.io 1. 사이트를 방문하여 OS에 맞게 다운로드 받습니다. 2. 언어를 선택합니다. 3. 일반적인..
1. 파일 다운로드 2. pgAdmin4 실행 3. 데이터베이스 생성하기 4. dvdrental 데이터베이스 이름을 입력합니다. 5. 생성된 데이터베이스 우클릭 -> Restore 6. ... 버튼을 눌러 파일을 선택합니다. 7. Format -> All Files -> C:TEMP 경로안에 dvdtental.tar 선택 8. Restore 클릭 9. 테이블을 열어보면 각테이블들이 나열되어 보여집니다. 샘플 DB를 활용하여 실습을 하기때문에 저장하시면 좋을것 같아요~