SQL - DML

kailyn·2024년 8월 23일
0

Data Base

목록 보기
11/20

1. DML

  • 데이터 조작언어, 테이블에 값을 삽입하거나 수정하거나 삭제하는(데이터베이스 내의 데이터를 조작하는데 사용하는) SQL의 한 부분이다.

1. INSERT

  • 새로운 행을 추가하는 구문
  • 테이블의 행의 수가 증가
INSERT
	INTO tbl_menu
(
	menu_code
,  menu_name
,  menu_price
,  category_code
,  orderable_status
)
VALUES
(
	NULL
,  '바나나해장국'
,  8500
,  4
,  'Y'
);
-- 참고: Type에는 날짜형(date), 문자형(varchar), 숫자형(int) 있음
-- 컬럼을 명시하면 INSERT 시 데이터의 순서를 바꾸는 것도 가능
-- insert시 컬럼을 적지 않을 경우테이블에서 사용하는 컬럼 순서대로 작성할 것
-- 선생님 추천: 귀찮아도 컬럼 다 적기
  • null 허용 가능한(NULLABLE) 컬럼이나 AUTO_INCREMENT가 있는 컬럼을 제외하고 INSERT하고 싶은 데이터 컬럼을 지정해서 INSERT 가능하다. (default 속성이 있다면 default 값이 들어감)
-- insert시 컬럼을 넣지 않을 경우 컬럼을 넣지 않은 데이터는 'N'값으로 지정된 뒤 insert된다.
INSERT 
  INTO tbl_menu
(
  menu_name, menu_price
, category_code, orderable_status
)
VALUES 
(
  '초콜릿죽', 6500
, 7, 'Y'
);

2. UPDATE

  • 테이블에 기록된 컬럼의 값을 수정하는 구문이다.
  • 테이블의 전체 행 개수는 변화가 없다.
UPDATE tbl_menu
	SET menu_name = '딸기해장국'
	WHERE menu_code = 22;
  • where 절에 subquery 사용 가능하다.(단일행이어야 한다.)

3. DELETE

  • 테이블의 행을 삭제하는 구문이다.

  • 테이블의 행의 개수가 줄어든다.

  • 조건 걸어서 삭제하는 쿼리

delete from tbl_menu
order by tbl_menu
where menu_code = 24;
  • 테이블 전체 삭제하는 쿼리
DELETE FROM tbl_menu;
-- where절을 안넣으면 경고문자 나옴

-- 경고문구 안띄우고 싶다면
DELETE FROM tbl_menu where 1=1;
  • LIMIT을 활용한 행 삭제(알아만 두기)
DELETE FROM tbl_menu
ORDER BY menu_price
LIMIT 2;

3. REPLACE

  • INSERT 시 PRIMARY KEY 또는 UNIQUE KEY가 충돌이 발생된다면 REPLACE를 통해 중복 된 데이터를 덮어 쓸 수 있다.

	INTO tbl_menu 
	VALUES 
	(17, '참기름소주', 5000, 10, 'Y');
-- error나옴
  • REPLACE 이용시
REPLACE 
INTO tbl_menu 
	VALUES 
	(17, '참기름소주', 5000, 10, 'Y');
-- INTO 생략 가능
profile
나는 할 수 있다...!

0개의 댓글