일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- lv0
- 백준
- 문자열
- 프로그래머스 풀이
- 스프링부트 도커
- index of
- 이진수 변환
- 오름차순 정렬
- 버퍼
- 알고리즘
- Stack
- 스프링부트 도커 배포
- 클라이언트
- SWEA
- 큐
- 백준 N과 M 자바
- Programmers
- 스프링부트 도커로 배포
- java
- 자바
- Lv1
- 프로그래머스 문자열 정렬
- 프로그래머스 자바
- 스택
- Queue
- StringTokenizer
- 프로그래머스
- 삼각형의 완성조건
- lv2
- COS Pro
- Today
- Total
목록DB (40)
mun dev
오라클에서 성적, 급여등 순위를 구하기 위해 순위 함수를 사용하면 된다. 순위 함수의 순위는 OVER 함수 내부의 ORDER BY 컬럼 값으로 결정된다. RANK() : 중복 순위 개수만큼 다음 순위 값을 증가시킴 DENSE_RANK(): 중복 순위가 존재해도 순차적으로 다음 순위 값을 표시함 SELECT ENAME, SAL, RANK() OVER(ORDER BY SAL DESC) RANK, DENSE_RANK() OVER(ORDER BY SAL DESC) DENSE_RANK FROM EMP ORDER BY SAL DESC; RANK는 2순위가 2명이므로 3순위를 건너뛰고 2순위 다음은 4순위로 표시 DENSE_RANK 함수는 2순위가 2명 이여도 다음 순위는 3순위로 표시 순위가 겹치지 않는다면 두 개..
with절이란 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리, 임시테이블을 만든다는 관점에서 보면 VIEW와 쓰임새가 비슷한데 차이점이 있다면 VIEW는 한 번 만들어 놓으면 DROP할 때까지 없어지지 않고, with절의 경우 한 번 실행할 쿼리문내에 정의되어 있을 경우, 그 쿼리문 안에서만 실행된다는 차이점이 있다. 사용이유 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용할 수 있게 함으로서 쿼리 성능을 높일 수 있는데, with절을 이용해 미리 이름을 부여해서 쿼리 블록을 만들 수 있음. with절 사용안한 예 select job, sum(sal) as 토탈 from emp group by job having sum(sal) > (select avg(sum(sal..
CHECK 특정 컬럼에 지정된 데이터만 입력될 수 있도록 제한 입력할 수 있는 값의 범위를 설정해 주는 제약조건 입력 값이 조건에 맞지 않으면 오류 발생, 입력 값의 범위를 지정할 수 있음 create table emp6 (empno number(10), ename varchar(20), sal number(10) constraint emp6_sal_ck check (sal between 0 and 6000)); 조건 위배시 오류 발생 update emp6 set sal = 9000 where ename = 'CLARK'; -- 9000으로 데이터를 넣으려고 해도 넣어지지 않음 insert into emp6 values(7566, 'ADMS', 9000); insert into emp6 values(75..
UNIQUE 중복된 데이터가 입력되지 않게 하는 방법 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의 not null과 함께 사용 가능 기본키로 설정하지 않지만 그 값의 고유성을 지켜주고 싶을 때 사용 unique로 선언된 컬럼은 foregin key 참조가 가능 [컬럼명][타입] UNIQUE [컬럼명][타입] CONSTRAINT [제약조건명] UNIQUE ([컬럼명]) CONSTRAINT[제약조건 명] UNIQUE ([컬럼명]) create table dept3 (deptno number(10), dname varchar(14) constraint dept3_deptno_dname_un unique, loc varchar(10)); 제약을 생성할 때 걸지 못했다면 alter add를 ..
기본키(Primary Key) 데이터의 품질을 높이기 위해 특정 컬럼에 중복된 데이터와 null값을 입력하지 못하게 하는 방법 테이블을 생성할 때 같이 정의 테이블당 하나만 정의 가능 -- 컬럼 생성과 primary key제약 추가 -- null은 입력할 수 없음 create table dept2 (deptno number(10) constraint dept2_deptno_pk primary key, dname varchar(14), loc varchar(14)); 생성된 제약을 확인 select a.constraint_name, a.constraint_type, b.column_name from user_constraints a, user_cons_columns b where a.table_name =..
뷰(View) 사원들의 사원번호, 이름, 월급, 직업, 부서번호를 출력 공개하면 안되는 컬럼이 있다면 나머지 컬럼들로만 view를 생성 create view emp_view as select empno, ename, sal, job, deptno from emp where job = 'SALESMAN'; 복합 뷰(Complex View) 뷰 생성시 함수나 그룹함수를 작성할 대는 반드시 컬럼 별칭 사용 함수나 그룹함수가 포함되어 있다면 복합뷰 create view emp_view2 as select deptno, round(avg(sal)) 평균월급 from emp group by deptno; 30번 부서번호의 평균 월급을 1567에서 3000으로 변경 변경이 되지 않음, 변경이 된다고 해도 실제 테이블..
시퀀스(SEQUENCE) 중복되지 않는 숫자 데이터를 생성 시퀀스는 일련 번호 생성기, 번호를 순서대로 생성하는 데이터베이스 오브젝트 DB에서 테이블의 기본키가 숫자형 데이터일 경우, 이 테이블에 기본키인 컬럼에 시퀀스를 설정해 놓을 경우 테이블에 데이터를 삽입할 때마다, 자동으로 각 로우를 식별할 수 있는 시퀀스 값이 할당 되어 저장 시퀀스(SEQUENCE) 생성 숫자 1번부터 100번까지 출력하는 시퀀스 create sequence seq01 start with 1 -- 첫 시작 숫자를 1로 지정 increment by 1 -- 숫자의 증가치 1 maxvalue 100 -- 최대 숫자 100 nocycle; 시퀀스(SEQUENCE) 사용 시퀀스의 다음 번호를 출력 또는 확인할 때는 시퀀스이름.next..
1. 서브쿼리 사용하여 데이터 입력 emp테이블의 구조만 가져와서 emp2 테이블을 생성 create table emp2 as select * from emp where 1 = 2; values절에 values대신 입력하고자 하는 서브 쿼리문을 작성 부서번호가 10번인 사원들의 데이터를 emp2 테이블에 입력하는 것 insert into emp2(empno, ename, sal, deptno) select empno, ename, sal, deptno from emp where deptno = 10; 2. 서브쿼리를 사용하여 데이터 수정하기 직업이 SALESMAN인 사원들의 월급을 ALLEN의 월급으로 변경 SET절에 서브쿼리를 사용하여 직업이 SALESMAN인 사원들의 월급을 ALLEN월급으로 갱신 u..