- edit 실행 ( 소스코드 작성)
sql > edit 경로/파일명.sql
sql > ed 경로/파일명.sql
2. edit 작성한 파일 실행
sql > @경로/파일명.sql
Oracle 주석
- 부연설명, 쿼리의 실행을 막을 때
- 한 줄 주석 : — —
- 여러 줄 주석 : /* */
insert 문
- 생성된 테이블에 레코드를 삽입할 때 사용
- 레코드는 기존의 데이터 사이에 들어갈 수 있다
- 조작어 (DML : Data Manipulation Language)
- 문법)
-모든 컬럼에 값을 추가하는 경우(테이블의 컬럼 순서에 맞게 값 구성해야 함)
insert into 테이블명 values(값,,,,); -숫자(number) :값을 넣으면 됨( 11,20,3.17 )/ -문자열(char,varchar2): ’로 묶어서 값을 넣으면 됨( ‘A’. ‘ABC’, ‘가나다’ )/-날짜(date): 현재날짜를 입력.( sysdate ) 현재날짜가 아닌 날짜 입력( ‘날짜형식’ )
예) test라는 테이블에 값 추가
insert into test values(1, ‘박기범’, 20, sysdate);
- 특정 컬럼에만 값을 추가하는 경우 (권장)
(테이블의 컬럼 순서에 상관없이 값을 추가할 수 있다)
누락된 컬럼에는 null(숫자도 문자열도 아닌 사용불가한 값. 사용자에겐 아무것도 보이지 않는다. )이 입력된다 . null을 연산하면 null이 발생한다.
insert into 테이블명( 컬럼명,,,, ) values( 값,,,, );
-컬럼의 순서는 테이블에 정의된 컬럼의 순서와 상관없다
-값은 앞에 정의한 컬럼의 순서대로 추가된다
예) test라는 테이블에 번호와 나이, 이름 추가
insert into test(num, age, name) values(1, 24, ‘김르르’);
Transaction
- DBMS의 작업 단위(SQL문으로 이루어짐)
- SQL문 하나로 이루어지는 경우와 여러개의 SQL문이 복합적으로 이루어지는 경우가 존재함
- 대상쿼리문: DML중 insert, update, delete만 해당
- 작업이 실패하면, 이전상태로 되돌릴 수 있다.(transaction 취소)
- commit : 메모리의 작업을 HDD에 기록하고, 테이블을 사용하는 모든 접속자에게 변경사항을 통지하는 작업 (Transaction이 완료되었음)
-commit된 데이터는 작업취소 (rollback)가 되지 않는다
-하나 또는 여러개의 쿼리가 합쳐져서 Transaction을 구성할 수 있다
사용법) commit;
select
- 테이블에서 필요한 컬럼을 검색할 때 사용 (모든 레코드의 원하는 컬럼을 조회할 때 사용)
- 데이터 조작어 (DML)
- 모든 레코드를 검색
문법)
컬럼명에 *을 사용하면 모든 컬럼을 조회할 수 있다
예) test 테이블에서 모든 레코드의 입력일 만 조회
select input_date
from test;
update
- 테이블의 특정 레코드의 컬럼 값을 변경할 때
- DML
- 조건에 부합되는 레코드만 변경된다.(0~n건의 레코드가 변경된다)
- transaction 대상쿼리(쿼리문 수행 후 commit, rollback 수행해야한다)
구문)
update 테이블명
set 컬럼명 = 변경할 값, 컬럼명 = 변경할 값,,,
where 컬럼명= 기준값;
- test테이블에서 번호가 1번인 레코드의 이름을 ‘LH’로 변경
update test
set name=’LH’
where num=1;
set 뒤에 나오는 = 은 대입연산자 / where절에 나오는 =은 관계연산자
delete
- 테이블에서 레코드를 삭제할 때
- DML
- transaction 대상 쿼리
- truncate 보다 속도가 느리다
문법)
- 테이블의 모든 레코드를 삭제
delete from 테이블명;
- 테이블에서 특정 레코드를 삭제하려면 where절을 사용한다
delete from 테이블명
where 컬럼명=기준값;
예) test테이블에서 번호가 1번인 레코드를 삭제
delete from test
where num=1;
truncate
- 테이블을 절삭할 때 사용
- delete보다 삭제하는 속도 빠름
- transaction대상쿼리가 아니므로 commit과 rollback이 동작하지 않음
- where절이 없으므로 특정테이블의 모든 레코드를 절삭한다
문법)
truncate table 테이블명
drop
- DDL (생성된 모든 객체를 삭제할 때 사용)
- 테이블 자체를 삭제할 때 사용
- Oracle 11g부터는 삭제된 테이블이 휴지통으로 들어감
- 휴지통으로 들어간 테이블은 show 명령어(단, SQLPlus 문장은 tool에서 지원하면 사용할 수 있다)
- 테이블에 설정된 constraint까지 삭제된다
문법)
drop table 테이블명
*휴지통보기
-show recyclebin
*휴지통 비우기
-purge recyclebin
*휴지통에 있는 테이블 살리기
-flashback table 테이블명 to before drop;
휴지통 보기 했을 때 보이는 Original name을 사용
같은 이름의 테이블이 생성되어있다면 휴지통에서 복구할 수 없다