일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트와AWS로혼자구현하는웹서비스
- DDD
- 인프런백기선
- 도메인 주도 개발 시작하기
- 자료구조
- AWS
- 기술면접
- 알고리즘
- vue.js
- SQL쿡북
- 혼공SQL
- MariaDB
- 자바스터디
- 알고리즘분석
- java
- aop
- react
- 인프런김영한
- 인덱스
- 이펙티브 자바
- CleanCode
- 클린코드
- AWS RDS
- mysql
- 이팩티브 자바
- 이펙티브자바
- jpa
- 네트워크
- 자바
- 자바예외
- Today
- Total
목록SQL쿡북 (13)
기록이 힘이다.
13.1 상위-하위 관계 표현하기 select a.ename || ' works for ' || b.ename as emps_and_mgrs from emp a, emp b where a.mgr = b.empno select concat(a.ename, ' works for ',b.ename) as emps_and_mgrs from emp a, emp b where a.mgr = b.empno select a.ename + ' works for ' + b.ename as emps_and_mgrs from emp a, emp b where a.mgr = b.empno -------------------------------------------------------------------- ..

12.1 결과셋을 하나의 행으로 피벗하기 select sum(case when deptno=10 then 1 else 0 end) as deptno_10, sum(case when deptno=20 then 1 else 0 end) as deptno_20, sum(case when deptno=30 then 1 else 0 end) as deptno_30 from emp select deptno, case when deptno=10 then 1 else 0 end as deptno_10, case when deptno=20 then 1 else 0 end as deptno_20, case when deptno=30 then 1 else 0 end as deptno_30 from emp order by 1..

11.1 결과셋을 페이지로 매기기 11.2 테이블에서 n개 행 건너뛰기 11.3 외부 조인을 사용할 때 OR 로직 통합하기 11.4 역수 행 확인하기 select * from V -------------------------------------------------------------------- select distinct v1.* from V v1, V v2 where v1.test1 = v2.test2 and v1.test2 = v2.test1 and v1.test1

10.1 연속 값의 범위 찾기 select * from V -------------------------------------------------------------------- select proj_id, proj_start, proj_end from ( select proj_id, proj_start, proj_end, lead(proj_start)over(order by proj_id) next_proj_start from V ) alias where next_proj_start = proj_end -------------------------------------------------------------------- select * from ( select proj_id, proj_start..

기본적인 날짜 산술에 중점을 두고 설명합니다. 다음 장에서는 더 많은 고급 날짜 레시피를 찾아볼 수 있습니다. 8.1 일, 월, 연도 가감하기 8.2 두 날짜 사이의 일수 알아내기 MySQL의 DATEDIFF에는 두 개의 매개변수(차이를 찾을 두 날짜)만 필요하며, 음숫값을 피하고자 두 날짜 중 더 작은 날짜를 먼저 전달해야 합니다.(SQL Server와 반대). 8.3 두 날짜 사이의 영업일수 알아내기 휴일도 제외하려면 HOLIDAYS 테이블을 만들어서 처리합니다. 해법에서 간단한 NOT IN 술어를 추가하여 HOLIDAYS에 나열된 날짜를 제외합니다. select max(case when ename = 'BLAKE' then hiredate end) as blake_hd, max(case when e..

7.1 평균 계산하기 7.2 열에서 최댓값, 최솟값 찾기 SELECT 절에서 집계 함수만 나열되어 있더라도 테이블의 다른 열로 그룹화할 수 있습니다. 7.3 열의 값 집계하기 null인 group도 가질 수 있다.(테이블 3개 생성안되 책과 값이 다름) 7.4 테이블의 행 수 계산하기 COUNT 함수는 열 이름을 인수로 전달하면 NULL을 무시하지만, * 문자나 상수를 전달하면 NULL을 포함한다는 점에 유의해야 합니다.(테이블 3개 생성안되 책과 값이 다름) 7.5 열의 값 세어보기 7.6 누계 생성하기 윈도우 함수 SUM OVER를 사용하면 간단하게 누계를 생성할 수 있습니다. ORDER BY절에는 SAL 열뿐만 아니라 누계에서 중복값을 방지하기 위해 EMPNO 열(기본 키)도 포함합니다. 7.7 누..

특정 스키마에 대한 정보를 찾을 수 있는 레시피를 제공합니다. 예를 들어 어떤 테이블을 생성했는지 또는 어떤 외래 키가 인덱싱되지 않았는지를 알고자 할 수 있습니다. 이 책의 모든 RDBMS는 그러한 데이터를 얻기 위한 테이블과 뷰를 제공합니다. 5장의 레시피를 활용하면 해당 테이블 및 뷰에서 필요한 정보를 얻을 수 있습니다. 5.1 스키마의 테이블 목록 보기 Oracle의 시스템 뷰와 DB2의 시스템 테이블은 벤더에 특화되어 있습니다. 반면에 PostgreSQL, MySQL 및 SQL Server는 ISO SQL 표준에 의해 정의된 뷰 집합인 정보 스키마(information schema)를 지원합니다. 따라서 세 데이터베이스 모두에 대해 같은 쿼리를 수행할 수 있습니다. 5.2 테이블의 열 나열하기 ..

4.1 새로운 레코드 삽입하기 4.2 기본값 삽입하기 create table D (id integer default 0) -------------------------------------------------------------------- insert into D values (default) -------------------------------------------------------------------- insert into D (id) values (default) 모든 데이터베이스는 열에 대한 기본값을 명시적으로 지정하는 방법으로 DEFAULT 키워드 사용을 지원합니다. 4.3 null로 기본값 오버라이딩하기 4.4 한 테이블에서 다른 테이블로 행 복사하기 4.5 테이블 정의 복사하기..