본문 바로가기

Computer Science/SQL

SQL 정리-(5)

  • 데이터 삽입하기 
INSERT를 사용해서 데이터베이스 테이블 행을 삽입

* 완전한 행 삽입하기 
INSERT INTO Customers VALUES ('10000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', NULL, NULL);
테이블 컬럼에 저장되는 데이터는 VALUES절에 쓰면 되는데, 각 컬럼에 값을 반드시 적어야 함 -> 아무 값도 없으면 NULL을 작성 

하지만 이렇게 쿼리문을 작성하면 각 컬럼의 순서를 정확하게 알아야 하므로 오류의 가능성이 큼 

아래와 같이 삽입하고자하는 컬럼명을 명시해주고 각 값을 삽입하는 게 오류의 가능성이 적음 

INSERT INTO Customers (cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_mail)

VALUES ('10000006', '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 ('10000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA');

하지만 지정한 컬럼 명에 대해서는 값을 꼭 넣어야됨. 넣지 않으면 에러 메시지 출력 


* 쿼리 결과 삽입하기 

Insert 문과 Select 구문으로 구성되며 한 테이블에서 고객 리스트를 가져와 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_name, cust_address, cust_city, cust_state, cust_zip, cust_country FROM CustNew;


* 다른 테이블로 복사하기

insert select와 달리 select into는 데이터를 새로운 테이블에 복사 

select into가 데이터를 내보내고, insert select는 데이터를 가져옴 

SELECT * INTO CustCopy FROM Customers;

CustCopy라는 새로운 테이블을 생성 -> Customers 테이블에 있는 내용 전체를 복사 함

CREATE TABLE CustCopy AS SELECT * FROM Customers;


* 데이터 업데이트와 삭제 

데이터 업데이트는 테이블에 있는 특정 행 및 모든 행 업데이트함

업데이트 조건

- 업데이트할 테이블

- 업데이트할 컬럼 명과 값

- 어떤 행이 업데이트되야 할 지 필터 조건 


UPDATE Customers SET cust_email = '~@gmail.com' WHERE cust_id = '10005';

고객 테이블에서 고객 id가 10005인 행을  컬럼 명 cust_email의  '~@gmail.com' 값으로 변경 


* 데이터 삭제 

테이블에서 데이터를 삭제하기 위해 DELECT 문 사용하는데 특정 행을 삭제하거나 모든 행을 삭제할 때 사용 

DELETE FROM Customers WHERE cust_id = '10005';

DELETE는 테이블을 삭제하는 것이 아니라 테이블의 내용을 삭제함 


cf. 외래키 -> 참조 무결성을 위해 사용 





반응형

'Computer Science > SQL' 카테고리의 다른 글

SQL 정리-(4)  (0) 2018.11.28
SQL 정리-(3)  (0) 2018.11.26
SQL 정리-(2)  (0) 2018.11.22
SQL 정리-(1)  (0) 2018.11.22