📁 Language/🛢️ SQL

정규화 중복 데이터를 저장하면서 일으키는 문제점을 없애기 위하여 정보를 주제별로 분할하는 프로그램 쉽게 말하자면, 아무렇게나 테이블을 짜고 데이터 순서를 넣어버리면 (1) 관리하기가 어려워지는 문제와 (2) 불필요한 데이터 중복으로 인해 공간이 낭비되는 문제가 생길 수 있다. 또한 삽입/수정/삭제에 관한 이상현상이 일어나기 때문에 중복 데이터를 최소화하는 등 여러 사항을 고려해 설계하여 예상되는 문제를 방지하는 것이다. 테이블을 어떻게 분리하는지에 따라서 정규화의 단계가 달라진다. 📁 정규화의 종류, 정규화의 단계 6단계까지 있으나 3단계까지만 다루도록 한다. 📌 1차 정규화 같은 성격과 내용의 컬럼이 연속적으로 나타날 경우에 진행한다. 상품명 바지1, 바지2, 바지3 위와 같이 한 행에 같은 성격과 내..
1. NULL 정의되지 않은 값. 빈 값 대신 '미정 값'을 부여할 사용 NULL 을 값으로 가질 수 있는가 PK 불가능 FK 가능 UK 가능 2. NOT NULL 제약 조건 1) 추가 ALTERTABLE 테이블명 MODIFY 컬럼명 NOT NULL; 2) 삭제 ALTER TABLE 테이블명 MODIFY 컬럼명 NULL; 3. NULL 의 조건식 NULL 은 = 을 사용하여 비교할 수 없다. 따라서 아래의 조건식을 사용하여 NULL 값을 비교한다. 컬럼명 IS NULL; 컬럼명 IS NOT NULL; 4. 데이터 조회 시 NULL 값을 다른 값으로 바꾸어 조회하는 방법 NVL, NVL2 를 사용하면 SELECT 쿼리문을 사용하여 데이터를 조회할 때, NULL 값을 다른 값으로 변경하여 조회할 수 있다. ..
PK 를 참조중인 FK 값이 있는 행이 부모 PK 가 삭제될 때 자동으로 함께 삭제되도록 하는 코드를 확인해보자. 📁 1. CREATE TABLE, SEQUENCE PK를 직접 지정하지 않고 자동으로 생성되도록 데이터가 들어갈 테이블과 시퀀스를 생성해준다. -- CREATE TABLE CREATE TABLE TBL_MEMBER( MEMBER_ID NUMBER, MEMBER_NAME VARCHAR2(500) NOT NULL, MEMBER_AGE NUMBER NOT NULL, MEMBER_PHONE VARCHAR2(500) NOT NULL, MEMBER_ADDRESS VARCHAR2(500) NOT NULL, CONSTRAINT PK_MEMBER PRIMARY KEY(MEMBER_ID), CONSTRAINT..
시퀀스 (Sequence) 오라클에서 중복되지 않는 값을 자동으로 순차적으로 생성하는 것 보통 pk 값에 중복을 방지하기 위해 사용한다. 📁 시퀀스 생성 방법 CREATE SEQUENCE 시퀀스명; 시퀀스를 사용하는 옵션에는 여러 가지가 있다. START WITH 시작숫자 INCREMENT BY 증감숫자 등등.. 📁 시퀀스 삭제 DROP SEQUENCE 시퀀스명; 📁 시퀀스 사용 시퀀스명.NEXTVAL; 📌 시퀀스 사용 예시 -- 시퀀스 생성 CREATE SEQUENCE SEQ_BOOK; CREATE SEQUENCE SEQ_MEMBER; -- 시퀀스를 사용해서 데이터 넣기! --회원 정보 추가 (3개 이상) INSERT INTO TBL_MEMBER VALUES(SEQ_MEMBER.NEXTVAL, '홍싸리..
PK 값의 수정 자식에서 참조하고 있는 PK 값의 수정은 기본적으로 막혀있다. 일반적으로 부모 테이블의 PK를 수정하는 것은 권장하지 않는다. 그 이유는 일관성을 손상시키고, 무결성에 위배될 수 있기 때문이다. 하지만, 필요에 따라서 수정해야할 때도 있기 때문에 아래의 두 가지 방법 중 하나를 선택하여 PK 값을 수정해야할 때 사용하도록 한다. 🔗 DML이란? [SQL] DML (SELECT, INSERT, UPDATE, DELETE) DML Data Manipulation Language : 데이터 조작 언어 데이터를 조작하는 쿼리 DML에는 4가지가 있다. 1. SELECT 2. INSERT 3. UPDATE 4. DELETE 📁 1. SELECT : 조회 아래와 같이 작성한다. SELECT 컬럼명,..
수업을 들으면서 모델링 단계에 대해 배운 것을 기록해두려고 한다. ❌ 이론적인 내용은 없다❌ 모델링 (기획) 1. 요구사항 분석 👩‍🦰 : 요구사항은 다음과 같습니다. 도서관에서 회원의 정보와 책의 정보가 필요합니다. 회원의 정보는 회원번호, 이름, 나이, 휴대폰번호, 주소가 필요합니다. 책의 정보는 도서번호, 책 이름, 장르가 필요합니다. 단, 장르는 인문학, 추리, IT, 로맨스로만 구성되어 있습니다. 한 명의 회원은 여러 권의 책을 빌릴 수 있습니다. 테이블 명은 MEMBER, BOOK 으로 해주세요. 2. 개념적 설계(개념 모델링) 회원 도서 회원번호 도서번호 이름 책 이름 나이 장르 휴대폰번호 주소 3. 논리적 설계(논리 모델링) 회원 도서 회원번호 (PK) 도서번호 (PK) 이름 NOT NUL..
무결성 데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 의미이다. 데이터에 결함이 없을 때 무결성의 상태라고 일컫는데, 보통 데이터의 정확성, 일관성, 유효성이 유지될 때 위와 같이 말한다. 1. 정확성 : 데이터는 애매하지 않아야 한다. 2. 일관성 : 각 사용자가 일관된 데이터를 볼 수 있도록 해야한다. 3. 유효성 : 데이터가 실제 존재하는 데이터여야 한다. 무결성의 3가지 종류 무결성의 종류로는 3가지가 있다. 1. 도메인 무결성 2. 개체 무결성 3. 참조 무결성 📁 1. 도메인 무결성 속성이 정의되어 있는 영역을 벗어나지 않도록 규정하는 것. 컬럼의 타입, NULL 값의 허용 등에 대한 사항을 정의하고 올바른 데이터가 입력되었는지를 확인하는 것. 도메인 무결성에는 CHEC..
조합키 (복합키) 두 개 이상의 컬럼을 PK 로 지정하는 것. 테이블에 한 개의 PK 만 존재할 수 있지만 조합키를 사용하면 두 개 이상의 컬럼을 하나의 PK 로 사용할 수 있다. 📁 조합키 예시 조합키 예시를 위한 테이블을 CREATE 한다. -- 조합키 CREATE TABLE TBL_FLOWER( FLOWER_NAME VARCHAR2(1000), FLOWER_COLOR VARCHAR2(1000), FLOWER_PRICE NUMBER, CONSTRAINT PK_FLOWER PRIMARY KEY(FLOWER_NAME, FLOWER_COLOR) ); 아래 코드를 보면 FLOWER_NAME 과 FLOEWR_COLOR 을 PK_FLOWER 이란 이름을 붙여 하나의 PK 로 선언해두었다. CONSTRAINT P..
제약 조건 제약조건으로는 아래 5가지가 있다. 1. PRIMARY KEY (PK) 2. FOREIGN KEY (FK) 3. UNIQUE KEY (UK) 4. NOT NULL 5. CHECK 📁 1. PRIMARY KEY (PK) 고유한 값이며 각 행의 구분점으로 사용된다. 중복이 없고 NULL 값을 허용하지 않는다. 모든 테이블은 PK를 가지는 것이 규칙이다. 무조건 테이블에 PK는 하나씩만 부여한다. (조합키는 예외) 🔗 PK 를 부여하는 방법 4가지 PK의 특징을 확인하기 위해 테이블을 CREATE 한다. CREATE TABLE TBL_PRODUCT( PRODUCT_NUMBER NUMBER CONSTRAINT PK_PRODUCT PRIMARY KEY, PRODUCT_NAME VARCHAR2(1000)..
DDL Data Definition Language : 데이터 정의 언어 테이블 조작 또는 제어 관련 쿼리문 DDL 에는 4가지가 있다. 1. CREATE 2. ALTER 3. DROP 4. TRUNCATE 📁 1. CREATE : 테이블 생성 아래와 같이 작성한다. CREATE TABLE 테이블명( 컬럼명 자료형 [제약조건], ... ); -- CREATE CREATE TABLE TBL_USER( USER_NAME VARCHAR2(1000), USER_AGE NUMBER ); -- TBL_USER 라는 TABLE 생성 📁 2. ALTER : 테이블 수정 아래와 같이 작성한다. ALTER TABLE 테이블명 -- 테이블명 수정: RENAME TO 새로운 테이블명; -- 컬럼 추가: ADD(컬럼명 자료형(..
염비
'📁 Language/🛢️ SQL' 카테고리의 글 목록