[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.
INSERT
문은 데이터베이스 테이블에 행을 삽입하기 위해 사용한다.INSERT INTO Customers
VALUES (1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA',
NULL,
NULL);
일부 SQL 실행 환경에서는 INSERT 문 뒤에 나오는 INTO를 써도 되고 안 써도 된다. 하지만, 무조건 이 키워드를 쓰는 것이 좋다. 그래야 이 SQL 코드를 다른 DBMS 에서도 문제 없이 실행할 수 있다.
위에서 사용한 INSERT 문은 문법은 간단하지만 안전한 방법이 아니기 때문에 기피해야 하는 방식이다.
이 SQL 문은 테이블에 정의된 열의 순서에 전적으로 의존하고 있기 때문에, 이와 같은 SQL 문을 작성하려면 열의 순서를 정확히 알고 있어야 한다.
즉, 이후에 테이블의 구성이 변하게 된다면 문제가 발생할 수 있다는 것이다.
INSERT 문을 더 안전하게 사용할 수 있는 방법은 아래와 같다.
INSERT INTO Customers (cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES (1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA',
NULL,
NULL);
INSERT INTO Customers (cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
VALUES (1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA');
CustNew
테이블에 있는 고객 정보를 Customers
테이블로 가져온다.INSERT INTO Customers (cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
SELECT cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
FROM CustNew;
CREATE SELECT
문을 사용하는 것이다.CREATE TABLE CustCopy AS SELECT * FROM Customers;
SELECT *
FROM CustCopy;
Customers
테이블에 만들어 보자.INSERT INTO Customers (cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES (1000000007,
'KIM S H',
'165-4',
'SUWON',
'SW',
'11111',
'KR',
NULL,
'isayaksh@gmail.com');
Orders
와 OrderItems
테이블의 백업용 사본을 만들어라.CREATE TABLE OrderCopy AS SELECT * FROM Orders;
SELECT *
FROM OrderCopy;
CREATE TABLE OrderItemCopy AS SELECT * FROM OrderItems;
SELECT *
FROM OrderItemCopy;