-
DB Oracle SQL PLUS 활용하는 방법Programming and Database/SQL 2023. 1. 17. 00:05728x90반응형
DB Oracle SQL PLUS 활용하는 방법
C:>sqlplus Shop/oracle@xe SQL*Plus: Release 11.2.0.2.0 Production on 일 1월 15 18:32:36 2023 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
▶ 윈도우 CMD를 통해 DB에 접속하는 방법으로 sqlplus를 활용할 수 있습니다.
SQL> CREATE TABLE soccerTable (id INT, data VARCHAR(20)); Table created.
▶ 윈도우 CMD를 통해서 DB에 접속하게 되면 Developer에서 사용할 수 있는 sql문을 CMD 창에서도 활용하여 작성할 수 있게 됩니다. 예시를 위해서 soccertable을 임시로 생성하도록 하겠습니다.
SQL> INSERT INTO soccerTable VALUES(1000, 'TottenhamHotspur'); 1 row created. SQL> INSERT INTO soccerTable VALUES(1001, 'ManchesterUnited'); 1 row created. SQL> INSERT INTO soccerTable VALUES(1002, 'ArsenalFC'); 1 row created.
▶ 생성된 테이블에서 INSERT문을 통해서 컬럼에 데이터를 추가하도록 합니다.
SQL> INSERT INTO soccerTable VALUES(1003, 'WolverhamtonWanderers'); INSERT INTO soccerTable VALUES(1003, 'WolverhamtonWanderers') * ERROR at line 1: ORA-12899: value too large for column "SHOP"."SOCCERTABLE"."DATA" (actual: 21, maximum: 20)
▶ CREATE TABLE soccerTable (id INT, data VARCHAR(20)) 구문에서 VARCHAR(20)으로 텍스트를 넘게 되면 해당 컬럼에 데이터 삽입시 오류 메시지를 호출하게 됩니다.
SQL> SELECT * FROM SoccerTable; ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC
▶ SLECT문을 통해서 생성된 SoccerTable을 조회하게 되면 해당 컬럼에 삽입한 ID: 1000,1001,1002와 함께 DATA TottenhamHotspur, ManchesterUnited, ArsenalFC 데이터가 조회됩니다.
SQL> HELP INDEX Enter Help [topic] for help. @ COPY PAUSE SHUTDOWN @@ DEFINE PRINT SPOOL / DEL PROMPT SQLPLUS ACCEPT DESCRIBE QUIT START APPEND DISCONNECT RECOVER STARTUP ARCHIVE LOG EDIT REMARK STORE ATTRIBUTE EXECUTE REPFOOTER TIMING BREAK EXIT REPHEADER TTITLE BTITLE GET RESERVED WORDS (SQL) UNDEFINE CHANGE HELP RESERVED WORDS (PL/SQL) VARIABLE CLEAR HOST RUN WHENEVER OSERROR COLUMN INPUT SAVE WHENEVER SQLERROR COMPUTE LIST SET XQUERY CONNECT PASSWORD SHOW
▶ sqlplus의 장점으로는 HELP INDEX를 통해서 ;없이도 해당 명령어를 실행할 수 있습니다. 사용가능한 sqlplus 구문은 위와 같습니다.
SQL> HELP RUN RUN --- Lists and executes the most recently executed SQL command or PL/SQL block which is stored in the SQL buffer. The buffer has no command history list and does not record SQL*Plus commands. R[UN] SQL> HELP COPY COPY ---- Copies data from a query to a table in the same or another database. COPY supports CHAR, DATE, LONG, NUMBER and VARCHAR2. COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)] USING query where database has the following syntax: username[/password]@connect_identifier
▶ 리눅스의 man 페이지처럼 sqlplus 구문에도 HELP를 통해서 해당 명령어가 어떻게 쓰이는지에 대한 예시와 도움말이 제공됩니다.
SQL> DESCRIBE soccerTable Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER(38) DATA VARCHAR2(20)
▶ DESCRIBE 테이블명을 통해서 Create Table 테이블명 생성 시 Type에 대한 속성을 확인할 수 있습니다.
SQL> List 1* SELECT * FROM SoccerTable SQL> L 1* SELECT * FROM SoccerTable
▶ List 또는 L을 통해서 이전에 타이핑했던 SQL 구문을 다시 보여주게 됩니다. 캐시에 저장이 되어 기억을 하고 있기 때문에 이전 SQL문을 확인하기 위해서 해당 기능을 사용하시면 됩니다.
SQL> RUN 1* SELECT * FROM SoccerTable ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC SQL> / ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC
▶ RUN 또는 /을 사용하게 되면 이전 SQL문에 대해서 다시 한번 실행을 하게 됩니다.
SQL> APPEND ORDER BY data 1* SELECT * FROM SoccerTable ORDER BY data SQL> L 1* SELECT * FROM SoccerTable ORDER BY data SQL> / SELECT * FROM SoccerTable ORDER BY data ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC
▶ APPEND를 사용하여 뒤에 WHERE 또는 ORDER BY 구문을 추가하게 되면 기존 캐시에 저장되어 있는 SQL 구문 뒤에 해당 절이 추가되어 완성되게 됩니다.
SQL> column DATA heading "soccerTeam" format a16 SQL> SELECT * FROM SOCCERTABLE; ID soccerTeam ---------- --------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC
▶ 윈도우에서는 SQL Develop Tool을 활용하여 사용하지만, UNIX 또는 Linux 환경에서는 sqlplus에 더 익숙해져야 하기 때문에 해당 환경에서 테이블 조회 시 ------의 항목이 출력화면을 초과하여 보기 어려운 경우가 있습니다. 이와 같을 때는 format 형식을 변환하여 예시로 -의 개수를 16개로 줄여 확인할 수 있습니다.
SQL> SAVE C:\DBbackup20220115\sqlfile Created file C:\DBbackup20220115\sqlfile.sql SQL> host Microsoft Windows [Version 10.0.19044.2486] (c) Microsoft Corporation. All rights reserved.
▶ 다음으로는 SAVE를 통해서 시스템 디렉터리에 sqlfile을 저장하게 되면. sql 형식으로 파일이 저장할 수 있게 됩니다.
C:\>cd DBbackup20230115 C:\DBbackup20230115>dir C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5656-1B88 C:\DBbackup20230115 디렉터리 2023-01-15 오후 06:55 <DIR> . 2023-01-15 오후 06:55 <DIR> .. 2023-01-15 오전 11:45 24,576 ShopSchema.dmp 2023-01-15 오후 06:55 30 sqlfile.sql 2개 파일 24,606 바이트 2개 디렉터리 78,242,586,624 바이트 남음 C:\>exit
▶ C:\>cd DBbackup20230115 디렉토리로 이동하게 되면 SAVE를 통해서 저장된 sqlfile.sql 파일이 존재하고 해당 파일을 이용해서 출력을 할 수 있습니다.
SQL> START C:\DBbackup20230115\sqlfile.sql ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC
▶ START 명령어를 통해서 C:\>cd DBbackup20230115 디렉터리에 존재하는 sqlfile.sql을 실행하면 SLECT * FROM soccerTable;을 조회 했을 때 값과 동일하게 결과가 출력되는 것을 확인할 수 있습니다.
SQL> SPOOL C:\DBbackup20220115\DailySQL SQL> SELECT * FROM soccertable; ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC SQL> select count(*) from soccertable; COUNT(*) ---------- 3 SQL> SPOOL OFF
▶ 다음으로는 SPOOL의 기능을 사용하여 리눅스의 CAT과 같은 효과를 나타낼 수 있습니다. SPOOL 명령어 실행 후 저장될 경로를 지정하고 SQL문을 작성 후 SPOOL OFF를 통해서 종료합니다.
C:\DBbackup20230115>DIR C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5656-1B88 C:\DBbackup20230115 디렉터리 2023-01-15 오후 07:00 <DIR> . 2023-01-15 오후 07:00 <DIR> .. 2023-01-15 오후 07:01 976 DailySQL.LST 2023-01-15 오전 11:45 24,576 ShopSchema.dmp 2023-01-15 오후 06:55 30 sqlfile.sql 3개 파일 25,582 바이트 2개 디렉터리 78,243,655,680 바이트 남음
▶ C:\DBbackup20230115 디렉터리에 DailySQL.LST 파일이 생성된 것을 확인할 수 있습니다.
C:\DBbackup20220115>notepad DailySQL.LST
▶ 윈도우 CMD창을 통해서 notepad DailySQL.LST을 실행시켜 보도록 합니다.
SQL> SELECT * FROM soccertable; ID DATA ---------- ---------------------------------------- 1000 TottenhamHotspur 1001 ManchesterUnited 1002 ArsenalFC SQL> select count(*) from soccertable; COUNT(*) ---------- 3
▶ sqlplus를 통해서 접속한 구문에서 실행되었던 SELECT * FROM soccertable; select count(*) from soccertable; 구문에 대한 조회 값이 메모장에 저장되어 조회가 가능하게 됩니다.
2022.12.22 - [Programming and Database/SQL] - DB Oracle 스키마 생성하는 방법
2023.01.10 - [Programming and Database/SQL] - DB Oracle 트리거(Trigger) 생성을 통한 데이터 관리하는 방법
2023.01.16 - [Programming and Database/SQL] - DB Oracle 백업을 통한 테이블 복구 하는 방법
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
728x90반응형'Programming and Database > SQL' 카테고리의 다른 글
DB Oracle Where문 활용하는 방법(1) (2) 2023.02.15 DB Oracle Select문 활용하는 방법 (4) 2023.02.11 DB Oracle 백업을 통한 테이블 복구 하는 방법 (4) 2023.01.16 DB Oracle 뷰(View) 테이블 생성 및 저장 프로시저 사용하는 방법 (6) 2023.01.11 DB Oracle 트리거(Trigger) 생성을 통한 데이터 관리하는 방법 (10) 2023.01.10