본문 바로가기

Oracle/Oracle SQL

Oracle SQL_Select_계정잠금해제&sql 불러오기

Step 1. Select! 

- Sub : 계정잠금해제&SQL 불러오기 

 

SQL의 종류를 먼저 말하고 시작할까 합니다.

SQL의 종류에는 DDL, DML, DCL 이렇게 세가지로 나눌 수 있고 하나 더 추가하자면 TCL 까지 추가를 할 수 있습니다. 설명드리자면

DDL(Data Definition Language) : 데이터 정의어로서 create, drop, alter가 있습니다.

테이블을 생성하거나 데이터파일을 생성하거나 수정하는 등 스키마라는 큰 범주에 해당하는 것들을 관리하는 것입니다.

DML(Data Manipulation Language) : 데이터 조작어로서 select, delete, update, insert가 있습니다.

테이블에서의 데이터의 삽입, 삭제, 수정, 검색 등과 같이 변경 또는 참조하는 모든 행위를 말합니다.

DCL(Data Control Language) : 데이터 제어어로서 grant, revoke가 있습니다.

데이터 제어어에서는 계정에 대한 권한을 부여하는 기능을 하는 언어입니다. 권한이 없으면 조회나 생성 삭제를 못하겠죠?ㅎ

TCL(Transaction Control Language) : 트랜젝션 제어어로서 commit, rollback이 있습니다.

트랜잭션이라는 것은 Database에서의 저장단위로서 SQL을 한 이후 Commit을 해주지 않으면 저장이 되지 않는 것을 알 수 있습니다.

하지만 DDL이나 DCL은 자동 Commit이 되며 SQL PLUS를 정상적으로 종료하는 경우 commit이 되는 것을 알 수 있습니다.

대부분의 트랜잭션 사용은 DML에서 발생한다는 것을 먼저 알려드리겠습니다.

 

SQL에서 가장 중요한 것중 하나가 Select입니다. 데이터가 들어있으면 뭐합니까... 조회를 할 줄 알아야지 ㅎ

이번 포스트에서는 조회하는 방법을 상세히 다루어 볼겁니다 ㅎ

 

우선 기본 설정부터 한 후에 실습을 병행해서 하도록 하죠 ㅎ

 

맨처음 Oracle은 꺼져있는 상태로 있습니다. Oracle을 실행 시키는것부터 시~작 ㅎ

 

터미널에서 sqlplus / as sysdba 로 들어가게되면 Connected to an idle instance 라는 메시지가 나오는데요

이 메시지는 오라클이 켜지지 않았다는 것을 의미합니다. 그러므로 startup을 해서 오라클 가동을 시킵시다.

startup으로 시작을 시키면 SGA와 여러가지 설정이 확립되는 것을 볼 수 있고 mounted를 지나 Open이 됩니다.

이부분은 Admin 부분이므로 Admin에서 설명을 하도록 하겠습니다.

대부분의 작업은 Database를 접속하면 생기는 기본 사용자인 scott을 사용할겁니다.

conn 을 이용해서 사용자를 바꾸는데 conn scott을 입력하면

ORA-28000 : the account is locked 라고 뜨면서 계정이 잠겨져있다고 합니다. 그럼 풀어야 겠죠?

 

 

 

연결이 끊어진 상태이므로 conn / as sysdba로 들어가서 sys계정의 권한을 가진 후

alter user scott account unlock; 이라고 입력을 하면 scott user에 대한 잠김이 풀립니다.

다시 scott으로 들어가려고 하면 또 다시 오류가 납니다.. 오류 싫은데 ㅎㅎ

ORA-28001 : the password has expired 라고 뜨는데요 비밀번호가 만료되었다는 것입니다.

그래서 새로운 비밀번호와 다시한번 새로운 비밀번호를 입력하면 비밀번호가 변경이 되며 접속이 됩니다.


 

 

show user로 하면 현재 접속되어 있는 유저의 이름이 나오게 됩니다. 현재는 SCOTT이죠 ㅎ


 

계정을 풀었으니 실습할 sql 파일을 불러와야 겠지요. 저는 서진수쌤의 책을 쓸것이기 때문에 생능 출판사의 sql파일을 불러옵니다.

다운을 받았으니 WinSCP로 전송해야겠죠. 우선 다시한번 ifconfig로 Linux의 ip address를 확인한 후

 

 

 WinSCP로 접속해서 examples.sql을 oracle계정의 홈 디렉터리로 전송해줍니다.


 



전송을 한 이후 scott계정에 접속해서 @/home/oracle/examples.sql 을 입력하면 sql파일에 들어있는 sql명령들이 쭈루룩뜹니다.

 

요렇게 말이죠 ㅎ 이것은 sql파일을 scott계정에 갖다 붙여넣는 것으로 모두다 완료가 되면 아래와 비슷한 화면이 나올겁니다 ㅎ

도중도중 drop table 하면서 에러가 나는건 table이 존재하지 않는데 지우려고해서 Oracle이 뿔난 거에요 ㅎ


 

 

이제 scott 계정에 있는 테이블들을 조회해볼까요?

select * from tab 이라는 명령어로 알 수 있는데요. 입력하면 아래와같이 입력된 테이블들을 볼 수 있습니다.

이것들은 모두 쓸것이기 때문에 눈여겨 봐 주세요 ㅎㅎ


 

 

간단하게 몇가지 SQL 명령을 알아볼텐데요. 먼저 DESC 입니다.

desc는 테이블의 컬럼이름들과 각 컬럼당 타입이 나오는형식으로 매우 유용하게 잘 쓰이는 명령어 입니다.

데이터타입의 경우 데이터를 담는 그릇이라고 생각하시면됩니다 ㅎ 이 다음에 설명 드리겠습니다.


 

 

이렇게 간단하게 SQL을 시작하기 위한 정보를 알려드렸습니다. 다음에는 SELECT가 어떻게 쓰이는지 실제 예제와 설명을하도록하겠습니다