일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그대로 출력하기
- DP
- JOIN
- 백준
- darkest dark
- 변수
- 데이터베이스
- ANSI JOIN
- 문자열
- n x 2 타일링 2
- db
- Eclipse
- Java
- 10951
- 자바
- 2156
- Algorithm
- oracle
- 동적계획법
- 알고리즘
- Dynamic Programming
- 소숫점처리
- Database
- 데이터길이
- 오라클
- select
- 반복문
- SQL
- algoritm
- 입출력
- Today
- Total
목록Database (29)
Cracking Code
두 개의 테이블을 하나로 합칠 수 있는 MERGE 문에 대해서 알아봅시다. MERGE INTO table alias USING table alias ON (조건절) WHEN MATCHED THEN UPDATE SET col1 = col1_value, col2 = col2_value, ... WHEN NOT MATCHED THEN INSERT (column_list) VALUES (column_values); MERGE는 구조가 같은 2개의 테이블을 비교하여 하나의 테이블로 합치는 데이터 조작어입니다. 행이 이미 존재하면 UPDATE가 실행되고 존재하지 않으면 INSERT가 실행됩니다. MERGE를 실습하기 전에 임시로 테이블을 만들어볼까요? CREATE TABLE PT_01( 판매번호 VARCHAR2(8..
테이블에 저장된 행들을 삭제하는 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 조건절 ), ....
ANSI JOIN은 오라클뿐만 아니라 모든 DB에서 사용할 수 있는 JOIN입니다. FROM 절에서 JOIN을 지정하고 조건은 WHERE이 아닌 ON으로 명시합니다. NATURAL JOIN과 USING 절에서는 별칭(Alias)을 사용할 수 없습니다. 1. CROSS JOIN SELECT table1.column, table2.column FROM table1 CROSS JOIN table2; 오라클의 CARTESIAN JOIN과 동일합니다. EMP 테이블의 사원 번호, 이름, 부서 이름을 CROSS JOIN해서 출력해봅시다. SELECT EMPNO, ENAME, DNAME FROM EMP CROSS JOIN DEPT; 부서 이름마다 사원의 정보가 전부 출력되는 CARTESIAN JOIN과 같은 모습을 ..
검색하고자 하는 컬럼이 두 개 이상 테이블에 존재할 때 사용할 수 있는 기술이 있습니다. 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..
SQL에서도 다른 개발 언어와 같이 조건별로 데이터 리턴이 가능합니다. CASE WHEN THEN END와 DECODE 함수가 있습니다. 본문에선 CASE를 먼저 알아보도록 하겠습니다. CASE (ANSI) CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 ... WHEN comparison_exprn THEN return_exprn ELSE else_expr] END CASE는 일반 연산 시와 비교 연산 시에 따라 컬럼(expr)의 위치가 조금 바뀝니다. 예제로 알아보겠습니다. 사원 테이블에서 사원의 번호, 이름, 급여, 급여의 배수를 한 값 직업이 ANALYST인 경우 급여에 1.1배 CL..
SQL 함수로 데이터형 간에 변환을 이뤄주는 함수에 대해서 알아보겠습니다. 시작하기 전에 용어 정리 들어갑니다! 묵시적 형변환: DBMS에서 알아서 판단하고 자동으로 데이터형을 변환 명시적 형변환: 사용자가 어떤 형태로 데이터를 변환시킬지 명시하여 변환 1. TO_CHAR TO_CHAR(n | date, 'format') 숫자, 날짜, 문자열을 지정한 format의 VARCHAR2 문자열로 변환합니다. 예제로 알아보기 앞서서 포맷에 쓰이는 문자들을 알아볼까요? YYYY 년도를 숫자로 표시 YEAR 년도를 영문 표시 MM 월을 숫자로 표시 MONTH 월을 영문 표시 MON 월을 영문 3자리 표시 DY 요일을 영문 3자리, 한글 1자리 표시 DAY 요일을 영문, 한글로 표시 DD 일을 숫자로 표시 AM | ..
SQL 문에서 비교를 위한 구문으로 BETWEEN, IN, LIKE, IS NULL 에 대해 알아보았습니다. 1. BETWEEN BETWEEN 구문은 어떤 두 값 사이에 있는 값들을 찾기위한 구문입니다. BETWEEN A AND B A 보다 크거나 같고 B 보다 작거나 같은 범위의 값들을 탐색합니다. 단, A < B 의 조건일 때 동작합니다. 급여가 1000 이상이며 2000 이하인 사원의 번호와 이름, 급여를 출력해봅니다. SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL BETWEEN 1000 AND 2000; 급여 1000 ~ 2000 의 사원들의 정보가 출력되는 것을 확인할 수 있습니다. 2. IN IN 구문은 조회할 데이터가 다수일 때 유용하게 사용할 수 있습니다. ..