CS/DB

[DB] 기본 Query

goliot 2023. 9. 12. 14:16
반응형

#SELECT-FROM-WHERE

-기본 구조:

SELECT <attribute list>

FROM <table list>

WHERE <condition>

 

-예제:

*이름이 John B.Smith인 직원의 생일과 주소를 검색

SELECT Bdate, Address

FROM EMPLOYEE

WHERE Fname='John' AND Minit='B' AND Lname='Smith'

 

-예제2:

*Research 부서에서 일하는 직원들의 이름과 주소

SELECT Fname, Lname, Address

FROM EMPLOYEE, DEPARTMENT
WHERE Dname='Research' AND DEPARTMENT.Dnumber=EMPLOYEE.Dno

-> Dnumber와 Dno는 사실상 같은 값

-> 만약 두 값이 각각 테이블에서 같은 이름으로 저장되었다면 앞에 테이블명을 명시하는 것이 필수
-> 해당 경우에는 생략 가능

 

>>> 만약 Dnumber=Dno 대신 Ssn=Mgr_ssn 이 주어졌다면?

>>> 해당 부서의 모든 직원이 아닌 관리자의 정보만 출력될것 -> 전혀 달라진다

 

★ FROM 절에서 테이블 두개를 선언하였으므로, 두 테이블의 모든 정보를 갖고 시작함 -> Dnumber, Dno가 각각 어디 테이블인지도 안다는 의미

★이런 JOIN 컨디션이 들어간 쿼리의 경우 PK, FK 관계인지 반드시 확인 -> 아니라면 대부분 오답

★WHERE절에 들어간 join condition이 PK, FK관계인지 먼저 확인하자

 

#INSERT INTO문

- SELECT-FROM-WHERE 문의 검색 결과를 테이블에 집어 넣는것

INSERT INTO 테이블명

SELECT

FROM

WHERE 형

★INSERT INTO, DELET FROM, UPDATE는 반드시 한 번에 한 테이블을 대상으로만 사용 가능

#DELETE

DELETE FROM 테이블명

WHERE 조건

-> 해당 테이블에서 검색 결과를 삭제

 

#UPDATE

UPDATE 테이블명

SET 갱신 후 내용

WHERE 조건

 

반응형