oracle SQL*PLUS command

DB & SQL 2015. 6. 23. 17:31

SQL*Plus 편집 명령

--버퍼에 저장된 모든 SQL문 또는 검색한 라인의 SQL문을 출력
SQL> LIST
	--단축명령
SQL> L

--SQL문을 보여주지 않고 바로 실행
SQL> /

--버퍼에 저장된 SQL문을 보여주고 실행
SQL> RUN
	--단축명령
SQL> R


SQL*Plus 파일 명령

--파일의 내용을 vi편집기나 notepad와 같은 에디터로 읽어 편집
SQL> EDIT
	--단축명령
SQL> ED

--오라클을 종료하지 않고 OS명령을 수행
	--EXIT하면 다시 오라클로 복귀함
SQL> HOST

--SQL버퍼 내의 현재 내용을  실제 파일로 저장
SQL> SAVE

--SQL 파일에 저장된 내용을 실행
SQL> @

--오라클 화면을 갈무리하여 파일로 저장
SQL> SPOOL

--파일의 내용을 SQL 버퍼로 읽어들임
SQL> GET

--오라클을 종료
SQL> EXIT


사용자 생성 및 권한

모든 SQL 문장의 끝은 ";"로 끝나야 하며 대문자 사용을 권장함

--사용자 생성
SQL> CREATE USER user_name IDENTIFIED BY password;

--생성한 사용자에게 role(권한) 적용
SQL> GRANT  CONNECT, RESOURCE to user_name;

--생성한 사용자로 접속한 계정 전환
SQL> CONN user_name/password;

--생성한 사용자 정보 보기(접속 계정 전환 후에)
SQL> SHOW USER;


DDL(Data Definition Language)

--테이블 생성
SQL> CREATE TABLE table_name(
-- column_name  data_type  option,
	id VARCHAR2(20) PRIMARY KEY, 
	name VARCHAR2(20) NOT NULL, 
	address VARCHAR2(50) UNIQUE, 
	phone VARCHAR2(20)
);

--테이블 목록 출력
SQL> SELECT * FROM TAB;

--테이블 구조 출력
SQL> DESC[RIBE] table_name;

--테이블 명 변경
SQL> ALTER TABLE table_name RENAME TO new_table_name;
	--또는
SQL> RENAME table_name TO new_table_name; 

--테이블에 새로운 컬럼 추가 ( add 연산자 )
SQL> ALTER TABLE table_name ADD (add_column_name varchar2(30));

--테이블의 컬럼 수정 ( modify 연산자 )
SQL> ALTER TABLE member01 MODIFY (password  varchar2(50)  not  null);
	--컬럼이 이미 데이터를 가지고 있을 경우 다른 데이터형으로 변경 불가능함.
	--컬럼명은 MODIFY 안됨.

--테이블의 컬럼 삭제 ( drop 연산자 )
SQL> ALTER TABLE table_name DROP COLUMN column_name;
SQL> ALTER TABLE table_name DROP(column_name);

--제약조건의 삭제 ???
SQL> ALTER TABLE table_name DROP PRIMARY KEY;

--테이블 삭제
SQL> DROP TABLE table_name;
	--오라클 10g부터는 테이블을 삭제하면
	--BIN$4emTP3hqGbvgMGQ9jRYEcw==$0와 같은 임시테이블로 교체된다.
	--즉, 휴지통 기능 

--이 임시 테이블(휴지통)을 완전 삭제하는 방법은 ?
SQL> PURGE RECYCLEBIN; 

--테이블 삭제시 휴지통으로 안보내고 즉시 삭제
SQL> DROP TABLE table_name PURGE;

--휴지통에서 테이블 복원
SQL> FLASHBACK TABLE table_name TO BEFORE DROP;


DML(Data Manipulation Language)

--데이터 입력
--입력 데이터 갯수가 테이블의 컬럼수와 일치할 경우
SQL> INSERT INTO table_name VALUES(data1, data2, data3, ... );
--입력 데이터 갯수가 테이블의 컬럼수와 일치하지 않을 경우
SQL> INSERT INTO table_name(column1, column2, column3, ... )
	VALUES(data1, data2, data3, ... );

--데이터 수정
SQL> UPDATE table_name SET 컬럼1=수정할값1,
	컬럼2=수정할값2, ...
	WHERE 조건절;

--데이터 삭제
SQL> DELETE FROM table_name WHERE 조건절;

'DB & SQL' 카테고리의 다른 글

linux mint13 oracle 11g express 제거  (0) 2015.06.23
linux mint13 oracle 11g express 설치  (0) 2015.06.23
mysql 계정 및 DB 생성  (0) 2015.06.23
mysql 인코딩 utf8 적용  (0) 2015.06.23
linux ubuntu MySQL 재설치  (0) 2015.06.23
: