일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring aop
- SpringJDBC
- myBatis
- 리눅스
- spring
- @JUnit
- JDBC TEMPLATE
- Ubunt
- pointcut
- AOP
- 컨테이너
- XML
- Linux
- java
- @Spring-Test
- POJO
- java spring
- 프로퍼티
- @AspectJ
- 마이바티스
- Spring JDBC
- JdbcTemplate
- Di
- @test
- Framework
- spring framework
- STS
- Spring Boot
- Dependency Injection
- unix
- Today
- Total
목록PostgreSQL/데이터 조회와 필터링 (12)
개키우는개발자 : )
문제 고객에게 단체 이메일을 전송 하고자 한다. 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을 펼치면 테이블의 속성들이 보여지며 조회된 개수,시간 등등 ..