오라클(Oracle) - 기본 명령

2018. 1. 3. 16:45Programming/Database

반응형

오라클 DBMS의 기본 계정에 대해 알아보고 계정 생성과 권한부여,
그리고 기본 명령어들에 대해서 알아보겠습니다 

기초가 중요합니다 여러분 ㅋㅋㅋㅋ

오라클 database 11g를 설치했다면 cmd 를 켜고,
오라클은 sqlDeveloper나 토드 등의 Tool이 있는데, sqlplus를 기본으로 제공하기에
sqlplus를 실행해 보겠습니당

접속 방법은 간단합니다 
위와같이 
 > sqlplus "/as sysdba"
를 입력해주면 sysdba에 권한으로 sqlplus에 접속이 되요



오라클의 기본 계정으로는
SYS와 SYSTEM, 그리고 SCOTT 등이 있습니다
1.SYS (슈퍼유저 계정으로 모든 권한을 가짐)
2.
SYSTEM (DBA계정. DBA생성 외의 모든 권한을 가짐)
3.
SCOTT (Guest계정.  **Express Edition버전에는 없음 ㅠㅠ)


그리고 local에서는 SYSTEM계정의 PASSWORD 변경이 가능하기 때문에
자신이 원하는 비밀번호로 다시 설정이 가능합니다
--비밀번호 변경
SQL> ALTER USER SYSTEM IDENTIFIED BY TIGER;
SQL> ALTER USER SYS IDENTIFIED BY TIGER;

ALTER USER 계정명 IDENTIFIED BY 비밀번호;
이런 식으로 말이죠

------------------------------------------------------------------------------
SCOTT 계정의 경우에는 최초 LOCK이 걸려있는 상태이기 때문에 
LOCK 해제를 해주어야 합니다 
-- 계정 lock 해제
SQL> ALTER USER SCOTT ACCOUNT UNLOCK;

PASSWORD설정과 계정에 대한 LOCK/UNLOCK 설정은 하나의 문장으로도 가능합니다
-- 계정 pw설정 및 lock해제
SQL> ALTER USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK;


계정을 풀고 비밀번호를 설정했다면 접속을 해보겠습니다. 
제가 받은 XE버전에는 scott계정이 없으므로 다른 기본계정인 hr계정으로 접속해보겠습니다.

접속을 했다면 기본 명령어 들에 대해서 알아봐야 겠쥬?

아 그리고 sql명령어가 있고, sqlplus명령어가 따로 존재합니다.
sqlplus명령어는 세미콜론을 안붙여도 되요
대표적인 명령어가 'cl scr'입니다. (화면 clear 명령어)
------------------------------------------------------------------
--모든 테이블 목록확인
SQL> select * from tab;

--모든 user 확인
SQL> select * from all_users;

--계정생성 (scott/tiger)
SQL> create user scott identified by tiger;
SQL> alter user scott account unlock;

또는 한 줄로 
SQL> create user scott identified by tiger account unlock;

--DBA권한 부여
SQL> 
grant DBA to scott;

grant는 권한부여 revoke는 권한철회 명령어입니다

--계정에서 다른 계정으로 접속
SQL> conn sys/tiger as sysba

-- sqlplus 명령어 확인
SQL> help 명령어

예를 들어 set 명령어의 사용법에 대해 궁금한경우 
SQL> help set   을 입력


--테이블 생성
create table 테이블명(
필드이름 타입 제약조건,
필드이름 타입 제약조건,
필드이름 타입 제약조건
)

제약조건은 생략이 가능합니다

create table saram(
 id varchar2(20),
 name varchar2(20),
 age number(3)
)

** 오라클의 문자열 타입에는 VARCHAR와 VARCHAR2가 있는데,
두타입 모두 4000BYTE 제한으로 같지만, 
오라클에서 VARCHAR 타입은 차후 다른 용도로 이용할거라며, VARCHAR2 타입의
사용을 권장하고 있습니다
 
--테이블 확인 
SQL> desc saram;  
SQL> describe saram;

--테이블의 모든 데이터 확인
SQL> select * from saram;

--테이블 제거 
SQL> drop table saram;

--데이터 삽입

SQL> insert into saram(id, name, age)
SQL> values('hong','gildong',33);

필드 순서대로 넣을꺼면 필드명 명시 안해줘도됨
SQL> insert into saram
SQL> values('kim','kildong',23);


-- 특정 컬럼의 사이즈 변경

varchar2 type이면 
'col 컬럼명 format a20' --> 20으로 열너비조정
number라면 
'col 컬럼명 format 999,999' --> 9하나가 한자리

SQL> col id format a20;
SQL> col name format a20;
SQL> col age format 999;


--데이터 수정
id가 'lee'인 데이터의 네임을 'gilgil'로 변경
SQL> update saram
SQL> set name = 'gilgil'
SQL> where id = 'lee';

--데이터 삭제
id가 'kim'인 데이터 모두 삭제
SQL> delete from saram
SQL> where id='kim';


--sqlplus종료
SQL> exit


반응형