본문 바로가기
반응형

SQLD17

NULL과 관련된 규칙들 보통 NULL값은 무시된다. FALSE가 아니라 무시된다. NULL 조건은 IS NULL, IS NOT NULL로 처리해야된다. =이나 !=에 NULL을 붙이면 항상 FALSE가 나온다. 외래 키에 NULL이 들어갈 수 있습니까? NULL이 들어갈 수 있다. 외래키는 참조된 테이블에 값이 존재해야 한다는 제약이다. NULL은 값이 없다는게 아니라 "모른다" 이기 때문 속성 NOT IN ( 목록 ) 내부 쿼리 안에 NULL이 있는 경우 아무것도 나오지 않는다. 모두 일치하지 않아야 하는데 [값 != NULL] 은 항상 FALSE이므로 값에 상관없이 항상 조건을 만족하지 않는다. 조인할때 INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 은 NULL을 무시하고 한다. FULL.. 2020. 11. 25.
외울거 정리 데이터 모델링의 3단계 개념적 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA 수립 시 많이 이용됨 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계 데이터 모델링의 3가지 요소 Thing(엔티티) : Attributes(속성) : 업무에서 필요로 하는 인스턴스에서 더 이상 분리되지 않는 최소의 데이터 단위 Relationship(관계) : 데이터 모델링을 할 때 유의할 사항 중복(Duplication) : 데이터가 중복 저장되어 관리되면 안된다. 비유연성(In.. 2020. 11. 25.
TOP, ROWNUM 이번 글은 MYSQL의 TOP과 ORACLE의 ROWNUM 그리고 ROWNUM과 ORDER BY에 대한 정리 1. TOP은 속도도 빠르고 문법도 매우 쉬움 SELECT TOP(10) FIRST_NAME, JOB_ID FROM HR.EMPLOYEES ORDER BY SALARY 2. 정렬된 데이터 중 10개를 선택 SELECT FIRST_NAME, JOB_ID FROM ( SELECT FIRST_NAME, JOB_ID FROM HR.EMPLOYEES ORDER BY SALARY) WHERE ROWNUM ORDER BY 순으로 실행되기 때문에 매우 높은 확률로 실행 결과는 10개가 아니다. SELECT FIRST_NAME, JOB_ID FROM ( SELECT FIRST_NAME, JOB_ID, ROWNUM.. 2020. 11. 23.
DDL, DML, DCL, TCL DDL(Data Definition Language) 데이터 정의어 CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENT TRUNCATE : 테이블을 비운다. 삭제 로그가남지 않기 때문에 ROLLBACK이 불가능 DML(Data Manipulation Language) 데이터 조작어 SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE DCL(Data Control Language) 데이터 제어어 GRANT, REVOKE TCL(Transaction Control Language) 트랜잭션 제어어 COMMIT, ROLLBACK, SAVEPOINT, TRANSACTION 2020. 11. 23.
SAVEPOINT, ROLLBACK SAVEPOINT SAVEPOINT는 COMMIT되지않은 수정사항을 중간저장해놓는 세이브포인트같은 개념이다. SAVEPOINT는 이름을 지정할 수 있다. 같은 이름을 가지는 SAVEPOINT가 지정된 경우 덮어씌워진다. 이름을 지정하지않고 ROLLBACK을 하면 가장 가까운 SAVEPOINT로 이동한다. 오라클에서는 DDL(CREATE TABLE 등)이 AUTO COMMIT 된다. DDL이 실행되는경우 그 이전으로 ROLLBACK할 수 없다.(COMMIT이 실행됐기때문) INSERT INTO A VALUES('A'); // "A" SAVEPOINT SP1 UPDATE A SET COL1='B' WHERE COL1='A'; // "B" SAVEPOINT SP2 ROLLBACK SP1 SELECT COL1 .. 2020. 11. 22.
제약조건[CHECK] CHECK는 조건에 맞지 않는 값이 입력된 경우 예외를 발생시키는 제약조건 Ex> CHECK(속성 < 5) CHECK (속성 IN ('A', 'B', 'C')) CHECK (속성 = '문자열') CHECK (속성 LIKE 'A%') NULL값 입력 시 입력된다. NULL값은 비교 연산시 무시되는 것으로 보임 2020. 11. 22.
반응형