일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 소숫점처리
- 알고리즘
- JOIN
- Java
- darkest dark
- Database
- DP
- Dynamic Programming
- 변수
- 데이터베이스
- 데이터길이
- 2156
- Eclipse
- SQL
- select
- n x 2 타일링 2
- 백준
- 10951
- Algorithm
- 그대로 출력하기
- db
- 문자열
- 동적계획법
- oracle
- 반복문
- 자바
- algoritm
- 오라클
- 입출력
- ANSI JOIN
- Today
- Total
목록분류 전체보기 (78)
Cracking Code
테이블에는 중복이 되면 안 되는 값들이 존재할 수 있겠죠? 이러한 것을 사전에 방지할 수 있도록 UNIQUE 제약 조건에 대해 알아봅시다. -- COLUMN LEVEL column datatype [CONSTRAINT constraint_name] UNIQUE -- TABLE LEVEL column datatype, ..., [CONSTRAINT constraint_name] UNIQUE (column1[, column2, ...]) 유니크 제약 조건은 해당 컬럼에 중복 값이 저장되지 않도록 제한합니다. 한 개 이상의 컬럼으로 구성되며 NULL 값을 저장할 수 있습니다. 🚨복합 컬럼 지정 시 테이블 LEVEL만 지정할 수 있습니다. S_NO / NUMBER(2), S_NAME / VARCHAR2(10),..
PRIMARY KEY는 기본키라고도 하며 테이블에서 각 행을 식별하는 제약 조건입니다. -- COLUMN LEVEL column datatype [CONSTRAINT constraint_name] PRIMARY KEY -- TABLE LEVEL [CONSTRAINT constraint_name] PRIMARY KEY (column1[, column2, ...]) 기본키는 각 테이블에 하나만 존재할 수 있습니다. UNIQUE와 NOT NULL 제약 조건이 동시에 걸려 있으며 UNIQUE INDEX가 자동으로 생성됩니다. ID / NUMBER(2), NAME / VARCHAR2(10) 을 컬럼으로 가지고 ID를 기본키로 컬럼 레벨에서 설정하여 PK_TAB1 테이블을 만들어봅시다. CREATE TABLE PK..
데이터베이스의 무결성을 유지하기 위해서 일종의 제약을 둡니다. 데이터베이스 제약 조건에 대해 알아봅시다. CREATE TABLE table( column datatype [DEFAULT expr] -- 컬럼 LEVEL [CONSTRAINT column_constraint], ..., [table CONSTRAINT column_constraint], -- 테이블 LEVEL ... ); 제약 조건은 테이블 LEVEL, 컬럼 LEVEL에서 선언할 수 있습니다. 테이블 LEVEL은 모든 컬럼의 선언이 끝난 후에 제약 조건을 명시하는 것이며 컬럼 LEVEL은 컬럼의 선언과 동시에 제약 조건도 명시하는 것입니다. 🚨컬럼 LEVEL 에선 제약 조건을 하나씩만 선언할 수 있습니다.🚨 제약 조건의 종류 제약 조건은 C..
데이터베이스의 기본적인 저장 단위인 테이블을 만들 수 있는 CREATE TABLE 명령어를 알아보겠습니다. CREATE TABLE [schema.]table ( column datatype [DEFAULT expr][, ...] ); table의 이름을 짓고 들어갈 column 들의 데이터 타입과 옵션을 지정해줍니다. * schema란 특정 사용자가 데이터베이스에 접근하여 생성한 객체들의 대표 이름을 의미합니다. 보통 사용자가 들어갑니다. datatype은 아래와 같습니다. 1. DEFAULT 옵션 해당 테이블에 행을 입력할 때 해당 컬럼에 값을 지정하지 않은 경우 자동으로 DEFAULT 값이 입력됩니다. NULL 값이 저장되는 것을 방지할 수 있습니다. NUM ( NUMBER(2) ), WRITEDAY..
트랜잭션 내의 데이터 변경 사항을 저장하거나 되돌릴 수 있는 COMMIT, ROLLBACK 에 대해 알아보겠습니다. 데이터베이스는 읽기 일관성을 유지합니다. 사용자들에게 가장 최근에 커밋된 데이터를 보여주며 다른 사용자가 변경 중인 데이터는 또 다른 사용자에게 보여지지 않습니다. 이는 동일 데이터를 동시에 변경할 때의 혼란을 방지합니다. 1. COMMIT COMMIT; 모든 데이터 변경 사항을 데이터베이스에 영구히 반영시키는 명령어입니다. 변경 전의 데이터는 모두 잃습니다. 2. ROLLBACK ROLLBACK; 모든 데이터 변경 사항을 취소하는 명령어입니다. 변경 전의 데이터가 복원됩니다. 트랜잭션이 진행 중이던 행들에 대한 잠금이 모두 해제되어 다른 사용자에 의해 변경이 가능해집니다.
트랜잭션은 데이터베이스의 논리적인 단위입니다. 트랜잭션이 무엇인지 알아보는 시간을 갖도록 하겠습니다. TRANSACTION 분할 할 수 없는 최소의 단위이며 하나의 트랜잭션에서는 하나 이상의 SQL 문장이 포함됩니다. 트랜잭션은 ALL or NOTHING으로 모든 명령이 전부 적용되거나 전부 취소됩니다. 트랜잭션은 시작과 종료가 있습니다. 시작 - DML 명령을 시작한 경우 자동으로 시작 종료 - COMMIT 또는 ROLLBACK 명령을 명시적으로 실행 시 - DDL 문장 실행 시 - DCL 문장 실행 시 - SQL 프로그램을 종료할 경우 - 하드웨어 고장 또는 시스템 오류 시 트랜잭션 내 모든 데이터 변경 사항은 트랜잭션이 종료되기 전까지 모두 임시적입니다. 변경된 행은 LOCK 상태로 변하며 해당 사..
두 개의 테이블을 하나로 합칠 수 있는 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..