웹찢남

Database - 5일차 본문

Database

Database - 5일차

harry595 2021. 2. 2. 17:57

INSERT

  • table에 row를 삽입

USE1: INSERT INTO EMPLOYEE

VALUES ('Richard','K','Marnini','1231234','1962-12-11');

USE2: INSERT INTO WORKS_ON_INFO ( Emp_n,Proj_n,per_week)

SELECT E.Lname, P.Pname, W.Hours FROM PROJECT P, WORKS_ON W, EMPLOYEE E WHERE P.Pnumber=W.Pno AND W.Essm=E.Ssn

CREATE

Bulk Loading of tables

USE: CREATE TABLE D5EMPS LIKE EMPLOYEE

(SELECT E.*

FROM EMPLOYEE AS E

WHERE E.Dno=5)

UPDATE

update rows(조건을 만족하는) in table

USE: UPDATE PROJECT

SET Ploc='Bellaite',Dnum=5

WHERE Pnum=10

DELETE

  • Delete rows(조건을 만족하는) in table

USE: DELETE FROM EMPLOYEE

WHERE Lname='Brown';

Reactive Constraints

  • a mechanism that allows a user to specify how to react to a violation of a constraint

USE: FOREIGHN KEY (Profid) REFERENCES Professor(id)

ON DELETE NO ACTION

ON UPDATE CASCADE

NO ACTION

Insertion into A(referring): 새로운 열이 가르킬 B가 없으면 insert reject

Deletion from B(referred): A의x가 B의 y를 가르킬때 y를 못지움

SET NULL

A 테이블이 가르키던 B의 x가 지워지면 NULL이 됨

SET DEFAULT

A테이블이 가르키던 B의 x가 지워지면 y를 가르킴

CASCADE

B의 x를 지우면 A에 x를 가르키던 y가 지워짐

 

ABOUT NULL

NULL = NULL은 성립하지 않는다.

여러 의미가 있기 때문, 모르는 값, 적용할 수 없는 값, 사용할 수 없는 값

→ MYSQL 에는 TRUE, FALSE, UNKNOWN이 있음

SQL은 value가 NULL인지 구별할 수 있음

SELECT Fname

FROM EMPLOYEE

WHERE SSN IS NULL; ( IS NOT NULL)

Nested QUERIES

  • where 문 내에 select from where문이 있는 query

IN 문을 쓸 수 있다 value v가 set V 내에 들어있는지 판단할 경우

 

IN문 즉 COMPARISON을 할 떄 tuple 형식으로 값을 비교 할 수 있다.

WHERE (Pno, Hours) in (SELECT Pno, HOURS

FROM WORKS_ON WHERE Essn='123456789');

in 말고도 다양한게 있는데 연산자를 사용할 수도 있다.

예를 들어 SELECT DISTINCT Pno

FROM EMPLOYEE WHERE SALARY > ALL (SELECT Money FROM WORKS_ON WHERE Essn>123 AND SEX='MALE');

EXIST, UNIQUE function

exist: query의 반환값이 있는지 파악

not exist: 없는지 파악, 둘다 TRUE, FALSE를 반환함

'Database' 카테고리의 다른 글

Database - 7일차  (0) 2021.02.02
Database - 6일차  (0) 2021.02.02
동읍면 DB 만들기  (0) 2020.11.11
Database - 4일차  (0) 2020.10.26
Database - 3일차  (0) 2020.10.07
Comments