11.MySql(scott)-기본문법 - DML(insert,update,delete)

JungSik Heo·2024년 12월 21일
0

MySQL

목록 보기
22/33

1.DML 이란?

  • 테이블 내의 데이터를 입력,수정,삭제

1)INSERT : 테이블에 데이터를 저장할 때 사용

  • 한 번에 하나의 행만 입력할 수 있다
  • INSERT 절에 명시되는 칼럼의 갯수와 VALUES 절의 갯수는 일치해야 한다
  • 모든 칼럼의 내용을 다 저장할 때는 칼럼명은 생략 가능하다
  • 문자, 날짜는 반드시 작은따옴표 쓰기
  • commit을 반드시 입력해야 한다
INSERT INTO dept(deptno, dname, loc) VALUES(90, '인사과', '서울');
-- 원래 테이블의 순서와 달라도 상관없음
INSERT INTO dept(loc, dname, deptno) VALUES('서울', '인사과', 70); 
INSERT INTO dept VALUES(80, '인사과', '서울');
  • 데이터에 null값도 입력 가능
    • 묵시적 방법: 컬럼명과 값 생략
      • INTO 절과 VAULE 절 둘다 생략해야됨 (하나만 생략하면 에러)
  • 명시적 방법: 값에 null 키워드를 적거나 빈 문자열(”) 사용
    • null을 직접 쓰는것을 권장
      • not null 제약조건이 지정된 컬럼은 불가 (ex. Primary Key)
-- 묵시적
INSERT INTO dept(deptno, dname) VALUES(91, '인사과');
-- 명시적
INSERT INTO dept VALUES(92, '인사과', null);
INSERT INTO dept VALUES(92, '인사과', '');

특수값 입력 가능 (USER, SYSDATE)

INSERT INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES(9000, USER, '연구원', 7839, SYSDATE, 5000, NULL, 90);

특정 데이터타입 입력(RR/MM/DD, TO_DATE())

INSERT INTO emp
VALUES(9001, '홍길동', 'MANAGER', 7839, '2000/01/01', 2000, NULL, 30);
-- 날짜에 TO_DATE('2000-01-01', 'YYYY/MM/DD') 해도 됨

2) UPDATE

  • UPDATE: 테이블에 저장된 행들을 변경함

    • 한번에 여러행 동시변경 가능
    • WHERE조건을 넣지 않으면 모든 행이 변경됨

  • 서브쿼리로 여러 컬럼 변경가능

3) DELETE

  • DELETE: 테이블에 저장된 행들을 삭제함
    • 한번에 여러행 삭제 가능
    • WHERE조건을 넣지 않으면 모든 행이 삭제됨

4)서브쿼리로 여러 행 삭제 가능

https://cheeseb.github.io/mysql/sql-dml/

profile
쿵스보이(얼짱뮤지션)

0개의 댓글