웹 백엔드 - 1. SQL & JDBC 프로그래밍(2)
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'로 한건의 데이터를 저장하시오.
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)
테이블을 정의하기 위해 테이블에 어떤 필드를 정의해야 하고, 어떤 테이터 타입을 사용하는지 알기 위해 테이터 타입을 정리한 표를 첨부한다.
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 테이블을 삭제하시오.