일자 : 10주차 2차시

관계형 데이터베이스는 테이블 형식으로 데이터베이스 간의 관계를 정의한다. 테이블들은 공통 데이터를 기반으로 서로 연결된다.

CREATE TABLE Customers (
CustomerID INT(10) NOT NULL AUTO_INCREMENT, -- 고객 ID, 자동 증가 및 기본 키
CustomerName VARCHAR(50) NOT NULL, -- 고객 이름
ContactName VARCHAR(50) NULL, -- 연락처 이름
Address VARCHAR(50) NULL, -- 주소
City VARCHAR(50) NULL, -- 도시
PostalCode INT(10) NULL, -- 우편번호
Country VARCHAR(50) NULL, -- 국가
CONSTRAINT Customers_PK PRIMARY KEY (CustomerID) -- 기본 키 제약 조건 설정
);

CREATE TABLE Shippers (
ShipperID INT(10) NOT NULL AUTO_INCREMENT, -- 배달업체 ID, 자동 증가 및 기본 키
ShipperName VARCHAR(50) NOT NULL, -- 배달업체 이름
Phone VARCHAR(50) NOT NULL, -- 전화번호
CONSTRAINT Shippers_PK PRIMARY KEY (ShipperID) -- 기본 키 제약 조건 설정
);

CREATE TABLE Orders (
OrderID INT(10) NOT NULL AUTO_INCREMENT, -- 주문 ID, 자동 증가 및 기본 키
CustomerID INT(10) NOT NULL, -- 고객 ID, 외래 키
EmployeeID INT(10) NOT NULL, -- 직원 ID
OrderDate DATE NOT NULL, -- 주문 날짜
ShipperID INT(10) NOT NULL, -- 배달업체 ID, 외래 키
CONSTRAINT Orders_PK PRIMARY KEY (OrderID), -- 기본 키 제약 조건 설정
CONSTRAINT Orders_CustomerID_FK FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID), -- 외래 키 제약 조건
CONSTRAINT Orders_ShipperID_FK FOREIGN KEY (ShipperID) REFERENCES Shippers(ShipperID) -- 외래 키 제약 조건
);
SELECT * FROM {테이블명};
SELECT {컬럼명}, {컬럼명} FROM {테이블명};
: 중복된 데이터를 제거하고 고유한 값만 선택할 때 사용한다. 예를 들어, 특정 컬럼에 있는 모든 고유한 값의 목록을 가져올 수 있다.
SELECT DISTINCT {컬럼명} FROM {테이블명};
개수 사용 : COUNT()
SELECT COUNT(DISTINCT {컬럼명}) FROM {테이블명};
- 특정 컬럼의 고유한 값의 개수를 세는 데 사용한다.
: 특정 조건을 만족하는 데이터만 선택할 때 사용한다. 조건에 맞는 레코드만 반환되며, 데이터 필터링에 유용하다.
SELECT * FROM {테이블명} WHERE {조건}
= : 두 값이 같음을 의미한다.> : 왼쪽 값이 오른쪽 값보다 큼을 의미한다.< : 왼쪽 값이 오른쪽 값보다 작음을 의미한다.>= : 왼쪽 값이 오른쪽 값보다 크거나 같음을 의미한다.<= : 왼쪽 값이 오른쪽 값보다 작거나 같음을 의미한다.<> : 두 값이 같지 않음을 의미한다.BETWEEN : 특정 범위 내의 값을 의미하며, 시작 값과 끝 값 모두 포함된다.LIKE : 특정 패턴과 일치하는 값을 찾을 때 사용하며, 일반적으로 와일드카드 문자(예: %, _)와 함께 사용된다.IN : 지정된 값 목록 중 하나와 일치하는 값을 찾을 때 사용한다.: 결과 집합을 특정 컬럼을 기준으로 정렬할 때 사용한다. 기본적으로 오름차순으로 정렬되지만, 내림차순으로도 정렬할 수 있다.
SELECT * FROM {테이블명} ORDER BY {컬럼명} {정렬 조건}
INSERT INTO {테이블명} (컬럼명, 컬럼명) VALUES ('데이터값', '데이터값');
NULL 값이 있는 필드는 값이 없는 필드이다.
테이블의 필드가 선택적일 경우, 이 필드에 값을 추가하지 않고 새 레코드를 삽입하거나 레코드를 업데이트할 수 있다. 그러면 이 필드는 NULL 값으로 저장된다.
주의: NULL 값은 0 값이나 공백이 포함된 필드와 다르다. NULL 값이 있는 필드는 레코드 생성 시 비워 둔 필드이다!
UPDATE {테이블명} SET {컬럼명} = {값}, {컬럼명} = {값} WHERE {조건}
WHERE 절이다.WHERE 절을 생략하면 모든 레코드가 업데이트된다!아래는 SQL - DELETE에 대한 설명이다.
DELETE 문은 테이블에서 기존 레코드를 삭제하는 데 사용된다.DELETE FROM {테이블명} WHERE {조건}
DELETE FROM {테이블명};
