INSERT 문
사용형식
INSERT INTO 테이블명 [(컬럼1,컬럼2, ...)] VALUES (값1,값2, ...);
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (1004,'김태희','SALESMAN',7698,SYSDATE,2000,1000,30);
새로운 사원 데이터를 인서트하고 있다.
테이블명 다음에 나오는 컬럼 리스트가 구조에 맞게 순서대로 모두 선택되야 하는 경우는 생략 가능하다.
NUMBER 형의 컬럼 값에는 ''를 생략할 수 있다.
SYSDATE 는 오라클에서 시스템이 저장하는 현재 날짜 데이터를 구할 때 사용한다.
INSERT INTO EMP VALUES (2002,'박지성','SALESMAN',7698,SYSDATE,1800,1200,30);
사원번호는 기본키로 설정되어 있다.
따라서 사원번호가 같은 사원은 테이블에 존재할 수 없다.
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO) VALUES (1203,'김성근','MANAGER',7839,SYSDATE,3000,30);
컬럼리스트에 COMM 이 빠졌고 VALUES 에도 해당 컬럼에 대한 값이 없다.
이러면 COMM 컬럼값은 NULL 이 된다.
이것이 컬럼에 NULL 을 입력하는 방법이다.
UPDATE 문
사용형식
UPDATE 테이블 SET 컬럼1='값1', 컬럼2='값2', ... [WHERE 조건]
SET : UPDATE 구문과 함께 사용되며, 해당 테이블의 특정 컬럼에 값을 변경시키고자 할 때 사용한다.
변경시키고자 하는 컬럼 다음에 = 으로 값을 대응시킨다.
컬럼1 : 변경될 컬럼명
값1 : 변경될 컬럼에 대응되는 실제 변경값이다.
이 때 사용되는 값으로는 숫자나 문자와 같은 실제값일 수도 있고, 연산 가능한 컬럼과 연산자가 결함된 형태일 수도 있다.
즉, 변경할 컬럼의 데이터 형식이 NUMBER 형인 경우에 덧셉 연산자와 같은 연산자가 결합된 산술식의 형태가 있을 수 있다.
[WHERE 조건]: 조건을 주어 원하는 컬럼의 값을 변경할 때 사용한다.
UPDATE 문에서 WhERE 조건을 생략하면 해당 테이블에 존재하는 모든 레코드가 지정된 값으로 변경된다.
사원테이블에서 박지성의 월급여를 2800 으로 변경
UPDATE EMP SET SAL=2800 WHERE ENAME='박지성';
사원테이블에서 김태희의 월급여를 300 만큼 인상하고 COMM 은 500 으로 변경
UPDATE EMP SET SAL=SAL + 300,COMM=500 WHERE ENAME='김태희';
지금까지의 INSERT 문과 UPDATE 문을 영구적인 데이터로 관리하기 위해서는 COMMIT; 를 실행해야 한다.
COMMIT;
DELETE 문
사용형식
DELETE FROM 테이블명 [Where 조건]
DELETE 문에서 WHERE 조건을 주지 않으면 테이블에 있는 모든 레코드를 삭제된다.
사원테이블에서 김태희,박지성,김성근을 삭제
DELETE FROM EMP
WHERE ENAME IN ('김태희','박지성','김성근');
명함관리
자바 기초에서 실습했던 명함관리를 오라클과 연동하는 프로그램으로 수정하기 위해 다음과 같은 테이블을 생성한다. 생성방법은 아래를 복사해서 SQL*PLUS 에서 실행하면 된다.
create table namecard ( no number, -- 번호(primary key) name varchar2(10) NOT NULL, -- 이름 company varchar2(20), -- 회사명 title varchar2(30), -- 직함 mobile varchar2(20) NOT NULL, -- 손전화 phone varchar2(20), -- 사무실전화 url varchar2(30), -- 웹사이트 주소 fax varchar2(20), -- 팩스 email varchar2(30), -- 이메일 address varchar2(60), -- 회사주소 mdate date, -- 만난 날짜 memo varchar2(500), -- 메모 constraint namecard_no_pk primary key(no) ) / create sequence seq_namecard_no start with 1 increment by 1 /
시퀀스는 오라클에서 사용하는 자동 번호 발생기라고 이해하면 된다.
아래는 우리가 사용할 인서트 문의 예이다.
여기서 시퀀스로부터 번호를 발생하는 방법과 DATE 형의 컬럼에 값을 저장하는 방법을 알 수 있을 것이다.
insert into namecard values
(
seq_namecard_no.nextval,
'김종훈',
'자바스쿨',
'대표',
'010-7777-7777',
'031-3333-3333',
'www.java-school.net',
'031-8888-8888',
'kimchonghun@naver.com',
'경기도 성남시 분당구 수내동',
to_date('2011/01/05','YYYY/MM/DD'),
'자바강의건으로 종로에서 오후2시경'
);
- 다음 : 오라클 JDBC 테스트
- 이전 : SQL 연습- SELECT 문
