
export 가능
excel를 다룰 때, 필터 기능을 사용하곤 하는데
엑셀의 컬럼 custid에 필터를 적용하게되면 그룹별로 묶어줌.
groupby가 필터와 동일한 기능을 수행함.
이렇게 결과가 나오면 집계함수를 사용함.
sum, max, count가 집계함수에 해당.
group으로 묶인 상태에서 조건을 따짐 => having 절
각 그룹에 대해 HAVING 조건을 따진다.
COUNT(*) >= 2
전체 로우 카운트가 2보다 커?
즉, GROUP BY는 해당 컬럼에서 조건으로 나누고 나눈 그룹에서 조건을 따지는 것!
HAVING은 GROUPBY 뒤에 나와야!(GROUPBY에 종속됨)
테이블 구성, 속성과 속성에 관한 제약 정의, 기본키 및 외래키를 정의하는 명령이다.
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를 가진 숫자형
insert할 때 자신의 테이블에서 값을 가져오는건 불가하다.
INSERT INTO 로 문장을 만들어 URL를 만들듯이 텍스트로 만들기
재고를 업데이트하려고 할때,
UPDATE 해당테이블
SET 어떤 값
WHERE 조건
EX. 배송지 변경
해당 테이블의 5번에 해당하는 정보는 하나임.
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문으로 작성함.