DML

Hyuntae Jung·2022년 7월 26일
0

MS SQL

목록 보기
21/41
post-thumbnail
post-custom-banner

1. DML(Data Manipulation Language)

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

2. INSERT 형식

INSERT INTO 테이블명(칼럼1,칼럼2,칼럼3,...) VALUES(데이터1,데이터2,데이터3,...)

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver16

3. INSERT INTO

SELECT *
  FROM department
  INSERT INTO department(deptNo, depName, location)  VALUES (50, '건설부', '수원');

  INSERT department(location,depName,deptNo)  VALUES ('안산','생산부',80);

SELECT *
  FROM department

INSERT INTO에서 INSERT만 입력해도 동일한 기능을 한다.

INSERT department VALUES(90, '회계부', '광주');

날짜,문자 형식의 데이터를 입력할 때는 홑 따옴표(' ')를 이용한다.
필드명 생략은 가능하나, 모든 필드의 값을 입력해야한다. VALUES 값의 입력순서는 테이블 생성시 컬럼의 순서와 동일하게 입력한다.

4. NULL 값 입력

  • 암시적 방법 : 컬럼을 생략하고 입력한다.
  • 명시적 방법 : VALUES 리스트에 NULL을 입력한다.
INSERT department(deptNo, depName) VALUES(100,'총무부');
INSERT department VALUES(101,'관리부',NULL);
INSERT department VALUES(102, '기획부', '');

NULL과 공백문자는 다르다, ' '로 입력한다.

5. 서브쿼리로 데이터 생성하기

CREATE TABLE department2(
	deptNo INT, 
	deptName NVARCHAR(20),
	location NCHAR(20)
);

6. UPDATE

: 테이블의 데이터를 수정하기 위해 사용하는 DML

UPDATE 테이블명
   SET 컬럼명 = val_1, 컬럼명2 = val_2, ...
WHERE 수정조건;
  • WHERE절이 있는 경우: 특정행의 데이터를 수정하겠다는 의미
  • WHERE절이 없는 경우: 테이블에 있는 모든 행의 데이터를 수정하겠다는 의미

7. 테이블 복사

SELECT *
	INTO 새로운 테이블명  
  FROM 기존테이블
SELECT *
	INTO employee01 
  FROM employee;

UPDATE, DELETE 등 테스트하기 위해서 작업용 테이블을 만들 때, 자주 사용하는 기능이다.

8. UPDATE

UPDATE employee01
	 SET deptNo = 30;

UPDATE employee01
	 SET hireDate = GETDATE();
UPDATE employee01
	  SET empName = '김장비'
WHERE empName = '김관우';

8.1. INTO로 작업용 테이블 생성

SELECT *
	INTO employee02
  FROM employee;

SELECT *
  FROM employee02

8.2. SET

UPDATE employee02
	  SET salary = salary*1.1;

UPDATE employee02
	  SET salary = salary*1.1
WHERE salary <= 500;


UPDATE employee02
	  SET hireDate = GETDATE()
WHERE hireDate LIKE '%2007%';

8.3. 복수 컬럼 수정

UPDATE employee02
	  SET job ='과장', deptNo = '20'
WHERE empName = '장유비';

장유비가 진급했을 경우 위와 같은 쿼리로 수정할 수 있다.

9. DELETE FROM

: 데이터를 삭제하는 DML이다. (FROM 생략 가능하며 테이블의 구조를 지우는 것이 아니다.)

  • WHERE절이 없는 경우 : 모든 데이터를 삭제
  • WHERE절이 있는 경우 : 특정 행의 데이터를 삭제
DELETE FROM department03;

DELETE department2
WHERE deptNo = 40;
DELETE employee02
WHERE deptNo = (SELECT deptNo
							  FROM department
							WHERE depName = '영업부'
							);

SELECT *
  FROM employee02;

서브쿼리를 이용해 데이터를 효과적으로 수정할 수 있다.

강의: ms sql 2014 제대로 배우기 1

post-custom-banner

0개의 댓글