SQL을 접하게 되면 흔히 듣는 단어가 있다.
바로 'CRUD'이다!
(다소 짧은 인트로.. 하지만 개발을 하게 되면 정말 자주 쓰게 되는 용어이다.
자주 쓴다는 건 그만큼 중요하다는 의미일 것이다.)
오늘은 그 중에서도 CRUD와 밀접한 관련이 있는
데이터 조작어(DML)에 대해 다뤄보겠다.
select의 경우는 다룰 내용이 좀 더 있어서 다른 글에 정리해보려 한다.
튜플 삽입 명령어 : insert
insert into 테이블명 values( .... );
예) 테이블 aaa에 튜플 3개를 삽입
유의할 점은,
1. varcahr2가 속성인 컬럼에는 문자열을 삽입해야하므로 값의 앞뒤에 '를 입력한다.
2. 각 컬럼의 값을 구분하기 위해 ,를 붙여준다.
3. 컬럼의 순서에 맞게 해당 값을 입력해야 한다.
insert를 할 때는 해당 컬럼의 속성에 근거해서
작은 따옴표(') 표시나 콤마(,) 입력, 입력순서, 속성에 맞는 입력값을 부여해야
정상적으로 튜플이 삽입된다.
위에서는 속성이 문자열인 경우만 다뤘는데,
그렇다면 다른 속성일 때는 어떨까?
만약 컬럼의 속성이 숫자(number나 int 등)라면 >> age number(2)
age컬럼의 순서에 맞게 해당 숫자값을 작은 따옴표 표시 없이 입력한다.
>> insert into table명 values( ... , 20, ...);
*** 최대 2바이트까지 입력이 가능하므로 2자리까지 삽입을 허용한다는 점도 확인하자!
(0~99까지는 삽입가능하지만, 100부터는 안된다는 말이다.)
timestamp와 같이 날짜/시간 속성인 경우에는
보통 default sysdate와 함께 테이블을 생성할 때 기본값을 부여한다.
>> wdate timestamp default sysdate
이 경우에 삽입 시 기본값이 들어가도록 하려면 wdate컬럼의 순서에 맞게
해당 자리에 default를 입력한다.
>> insert into table명 values( ... , defalut, ...);
*** 꼭 날짜 속성이 아니더라도 default값이 삽입되려면 default값을 입력하면 된다.
시퀀스 값을 삽입하는 경우를 설명하면서
앞서 언급했던 내용을 한 번에 살펴볼 수 있는 예시를 다뤄보고자 한다.
예를 들어 goods라는 테이블을 아래와 같이 생성했다고 가정하자.
create table goods (
no number(3) primary key,
name varchar2(5),
cnt number(3) check (ct between 1 and 100),
type varchar2(4) check (type=' 일반' or type='주의'),
wdate timestamp default sysdate
);
테이블 goods 에 튜플을 삽입하려면 아래와 같이 입력할 수 있다.
*** 물론 시퀀스에 해당하는 값을 테이블에 삽입하려면 그 전에 시퀀스를 생성해야 한다!
insert into goods values (goods1_seq.nextval,'가나다라마',1,'일반',default) ;
insert into 테이블명 values ( 컬럼 순서대로 값 입력);
insert into goods (no, name, cnt, type) values (goods1_seq.nextval,'가나다라마',1,'일반') ;
참고) goods - 테이블명 / no, name, cnt, type - 값을 삽입할 컬럼명
튜플 수정 명령어 : update
* 특정 컬럼의 값을 수정 : update 테이블명 set 컬럼명 = '수정값' where 컬럼명 = ?;
update goods set name = '가나다' where name = '가나다라마';
*** 컬럼의 속성을 변경하려면 update가 아니라 alter를 사용해야 한다.
delete from goods;
delete from goods where name = '가나다라마';
*** where 절을 사용해서 특정 튜플만 삭제하도록 처리할 수도 있다.
'DB > SQL - Oracle' 카테고리의 다른 글
[SQL] DML(데이터 조작어) - select (0) | 2024.02.02 |
---|---|
[SQL] TCL(트랜잭션 제어어) - commit, rollback, checkpoint(=savepoint) (0) | 2024.02.02 |
[SQL] DDL(데이터 정의어) - create, drop (0) | 2024.02.02 |
[SQL] 이상현상(Anomaly) + 키 예제 (1) | 2024.02.01 |
[SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키 (1) | 2024.02.01 |