MySQL DML (INSERT, UPDATE, DELETE)

MySQL INSERT(등록), UPDATE(수정), DELETE(삭제)

Posted by iheese on March 23, 2022 · 4 mins read

DML(Data Manipulation Language,데이터 조작어)

  • INSERT : 등록
    • INSERT INTO 테이블명(필드1, 필드2, ...) VALUES(필드1의 값, 필드2의 값, ...);
    • INSERT INTO 테이블명 VALUES ( 필드1의 값, 필드2의 값, ...);
    • Ex)
      • insert into role(role_id, description) values (200, 'CEO'); : role 테이블에 role_id는 200, description은 CEO로 데이터를 등록해주세요
      • insert into role values (500, 'analyst'); : role 테이블에 role_id는 500, description은 analyst로 데이터를 등록해주세요


  • UPDATE : 수정
    • UPDATE 테이블명 SET 필드1=필드1의 값, 필드2=필드2의 값, ... WHERE 조건식;
    • WHERE 조건식을 주지 않으면 모든 데이터가 수정되니 주의해야 한다.
    • Ex)
      • update role set description='CTO' where role_id = 200; : role_id가 200일 경우 description을 CTO로 수정해주세요


  • DELETE : 삭제
    • DELETE FROM 테이블명 WHERE 조건식;
    • 조건식을 주지 않으면 모든 데이터가 삭제되니 주의해야 한다.
    • Ex)
      • delete from role where role_id = 200; : role_id가 200인 데이터를 삭제해주세요


DDL((Data Definition Language, 데이터 정의어)

  • CREATE : 테이블 생성
    • CREATE TABLE 테이블명( 필드명1 타입 [NULL| NOT NULL][DEFAULT][AUTO_INCREMENT],필드명2 타입 [NULL| NOT NULL][DEFAULT][AUTO_INCREMENT], ... , PRIMARY KEY(필드명));
    • NULL NOT NULL : 속성값의 빈 값 허용 여부
    • DEFAULT : DEFAUTL 키워드와 함께 입력하지 않았을 때 기본값을 지정
    • AUTO_INCREMENT : 입력하지 않고 자동으로 1씩 증가하는 번호 설정
    • UNIQUE : 해당 필드는 서로 다른 값을 가지도록 지정
    • PRIMARY KEY : NOT NULL, UNIQUE 제약 조건의 특징 모두 지정
    • FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 지정
    • Ex)
      • create table employee2(empno integer not null primary key, name varchar(10), job varchar(9), boss integer, hiredate varchar(12), salary decimal(7, 2), comm decimal(7, 2), deptno integer); : 필드명이 empno(정수, null값이 없게, 모든 값이 다르게), name(가변길이), job(가변길이), boss(정수), hiredate(가변길이), salary(고정소수 Ex:99999.99), comm(고정소수), deptno(정수) 인 employee2 테이블을 만들어주세요


  • ALTER : 테이블 수정
    • ALTER TABLE 테이블명 ADD 필드명 타입[NULL | NOT NULL][DEFAULT][AUTO_INCREMENT]; : 컬럼 추가
    • Ex)
      • alter table employee2 add birthdate varchar(12); : employee2 테이블에 birthdate(가변길이) 라는 필드를 추가해주세요
    • ALTER TABLE 테이블명 DROP 필드명; : 컬럼 삭제
    • Ex)
      • alter table employee2 drop birthdate; : employee2 테이블에서 birthdate 필드를 삭제해주세요
    • ALTER TABLE 테이블명 CHANGE 필드명 새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT]; : 컬럼의 이름과 속성 재정의
    • Ex)
      • alter table employee2 change deptno dept_no int(11); : employee2 테이블의 deptno 필드를 이름을 dept_no로, 속성은 int(11)로 재정의해주세요
    • ALTER TABLE 테이블명 RENAME 변경이름 : 테이블 이름 변경
    • Ex)
      • alter table employee2 rename employees; : employee2 라는 테이블의 이름을 employees로 바꿔주세요


  • DROP : 테이블 삭제
    • DROP TABLE 테이블이름;
    • 제약 조건이 있을 경우 삭제되지 않을 수 있으며 테이블을 생성한 반대 순서로 삭제해야 한다.
    • Ex)
      • drop table employee2; : employee2 테이블을 삭제해주세요


Reference: