데이터베이스구조_0329

allzeroyou·2022년 3월 29일
0

데이터베이스

목록 보기
8/25

preview


export 가능

excel를 다룰 때, 필터 기능을 사용하곤 하는데
엑셀의 컬럼 custid에 필터를 적용하게되면 그룹별로 묶어줌.
groupby가 필터와 동일한 기능을 수행함.

이렇게 결과가 나오면 집계함수를 사용함.

sum, max, count가 집계함수에 해당.

group으로 묶인 상태에서 조건을 따짐 => having 절
각 그룹에 대해 HAVING 조건을 따진다.

COUNT(*) >= 2
전체 로우 카운트가 2보다 커?

즉, GROUP BY는 해당 컬럼에서 조건으로 나누고 나눈 그룹에서 조건을 따지는 것!

HAVING은 GROUPBY 뒤에 나와야!(GROUPBY에 종속됨)

데이터 정의어

CREATE 문

테이블 구성, 속성과 속성에 관한 제약 정의, 기본키 및 외래키를 정의하는 명령이다.
primary key: 기본키
foreign key: 외래키
도메인 무결성, 참조 무결성(외래키-기본키, 외래키가 참조하고 있는 기본키가 삭제되면 안됨)

기본 키 지정 2가지 방법
1. PRIMARY KEY(bookid);
2. bookid INTEGER PRIMARY KEY;

CREATE TABLE NewBook (
	bookid INTEGER PRIMARY KEY,
    bookname VARCHAR(10),
    publisher VARCHAR(20),
    price INTEGER
);

DROP TABLE NewBook;

기본키는 2,3개 지정하든 상관없는데 유일하게 식별이 가능해야 한다!

두개의 속성을 묶어 키로 지정하고 싶으면 괄호안에 속성을 적으면 된다.

CREATE TABLE NewOrders(
	orderid INTEGER,
    custid INTEGER	NOT NULL,
    bookid INTEGER	NOT NULL,
    saleprice INTEGER,
    orderdate DATE,
    PRIMARY KEY (orderid),
    FOREIGN KEY (custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE );

ON DELETE CASCADE: 같이 지워라!

ON DELETE SET NULL

값을 NULL로 두어라.

이터타입

NUMERIC(7,2)
DECIMAL(9,3)
전체 자릿수 M, 소수점이하 자리수 D를 가진 숫자형

ALTER 문

INSERT 문

insert할 때 자신의 테이블에서 값을 가져오는건 불가하다.

UPDATE 문

INSERT INTO 로 문장을 만들어 URL를 만들듯이 텍스트로 만들기

재고를 업데이트하려고 할때,

UPDATE 해당테이블
SET 어떤 값
WHERE 조건

EX. 배송지 변경

해당 테이블의 5번에 해당하는 정보는 하나임.

DELETE 문

SELECT와 유사하다.
해당 조건을 뽑아줘가 아닌 삭제해줘! 임.

DELETE FROM 테이블명
WHERE 조건

drop 한 건은 백업파일이 없다면, 복구할 수 없음.

autocommit은 백업할 수 있음(savepoint)

잘못처리한 sql을 무시하고 돌아올 수 있음.

과제
3장 연습문제(199p)
1,2번 sub 문항
1,2,4번 제외하고 5번~13번 제출방식은 sql에 문제 번호를 주석 달아서(-- 1-5번)
1-1,2,3,4 / 2-1 제외 하고 과제하기
시험을 미리 준비한다고 생각하고 준비하기
시험도 sql문으로 작성함.

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글