공부일기/부스트코스

웹 백엔드 - 1. SQL & JDBC 프로그래밍(2)

Youngbin Kim 2021. 1. 2. 15:21

INSERT문

기본 문형

insert into 테이블명(필드1, 필드2, 필드3, 필드4 ...)
    values (필드1의 값, 필드2의 값, 필드3의 값, 필드4의 값 ...)

insert into 테이블명
    values (필드1의 값, 필드2의 값, 필드3의 값, 필드4의 값 ...)
  • 필드명을 지정해주는 방식은 디폴트 값이 세팅되는 필드는 생략할 수 있다.
  • 필드명을 지정해주는 방식은 추후, 필드가 추가/변경/수정되는 변경에 유연하게 대처 가능하다.
  • 필드명을 생략했을 경우에는 모든 필드 값을 반드시 입력해야 한다. 
  • 컬럼명을 나열해 원하는 컬럼에 값 입력이 가능하지만, NOTNULL조건이나 PRIMARY키를 가진 컬럼의 경우 반드시 컬럼을 나열해 값을 입력해야한다.

 

 

 

예) role 테이블에 role_id는 200, description에는 'CEO'로 한건의 데이터를 저장하시오.

 

insert into를 이용해 데이터를 삽입했다.
200, CEO가 추가된 것을 확인할 수 있다.

 

 

update문

기본문형

update 테이블명
    set 필드1=필드1의 값, 필드2=필드2의 값, 필드3=필드3의 값 ...
    where 조건식
  • 조건식을 통해 특정 row만 변경가능하다.
  • 조건식을 주지 않으면 전체 로우가 영향을 미치니 조심해서 사용하도록 한다.

 

 

예) role테이블에 role_id가 200일 경우 description을 'CTO'로 수정하시오.

 

 

 

delete문

기본 문형

delete
    from 테이블명
    where 조건식
  • 조건식을 통해 특정 row만 삭제할 수 있다.
  • 조건식을 주지 않으면 전체 로우가 영향을 미치니 조심해서 사용하도록 한다.

 

 

예) role 테이블에서 role_id가 200인 row를 삭제하시오.

 

 

 

 

 

DDL(Data definition language)

테이블을 정의하기 위해 테이블에 어떤 필드를 정의해야 하고, 어떤 테이터 타입을 사용하는지 알기 위해 테이터 타입을 정리한 표를 첨부한다.

MYSQL 데이터타입1/ 이미지 출처: https://www.boostcourse.org/web326/lecture/58936
MYSQL 데이터타입2/ 이미지 출처: https://www.boostcourse.org/web326/lecture/58936

 

 

create

기본 문형

create table 테이블명(
        필드명1 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT],
        필드명2 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT],
        필드명3 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT]
        ...
        PRIMARY KEY(필드명)
        );
  • 데이터 형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정한다.
  • DEFAULT 키워드와 함께 입력하지 않았을 때의 초기값을 지정할 수 있다.
  • 입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT

 

 

예) employee 와 같은 구조를 가진 employee2 테이블을 생성하라.

 

 

 

 

예) 책 제목과, 가격, isbn 필드를 지닌 테이블을 생성하라.

 

 

 

 

alter

기본 문형

alter table 테이블명
        add 필드명 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT]; // 컬럼 추가

alter table 테이블명
        drop 필드명; // 컬럼 삭제

alter table 테이블명
        change 필드명 새필드명 타입 [NULL | NOT NULL] [DEFAULT] [AUTO_INCREMENT]; // 컬럼 수정

alter table 테이블명 rename 변경할 이름

 

 

예) employee2 테이블에 생일(birthdate) 칼럼을 varchar(12) 형식으로 추가하시오.

 

 

 

예) book 테이블에 isbn 컬럼을 삭제하고, author 컬럼을 varchar(20) 형식으로 추가하시오.

 

 

 

 

예) employee2 테이블의 부서번호(deptno)를 dept_no로 수정하고, giredate를 hiredate로 수정하시오.

 

 

 

예) employee2 테이블의 이름을 employee3로 변경하시오.

 

 

 

 

테이블 삭제

drop table 테이블명;

제약조건이 있는 경우(fOREIGN KEY) drop table 명령으로 테이블이 삭제되지 않을 수 있다. 이런 경우 테이블을 생성한 반대 순서로 삭제해야 한다.

 

 

예) employee3 테이블을 삭제하시오.