일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- darkest dark
- 데이터길이
- n x 2 타일링 2
- DP
- JOIN
- 소숫점처리
- ANSI JOIN
- 변수
- 동적계획법
- Java
- 데이터베이스
- 반복문
- 문자열
- Algorithm
- SQL
- 백준
- 2156
- 자바
- Database
- Eclipse
- 그대로 출력하기
- 오라클
- Dynamic Programming
- algoritm
- 입출력
- db
- oracle
- 10951
- 알고리즘
- select
- Today
- Total
목록오라클 (14)
Cracking Code
데이터베이스의 무결성을 유지하기 위해서 일종의 제약을 둡니다. 데이터베이스 제약 조건에 대해 알아봅시다. CREATE TABLE table( column datatype [DEFAULT expr] -- 컬럼 LEVEL [CONSTRAINT column_constraint], ..., [table CONSTRAINT column_constraint], -- 테이블 LEVEL ... ); 제약 조건은 테이블 LEVEL, 컬럼 LEVEL에서 선언할 수 있습니다. 테이블 LEVEL은 모든 컬럼의 선언이 끝난 후에 제약 조건을 명시하는 것이며 컬럼 LEVEL은 컬럼의 선언과 동시에 제약 조건도 명시하는 것입니다. 🚨컬럼 LEVEL 에선 제약 조건을 하나씩만 선언할 수 있습니다.🚨 제약 조건의 종류 제약 조건은 C..
테이블에 저장된 행들을 삭제하는 DELETE 명령문에 대해서 알아보겠습니다. DELETE [FROM] table [WHERE condition]; 주의) 조건절을 사용하지 않으면 테이블 안의 모든 데이터를 삭제합니다. 부서 번호가 91인 부서를 삭제해봅시다. DELETE FROM DEPT WHERE DEPTNO = 91; 또한 조건절에 서브 쿼리를 사용할 수도 있습니다. DELETE [FROM] table WHERE 조건절 ( SELECT column1[, column2, ...] FROM table WHERE 조건절 ); 부서이름이 경리과인 부서 번호의 사원들을 사원 테이블에서 삭제해봅시다. DELETE FROM EMP WHERE DEPTNO = ( SELECT DEPTNO FROM DEPT WHERE..
테이블에 저장된 행들을 변경할 때 사용하는 명령어 UPDATE를 알아봅시다. UPDATE table SET column = value [, column = value, ...] [WHERE condition]; 한 번에 여러 개의 행들을 변경할 수 있음 부서 테이블에서 부서 번호가 90인 행의 부서 이름을 경리과, 지역을 부산으로 변경해봅시다. UPDATE DEPT SET DNAME = '경리과', LOC = '부산' WHERE DEPTNO = 90; 부서 번호가 90인 부서의 이름과 지역이 변경된 것을 확인할 수 있습니다. 서브 쿼리를 이용하여 복수의 컬럼도 변경할 수 있습니다. UPDATE column SET column ? ( SELECT column FROM table WHERE 조건절 ), ....
검색하고자 하는 컬럼이 두 개 이상 테이블에 존재할 때 사용할 수 있는 기술이 있습니다. JOIN에 대해서 알아봅시다. 기본적인 오라클의 JOIN의 종류는 아래와 같습니다. 1. Cartesian Product 2. Equi Join 3. Non-Equi Join 4. Outer Join 5. Self Join 일반적으로 기본키 or 외래키를 사용하여 두 테이블을 합칩니다. 한 컬럼을 기준으로 JOIN 할 때 모호성이 발생하므로 테이블명이나 별칭을 컬럼 앞에 씁니다. -- 모호성 해결 SELECT ENAME, EMP.DEPTNO, DNAME, LOC -- DEPTNO는 DEPT 테이블에도 존재하므로 -- EMP의 DEPTNO를 출력하겠다고 명시 FROM EMP, DEPT; 1. CARTESIAN PROD..
어떤 컬럼을 기준으로 그룹으로 묶어서 데이터 값들을 출력할 수 있도록 도와주는 GROUP BY 절에 대해서 알아보겠습니다. 1. GROUP BY SELECT [column], group_function(column) FROM table [WHERE 조건식] [GROUP BY column] [ORDER BY column] 전체 테이블이 아닌 특정 그룹으로 묶을 때 GROUP BY 함수를 통해 출력할 수 있습니다. 그룹 함수는 GROUP BY 없이 일반 컬럼과 함께 출력할 수 없습니다. 그룹으로 묶을 컬럼은 반드시 SELECT 절에도 존재해야합니다! 부서 번호를 그룹화하여 각 그룹의 SAL 평균을 출력해볼까요? SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO; 부서 번..
조건 변환문에서 저번 시간엔 CASE에 대해 알아보았습니다. 이번 시간에는 Oracle에서만 사용할 수 있는 DECODE 함수에 대해 알아보겠습니다. DECODE DECODE(column | expression, search1, result1 [, search2, result2, ... ,] [, default) DECODE 함수는 기본적으로 숫자연산에 사용되는 함수입니다. column에 매치되는 값을 찾아 연산을 한 뒤에 출력합니다. 사원 테이블에서 사원의 번호, 이름, 급여, 급여의 배수를 한 값 직업이 ANALYST인 경우 급여에 1.1배 CLERK인 경우 1.2배 MANAGER인 경우 1.3배 PRESIDENT인 경우 1.4배 SALESMAN일 경우 1.5배 나머지는 그대로 하여 출력해봅시다. S..
SUBSTR SUBSTR(column, n, m) n번째 자리부터 길이가 m인 문자열을 반환합니다. n이 음수일 경우 뒤에서 n번째 자리부터 길이가 m인 문자열을 반환합니다. 단, m을 입력하지 않은 경우 n번째 자리부터 끝까지 문자열을 반환합니다. 사원 테이블에서 사원의 이름과 이름의 1번째부터 3번째까지 출력해봅니다. SELECT ENAME, SUBSTR(ENAME, 1, 3) FROM EMP; 사원들의 이름이 1번째부터 3번째까지만 출력되는 것을 확인할 수 있습니다. INSTR INSTR(column, 's', n, m) 전체 문자열의 n번째 위치에서 원하는 m번째 문자열의 시작 위치를 리턴합니다. 없으면 0을 리턴합니다. 이름이 SCOTT인 사원의 이름의 1번째 문자부터 탐색하여 나오는 2번째 T..
문자열 처리 함수 중 길이를 정하고 남는 공백은 문자로 채우는 함수가 있습니다. LPAD와 RPAD에 대해서 알아보겠습니다. LPAD - 길이를 정하고 왼쪽부터 남는 공백은 문자로 채웁니다. LPAD(column, n, 's') 사원테이블에서 부서번호 10번의 사원 이름을 LPAD 함수로 15자리로 설정하여 나머지는 * 문자로 채워봅니다. SELECT ENAME, LPAD(ENAME, 15, '*') FROM EMP WHERE DEPTNO = 10; 15자리에서 사원 이름을 제외한 나머지는 왼쪽부터 * 문자로 채워져 출력되는 것을 확인할 수 있습니다. RPAD - 길이를 정하고 오른쪽부터 남는 공백은 문자로 채웁니다. RPAD(column, n, 's') 사원테이블에서 부서번호 10번의 사원 이름을 RP..