일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 메소드
- 제너릭
- 인텔리제이
- wrapper
- boxing
- 제네릭
- dependency
- 스프링
- 루프
- 빌드
- 언박싱
- start.spring.io
- unboxing
- Java
- 컬렉션
- Scanner
- 싱글턴
- https://start.spring.io
- Short
- 싱글톤
- Jenkins
- suvlet
- 자동형변환
- 박싱
- bootstrap
- 콜렉션
- maven
- 무한
- 클래스
- 내장객체
- Today
- Total
목록K-DigitalTraining 강의/2. Oracle + PLSQL (38)
Developer Gonie
자식이 부모를 참조하는 방식에 대한 추상화된 설명 1) 자식은 부모에 존재하는 것만 가질 수 있다. 2) 또한, 부모의 값은 중복이 없어야 한다. (자식의 입장에서 정확히 부모의 무슨 값을 참조하는 것인지 구분할수 없기 때문에) 1. 부모와 자식의 테이블을 CREATE 할 때 주의할 점 및 관계 설정방법 아래의 예시는 employee 테이블이 dept 테이블을 부모로 삼도록 하는 예제이다. 이 과정은 employee 테이블의 deptno 필드가 dept 테이블의 deptno 필드를 참조하여 이뤄지는데, 참조하도록 하기 위한 설정은 자식 테이블의 필드 선언에서 다음과 같이 해줌으로써 할 수 있다. "reference 부모테이블명(부모테이블의 primary key 필드명)" * 참조하려는 부모키가 prima..
Inline View from 절에 오는 서브쿼리(select-from)의 결과로 나온 뷰를 인라인뷰라고 한다. 뷰는 저장장치 내에 물리적으로 존재하진 않지만 사용자에게 있는 것처럼 보여지는 가상의 테이블이다. 인라인뷰는 복잡한 SQL 쿼리를 작성할 때 사용되며, 서브쿼리에서 반환된 데이터는 데이터베이스에 저장되지 않기 때문에 임시 테이블이라고 부르기도 한다. Top N 쿼리 란? 상위 n개의 데이터를 추출하는 쿼리를 의미하며, 이를 구현하고자 한다면 Inline View, 그리고 다음에 오는 특수컬럼 중에서도 rownum을 이용해야 한다. 특수컬럼(pseudo 컬럼) : 자동으로 추가되어 존재하는 컬럼 1. rowid 행(모든 레코드)을 구분하기 위한 고유 문자열(unique)로 DB 전체에서 유일 무..
셀프조인 : 테이블 하나를 두 개 인 것처럼 하여 조인을 수행하는 것 select a.ename 사원명, b.ename 매니저명 from emp a, emp b where a.mgr = b.empno;
* 합집합 outer 조인 에는 left, right, full 3가지가 존재한다. 원본 테이블 1. left outer 조인 : 일치하는게 없으면 없는대로 왼쪽 필드 값은 살림 select * from producer pro left outer join consumer con on pro.p_code = con.c_code; 2. right outer 조인 : 일치하는게 없으면 없는대로 오른쪽 필드 값은 살림 select * from producer pro right outer join consumer con on pro.p_code = con.c_code; 3. full outer 조인 : select 오른편에 나열된 어느 한 쪽의 필드 값도 버리지 않음 select * from producer pr..
예제 연습전 테이블 생성 및 데이터 삽입 -- 예제 연습전 테이블 생성 및 데이터 삽입 drop table producer; create table producer( p_code varchar2(10) primary key, p_name varchar2(10), p_price number ); drop table consumer; create table consumer( c_code varchar2(10) primary key, c_name varchar2(10), c_price number, c_addr varchar2(10) ); insert into producer values('A01', '운동화', 1000); insert into producer values('A02', '원피스', 2000)..
1. 급여가 500이상인 레코드를 대상으로 부서별 급여 평균 조회 select depart, avg(salary) from members where salary >= 500 group by depart; DEPART AVG(SALARY) ---------- ----------- 영업부 666.666667 개발부 550 홍보부 1000000 2. 급여가 500이상인 레코드를 대상으로 부서별 급여 평균이 2100이상인 레코드 조회 select depart, avg(salary) from members where salary >= 500 group by depart having avg(salary) >= 2100; DEPART AVG(SALARY) ---------- ----------- 홍보부 1000000..
* where, having 모두 조건을 걸어 필터링 하기위해 사용되는데, 그룹함수는 having 조건에서만 사용이 가능하기 때문에 그룹함수의 사용이 필요한 경우 having 절을 사용하면 된다. 그리고 having 은 where 절의 기능을 포함하고 있기 때문에 where 에 있는 조건들을 가져와서 having에서 그대로 사용해도 똑같이 정상적인 결과가 나오는 것을 알 수 있기도 하다. having을 사용해야 하는 경우(간단예시) select publisher, avg(price) from book where avg(price) > 2000 group by publisher 1행에 오류: ORA-00934: 그룹 함수는 허가되지 않습니다 -- 출판사별 price 평균을 구한 뒤에 나온 결과에서 그 pr..
* select 뒤 필드 목록에 그룹함수만 오는게 아니라 일반 컬럼까지 같이 나온다면, 이 일반 컬럼은 모두 group 을 묶어줘야 한다. 그룹함수란? https://ldgeao99-developer.tistory.com/206?category=1079113 * where는 from 바로 다음에, group by는 where 다음에, order by는 group by 뒤에 위치해야 한다. -- 그룹함수와 조회되는 필드가 1개 인 경우 select gender, count(*) 인원수 from members group by gender; -- gender가 같은 행을 하나로 합쳐 표현하라는 의미 GENDER 인원수 ------ ---------- 여 4 남 6 -- 그룹함수와 조회되는 필드가 2개 인 경우..
눈에 보이지 않지만 자동으로 생성되는 테이블1 : tab -- 존재하는 모든 테이블의 이름을 가지는 테이블 select * from tab; 눈에 보이지 않지만 자동으로 생성되는 테이블2 : dual -- 함수 결과값이나 계산을 임시로 실행하고 싶을 때 사용하는 테이블, dummy 이름의 컬럼을 하나 가지고 있는데 큰 의미는 없음 select * from dual; select 1 +1 from dual; 1+1 ---------- 2 -- 나머지를 구하는 함수의 결과 출력 select mod(13,4) from dual; MOD(13,4) ---------- 1 select user from dual; -- show user 한 것을 테이블 형태로 보여지게 하는 것 USER ---------------..
그룹함수 : 숫자들의 집합을 이용해 연산이 수행되는 함수 * 그룹함수는 where 조건에 사용할 수 없음. 그룹함수는 having 조건에 쓸 수 있음. * 모든 그룹 함수는 null을 포함하지 않는다. 단, count(필드) 말고 count(*) 은 null 을 포함하여 연산한다. 1. sum(필드) : 합계 SQL> select sum(salary) "급여 총합계" from members; 급여 총합계 ----------- 1004000 2. avg(필드) : 평균 SQL> select avg(salary) "급여 평균" from members; 급여 평균 ---------- 100400 3. min(필드) : 최소값 SQL> select min(salary) "급여 최소값" from members; ..
* 콘솔과 이걸 둘 다 사용할 수 있지만, SQL Developer의 장점은 쿼리문을 저장해 둘 수 있다는 점이 있다. 1. 시작 시작 - SQL Developer 2. DB에 존재하는 테이블 살펴보기 - 왼쪽에 테이블 카테고리를 열어보면 DB에 존재하는 테이블들의 리스트가 보여지며, 이중 하나의 테이블을 더블클릭하면 오른쪽에 테이블의 필드 및 필드의 타입이 보여진다. 3. 접속이름이 적혀있는 창에서 쿼리문 작성 및 실행해보기 실행 : 쿼리문 입력 후 "Ctrl + Enter" -> 질의 결과가 아래 보여진다. * 콘솔창에서 insert 명령을 사용해 행을추가했더라도 commit 하지 않은 상태라면 SQL Developer 에서 select 쿼리문을 사용하더라도 추가된 행이 보여지지 않는다. 콘솔창에서 ..
* 이전에 as 는 select 에서 필드의 별칭을 지정할 때 사용했었지만, 여기서는 별칭이 아닌 진짜 테이블 생성을 위해 사용됨 기존의 테이블을 이용한 새로운 테이블 생성 --members 테이블을 가져와서, members2 테이블이 생성됨(테이블이 그대로 카피된것과 결과가 같음) create table members2 as select * from members; --members 테이블을 가져와서 where 절을 충족하는 행들만 모아, members3 테이블 생성 create table members3 as select * from members where id > 5; --members 테이블을 가져와서 where 절을 충족하는 행들만 모아, members4 테이블 생성 create table m..