일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 언박싱
- start.spring.io
- 제네릭
- 무한
- Scanner
- https://start.spring.io
- 클래스
- Short
- 박싱
- 스프링
- boxing
- Jenkins
- 싱글톤
- bootstrap
- 메소드
- maven
- 루프
- unboxing
- dependency
- 빌드
- 인텔리제이
- 제너릭
- Java
- 싱글턴
- 컬렉션
- 콜렉션
- wrapper
- 내장객체
- suvlet
- 자동형변환
- Today
- Total
목록K-DigitalTraining 강의 (333)
Developer Gonie
1-1. INSERT 쿼리문 예시 -- 변수 선언할게 없으면 declare 를 지워도 정상 작동함 begin insert into customer values(5, '웬디', '서울'); end; / PL/SQL 처리가 정상적으로 완료되었습니다. declare vno number; vname varchar2(10) := '슬기'; vaddr varchar2(10) := '부산'; begin vno := 6; insert into customer values(vno, vname, vaddr); end; / PL/SQL 처리가 정상적으로 완료되었습니다. 1-2. INSERT 쿼리문 예시, 사용자의 입력을 받아서 처리하는 것 declare vcode varchar2(10) := '&code'; -- 오른쪽의 ..
* 주의, select ~ into구문은 쿼리문의 결과가 1줄만 나오는 경우에만 사용이 가능하다. * PL/SQL 에서는 한 번에 모두를 읽어오는 기능은 없고, 한 줄 씩만 읽어오는게 가능하다. * 조회된 결과를 받아올 변수는 컬럼의 타입과 일치해야 한다. 기본예제 --바로 아래의 쿼리문의 결과에서 값을 가져오는 방법이다. select name, position, salary from company where sabun=3; NAME POSITION SALARY ------------------------ -------------------- ---------- 찬열 과장 3000 ------------------------------------------------------- declare vname..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmr2h8/btrEWouAxJm/Bl4EbIYYAzk7xBEz4n2tc1/img.png)
PL(Procedural Language, 절차적 언어)/SQL이란? 오라클 DBMS에서 SQL 언어를 확장하여 사용하기 위해 만들어진 프로그래밍 언어이다. SQL 명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는 데 쓰인다. 각 관계형 데이터베이스마다 확장 언어들이 있는데, 이러한 확장 언어의 대표적인 예로 마이크로소프트의 마이크로소프트 SQL 서버와 SybaseASE에는 트랜잭트 SQL(Transact SQ; TSQL)이 있고 PostgreSQL에는 PL/pgSQL 마지막으로 IBM DB2는 ISO SQL의 SQL/PSM 표준을 따르는 SQL Procedural를 포함한다. PL/SQL 코드를 실행하는 위치 SQL PLUS 콘솔창, SQL DEVELOPER 둘 다 그냥 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/be6hmL/btrETouKjYb/1A3qqFeCkxwvNgfPSFmcNk/img.png)
자식이 부모를 참조하는 방식에 대한 추상화된 설명 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 전체에서 유일 무..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GEd4A/btrEOuhATZA/rkQgt2dw4y88TOwPUyuZh1/img.png)
셀프조인 : 테이블 하나를 두 개 인 것처럼 하여 조인을 수행하는 것 select a.ename 사원명, b.ename 매니저명 from emp a, emp b where a.mgr = b.empno;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1CHeb/btrEM6VUrx3/z4F4p8dEiznA0NUPdxRZSK/img.png)
* 합집합 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dROoOS/btrEPOM3bH2/1tJYS7IiiO7yLQ6AUTBqMk/img.png)
예제 연습전 테이블 생성 및 데이터 삽입 -- 예제 연습전 테이블 생성 및 데이터 삽입 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 ---------------..