DB (18) 썸네일형 리스트형 ORA- 01841 년은 -4713 과 +4713 사이의 값으로 지정해주세요 보호되어 있는 글입니다. SQL 오라클 자동증가 방법 보호되어 있는 글입니다. Oracle DB 실습 – 시퀀스, 트리거, 프로시저, 함수, 인덱스, 실행계획 1. 시퀀스 (SEQUENCE)기본 개념시퀀스는 고유한 숫자 값을 자동으로 생성하기 위한 객체다. 보통 PK(기본키) 값 자동 증가에 많이 사용한다.CREATE SEQUENCE seq_product_idSTART WITH 1INCREMENT BY 1CACHE 20NOCYCLE;START WITH 1 → 시작값 지정INCREMENT BY 1 → 1씩 증가CACHE 20 → 메모리에 20개 미리 로드해두고 빠르게 제공NOCYCLE → 최댓값 도달 시 다시 1로 돌아가지 않음 CACHE vs NOCACHECACHE : 속도 ↑ (미리 번호 확보) / 단, DB 비정상 종료 시 일부 번호 건너뛸 수 있음NOCACHE : 항상 디스크에서 번호 가져옴 → 안정적이지만 느림2. 트리거 (TRIGGER) 개념트리거는 .. MySQL Oracle 조건문 /Insert 문/TOP N 행 / 집계문자열 정리 조건문 – IF vs CASESQL에서 조건 분기 처리하는 방법MySQL – IF 함수SELECT name, IF(salary >= 5000, '고연봉', '일반') AS pay_gradeFROM employees;IF(expr, true_value, false_value) 형식조건식이 TRUE면 두 번째 값, FALSE면 세 번째 값 반환Oracle – CASE 문SELECT name, CASE WHEN salary >= 5000 THEN '고연봉' ELSE '일반' END AS pay_gradeFROM employees;SQL 표준 CASE 문법복수 조건도 가능다중 INSERT여러 행을 한 번에 INSERT 하는 방법MySQLINSE.. MySQL 과 Oracle NULL 처리 – IFNULL vs NVL MySQL과 Oracle은 NULL 값을 다른 값으로 치환하는 함수가 다르며,동작 방식과 제약 조건도 차이가 있다NULL 처리 함수는 보고서, 집계, 데이터 표시 등에서 자주 쓰인다1. MySQL – IFNULLSELECT IFNULL(name, '없음') FROM user;동작 원리첫 번째 인자가 NULL이면 두 번째 인자로 대체NULL이 아니면 원래 값을 반환두 인자의 데이터 타입이 달라도 자동 형변환이 가능 예시-- 1) 문자열 예시SELECT name, IFNULL(name, '이름없음') AS name_checkedFROM user;-- 2) 숫자 예시SELECT age, IFNULL(age, 0) AS age_checkedFROM user;-- 3) 타입 혼합 가능SELECT IFNULL(sa.. MySQL 과 Oracle 자동 증가(PK) 구현 차이/ LIMIT vs ROWNUM – 결과 제한 처리 1. MySQL – AUTO_INCREMENTCREATE TABLE user ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));레코드 삽입 시 id 자동 증가별도의 객체 불필요2. Oracle – SEQUENCE + TRIGGEROracle 11g는 AUTO_INCREMENT가 없으므로, 아래 방식 사용-- 시퀀스 생성CREATE SEQUENCE user_seq START WITH 1 INCREMENT BY 1;-- 테이블 생성CREATE TABLE user ( id NUMBER PRIMARY KEY, name VARCHAR2(100));-- 트리거 생성CREATE OR REPLACE TRIGGER trg_user_idBEFORE I.. 오라클 - SQL 집합 연산자 & DML 정리 1. UNION두 개 이상의 SELECT 결과를 합치는 연산자.중복된 결과는 자동으로 제거됨 (DISTINCT 효과).컬럼 개수, 타입이 동일해야 함.SELECT name FROM tStudentUNIONSELECT name FROM tTeacher;학생 + 선생님 이름을 중복 없이 합쳐서 출력.2. UNION ALLUNION과 비슷하지만, 중복까지 모두 포함.DISTINCT 작업이 없어서 UNION보다 성능이 빠름.SELECT name FROM tStudentUNION ALLSELECT name FROM tTeacher;학생 + 선생님 이름을 중복 포함해서 출력.3. INTERSECT공통된 결과만 추출.자동으로 중복 제거됨.SELECT name FROM tStudentINTERSECTSELECT nam.. 오라클 DB 정리 – 정규화 · 참조 무결성 · 외래키 제약 · ENUM 대체 방법 1. 데이터베이스 정규화 (Normalization)먼저 정규화부터.정규화는 데이터를 잘게 쪼개서 중복을 줄이고, 이상 현상을 방지하는 과정이다.1차 정규화 (1NF)모든 속성은 반드시 원자값(Atomic Value)이어야 한다.→ 예를 들어, 전화번호 여러 개를 한 컬럼에 넣지 않고 별도 테이블로 분리해야 한다.2차 정규화 (2NF)1NF를 만족하면서, 기본키의 부분집합에만 종속된 속성을 제거한다.→ (학생ID, 과목ID) → 성적 구조일 때, 학생 주소는 학생ID에만 종속되므로 따로 분리해야 한다.3차 정규화 (3NF)2NF를 만족하면서, 기본키가 아닌 속성이 다른 속성에 종속되지 않도록 분리한다.→ 학생 테이블에 학과ID → 학과명 관계가 있으면 학과 테이블로 분리.정리하자면, 정규화를 통해 데이터.. 이전 1 2 3 다음