반응형
데이터 정의 언어 Data-Defining Language(DDL)
- 관계형 스키마를 정의합니다
- 테이블과 그 속성을 생성/수정/삭제합니다
- 타입
- 무결성 제약 조건
테이블 생성하기
CREATE TABLE r(
A1 D1,
A2 D2,
...,
An Dn,
(무결성-제약조건1),
...,
(무결성-제약조건k)
);
r은 관계의 이름입니다
각 A는 관계 r의 스키마에 있는 속성 이름입니다
D는 속성 A의 도메인에 있는 값들의 데이터 타입입니다
- SQL 키워드는 대소문자를 구분하지 않습니다 ↔ 하지만 문자열 값은 구분합니다
→ 'Strings'처럼 작은따옴표를 사용합니다
→ 문자열 내에서는 작은따옴표를 두 번 사용합니다 → 'O''Neill' - 테이블을 선언할 때 포함할 내용
- 속성과 그 타입들
- 기본 키 정의
- 제약 조건
- 기타
numeric(4,0)
Q. 왜 int를 사용하지 않고 numeric을 사용했나요?
- 정밀도 제어:
NUMERIC(4, 0)
은 정확히 4자리 숫자를 가진 열을 명시적으로 정의하며, 소수점 이하 자리는 0입니다. 이는 4자리 범위를 벗어나는 값(예: 12345)이 저장되지 않도록 보장하여 데이터 크기와 정밀도에 대한 더 많은 제어를 제공합니다. 반면에INT
는 훨씬 더 큰 범위를 허용하며, 이는 특정 사용 사례에서는 불필요할 수 있습니다. - 저장 효율성:
일부 데이터베이스 시스템은 정의된 데이터 타입에 따라 저장 공간을 최적화합니다.NUMERIC(4, 0)
을 사용하면 데이터베이스가INT
에 비해 더 적은 공간을 할당할 수 있습니다. 특히 해당 열에 작은 숫자(4자리 ID와 같은)만 예상되는 경우에 그렇습니다.
반응형
타입: 날짜와 시간
DATE 값의 형식:
- 'yyyy-mm-dd'
TIME 값의 형식: - 'hh:mm:ss'
→ '15:30:02.5' → 초의 소수점 또는 분수가 가능합니다
CREATE TABLE에서의 무결성 제약 조건
- 기본 키
primary key (A1, ..., An)
- 외래 키
foreign key (A1, ..., Am) references r(B1, ..., Bm)
on delete set null
B는 r의 기본 키입니다
"on delete set null" → 참조된 관계에서 참조된 값이 삭제될 때, 해당 값을 null로 설정합니다
- not null
테이블 수정하기 Data Manipulation Language (DML)
ALTER TABLE
열을 테이블에 추가하거나 제거할 수 있습니다
- ADD로 열 추가하기
ALTER TABLE Customer
ADD height INTEGER DEFAULT(1); -> 기본값이 없으면 기본값은 null이 됩니다
- DROP으로 열 제거하기
ALTER TABLE Customer
DROP height;
728x90
테이블 삭제하기
DROP TABLE
모든 레코드뿐만 아니라 테이블 스키마도 삭제합니다
DROP TABLE Customer;
DELETE FROM
관계는 그대로 두고 레코드만 삭제합니다
DELETE FROM Customer;
데이터베이스 수정
레코드 삽입하기
INSERT 문을 사용하여 기존 테이블에 레코드를 삽입합니다
INSERT INTO R(a1, a2, ...) VALUES (v1, v2, ...)
레코드 삭제하기
DELETE 문을 사용하여 레코드를 삭제합니다
DELETE FROM R WHERE 조건
→ 조건이 없으면 모든 레코드가 삭제됩니다
레코드 수정하기
UPDATE 문을 사용하여 테이블의 레코드를 수정합니다
UPDATE R SET 구문 WHERE 조건
반응형
'컴퓨터공학 > 데이터베이스 DB' 카테고리의 다른 글
외부 조인과 내부 조인 Inner Join and Outer Join (2) | 2024.10.20 |
---|---|
기초 SQL문 정리 SFW, HAVING, GROUP BY ... (8) | 2024.10.19 |
데이터베이스 Relational Algebra 관계 대수 (3) | 2024.10.15 |
관계형 데이터베이스 모델, Relational Data Models (0) | 2024.10.13 |
DB 입문, 데이터베이스 기초 (10) | 2024.10.12 |