전체 글
-
제약조건 생성시 옵션SQL 2020. 2. 10. 10:53
● PIRMARY KEY 제약조건 - PRIMARY KEY 제약 조건 생성시 오라클 DBMS는 해당 컬럼으로 UNIQUE INDEX를 자동으로 생성 INDEX : 해당컬럼으로 미리 정렬을 해놓은 객체 정렬이 되어 있기 때문에 찾고자 하는 값이 존재하는지 빠르게 알 수 있다. 만약, 인덱스가 없다면 새로운 데이터를 입력할 때 중복된 값을 찾기 위해서 최악의 경우 테이블의 모든 데이터를 찾아야 한다. 하지만 인덱스가 있으면 이미 정렬이 되어있기 때문에 해당 값의 존재 유무를 빠르게 알 수 있다. 더 정확히 말하면 UNIQUE 제약조건에 의해 인덱스가 생성된다. ● FOREIGN KEY 제약조건 - 참조하는 테이블에 값이 있는지를 확인해야 한다. 그래서, 참조하는 컬럼에 인덱스가 있어야지만 FOREING KE..
-
제약조건SQL 2020. 2. 7. 20:43
제약조건 설정 방법 1. 테이블을 생성하면서 컬럼에 기술 2. 테이블을 생성하면서 컬럼 기술 이후에 별도로 제약조건을 기술 3. 테이블 생성과 별도로, 추가적으로 제약조건을 추가 제약조건 - 데이터가 무결성을 지키도록 하기위한 설정 제약조건 종류 1. UNIQUE 제약조건 - 해당 컬럼의 값이 다른 행의 데이터와 중복되지 않도록 제약 ex) 같은 사번의 사원들은 존재 할 수 없다. 2. NOT NULL 제약조건 - 해당 컬럼에 값이 반드시 존재해야 한다. ex) 사번 칼럼 - 사번 컬럼 NULL인 사원은 존재 할 수 없다. 회원 가입시 필수 입력사항 등 - CHECK 제약 조건에 포함되지만 사용빈도가 높다보니 간편한 형태 제공 3. PIRMARY KEY 제약조건 - UNIQUE + NOT NULL 조건 ..
-
데이터 타입.SQL 2020. 2. 7. 20:29
문자열 - VARCHAR2 (SIZE) : 가변 길이 문자열 SIZE : 1 ~ 4000byte 한글은 1글자에 3byte * 오라클 DBMS의 인코딩 설정에 따라 다름 - CHAR (SIZE) : 고정길이 문자열 SIZE : 1 ~ 2000byte CHAR(10) 해당 컬럼에 문자열을 5byte만 지정하면 나머지 5byte는 공백으로 채워짐 ex) 'TEST' != 'TEST ' -> 둘은 완전 다른 문자열 ==> CHAR 사용 지양 숫자 - NUMBER(P, S) : P - 전체자리수, S - 소수점 자리수 NUMBER -> NUMBER(38)로 인식 비슷하게 INTEGET형도 있는데 이것도 NUMBER(38,0)으로 인식 날짜 - DATE : 일자와 시간 정보를 저장 7BYTE로 고정 -> 회사에 ..
-
데이터 타입SQL 2020. 2. 7. 20:22
문자열 VARCHAR2 (SIZE) : 가변 길이 문자열 SIZE : 1 ~ 4000byte 한글은 1글자에 3byte * 오라클 DBMS의 인코딩 설정에 따라 다름 CHAR (SIZE) : 고정길이 문자열 SIZE : 1 ~ 2000byte CHAR(10) 해당 컬럼에 문자열을 5byte만 지정하면 나머지 5byte는 공백으로 채워짐 ex) 'TEST' != 'TEST ' -> 둘은 완전 다른 문자열 ==> CHAR 사용 지양숫자 NUMBER(P, S) : P - 전체자리수, S - 소수점 자리수 NUMBER -> NUMBER(38)로 인식 비슷하게 INTEGET형도 있는데 이것도 NUMBER(38,0)으로 인식 날짜 DATE : 일자와 시간 정보를 저장 7BYTE로 고정 ..
-
DML, DDL, DCLSQL/DML 2020. 2. 7. 17:39
DML (Data Multipulation Language) - 테이블에 데이터 검색, 삽입, 수정, 삭제하는데 사용됌 DML 종류 1. SELECT - 검색(조회) 2. INSERT - 삽입(등록) 3. UPDATE - 수정 4. DELETE - 삭제 DDL (Data Definition Language) - 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어 DDL 종류 1. CREATE 2. ALTER 3. DROP 4. RENAME 5. TRUNCATE DCL (Data Control Language) - 데이터의 사용 권한을 관리하는데 사용됨 DCL 종류 1. GRANT 2. REVOKE
-
TRUNCATESQL 2020. 2. 7. 09:16
TRUNCATE 1. REDO 로그를 생성하지 않기 때문에 삭제시 데이터 복구가 불가능하다. 2. DML이 아니라 DDL로 분류된다 -> ROLLBACK이 불가 TRUNCATE 테스트 시나리오 - emp 테이블을 복사하여 emp_copy라는 이름으로 테이블 생성 - emp_copy 테이블을 대상으로 TRUNCATE TABLE emp_copy실행 - emp_copy 테이블에 데이터가ㅓ 존재하는지 (정상적으로 삭제가 되었는지) 확인 * TRUNCATE TABLE 명령어는 DDL 이기 때문에 ROLLBACK이 불가하다. ROLLBACK 후 SELECT 를 해보면 데이터가 복구 되지 않는 것을 알 수 있다.