[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.
UPDATE
문을 사용한다.UPDATE 문을 사용할 때 실수로 테이블에 있는 모든 행을 업데이트할 수 있으니 매우 주의해야 한다.
UPDATE 문을 사용하려면 특별한 보안 권한이 필요할 수도 있다.
UPDATE를 사용하기 전에 적절한 권한을 가졌는지 확인하자.
1000000005
인 고객의 이메일 주소가 없었지만, 새로운 이메일 주소를 추가하여 그 레코드를 업데이트한다.UPDATE Customers
SET cust_email = 'kim@thetoysotre.com'
WHERE cust_id = 1000000005;
1000000005
인 고객의 cntact
와 email
열을 레코드에 업데이트한다.UPDATE Customers
SET cust_contact = 'Sam Robert',
cust_email = 'sam@toyland.com'
WHERE cust_id = 1000000006;
UPDATE 문에서도 SELECT 문으로 가져온 데이터로 열을 업데이트하기 위해 서브쿼리를 사용할 수 있다.
일부 SQL 실행 환경에서는 UPDATE 문에서 FROM 절을 사용하도록 지원하기도 한다.
FROM 절을 사용하면 다른 테이블에 있는 데이터로 테이블의 열을 업데이트할 수 있다.
UPDATE Customers
SET cust_email = NULL
WHERE cust_id = 1000000005;
DELETE
문을 사용할 수 있다.DELETE를 사용할 때 실수로 테이블에 있는 모든 행을 삭제할 수 있으니 주의해야 한다.
DELETE 문을 사용하려면 특별한 보안 권한이 필요할 수도 있다.
DELETE를 사용하기 전에 적절한 권한을 가졌는지 확인해보자.
Customers
테이블에서 cust_id
가 1000000006
에 해당하는 행을 삭제한다.DELETE FROM Customers
WHERE cust_id = 1000000006;
두 개의 테이블을 조인할 대는 두 테이블 모두에 있는 공통된 필드가 있어야 한다.
하지만 외래 키를 이용하여 DBMS 관계를 설정할 수도 있다.
DBMS는 외래 키를 참조 무결성을 위해 사용한다.
외래 키의 장점은 참조 무결성을 보장하기 위해 관계에 필요한 향을 삭제하지 못하도록 막는다는 점이다.
DELETE 문은 테이블에서 행을 삭제한다.
심지어 테이블에 있는 모든 행을 삭제할 수도 있다.
하지만, DELETE 문은 테이블에 있는 내용을 삭제하는 것이지 테이블 자체는 삭제하지 않는다.
테이블에 있는 모든 행을 삭제하고 싶다면 DELETE 문을 사용하지 말고,
대신 TURN CATE TABLE 문을 사용하자
똑같이 삭제 작업을 하지만 훨씬 더 빠르다.
TURN CATE TABLE 문은 데이터 변경 기록이 남지 않기 때문에 더 빠르게 작동한다.
Vendors
에 있는 vend_state
)와 고객의 주(Customers
에 있는 cust_state
)를 모두 대문자로 업데이트하는 SQL 문을 작성하라.UPDATE Vendors
SET vend_state = UPPER(vend_state)
WHERE vend_country = 'USA';
UPDATE Customers
SET cust_state = UPPER(cust_state);
WHERE cust_country = 'USA';
SELECT *
FROM Customers
WHERE cust_id = 1000000007;
DELETE FROM Customers
WHERE cust_id = 1000000007;