(기본SQL쿼리)현재 계정의 테이블 목록 확인, 테이블 구조/칼럼 확인, 현재 접속한 계정의 데이터베이스 이름, SID확인, 현재 접속한 데이터베이스 버전확인
http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=596
3. 기본 SQL 명령어
3.1 Schema 계정에서의 기본 쿼리문
현재 계정의 테이블 목록 확인
SQL> SELECT * FROM tab;
SQL> SELECT * FROM user_tables;
SQL> SELECT * FROM user_objects
2 WHERE object_type = ‘TABLE’
SQL> SELECT * FROM USER_CATALOG
2 WHERE table_type = ‘TABLE’
[현재 접속한 계정의 모든 테이블을 확인 하시오]
SQL> select * from tab;
TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BOARD TABLE BOARDLOG TABLE BONUS TABLE …… ……
SQL> select table_name from user_tables;
TABLE_NAME ------------------------------ DEPT EMP BONUS … … SQL> select object_name from user_objects where object_type = 'TABLE';
OBJECT_NAME -------------------------------------------- S_WAREHOUSE S_TITLE S_REGION S_PRODUCT S_ORD ……
SQL> select * from user_catalog where table_type = ‘TABLE’;
TABLE_NAME TABLE_TYPE ------------------------------ ----------- BOARD TABLE BOARDLOG TABLE …… …… |
테이블 구조/칼럼 확인
SQL> column column_name format a10 SQL> column data_type format a10 SQL> SELECT COLUMN_NAME NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, AVG_COL_LEN FROM COLS WHERE TABLE_NAME ='MYEMP1';
NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE NULLABLE AVG_COL_LEN ---------------------------------------------------------------------------------------------------------------- EMPNO NUMBER 22 N 6 ENAME VARCHAR2 100 Y 14 DEPTNO VARCHAR2 1 Y 2 ADDR VARCHAR2 100 Y SAL NUMBER 22 7 0 Y 6 JOB VARCHAR2 20 Y COMM NUMBER 22 7 0 Y SUNGBYUL VARCHAR2 1 Y HIREDATE DATE 7 Y OUTDATE VARCHAR2 8 Y MGR NUMBER 22 Y
11 개의 행이 선택되었습니다.
SQL> DESC MYEMP1;
이름 널? 유형 ------------------------------------------------------------------------------------------------------------------ EMPNO NOT NULL NUMBER ENAME VARCHAR2(100) DEPTNO VARCHAR2(1) ADDR VARCHAR2(100) SAL NUMBER(7) JOB VARCHAR2(20) COMM NUMBER(7) SUNGBYUL VARCHAR2(1) HIREDATE DATE OUTDATE VARCHAR2(8) MGR NUMBER
|
현재 접속한 계정의 데이터베이스 이름, SID확인
하나의 데이터베이스에 인스턴스가 하나라면 데이터베이스명과 SID는 같다. 하지만 RAC 환경처럼 하나의 데이터베이스에 인스턴스가 여러 개라면 데이터베이스명과 SID가 일치하지 않는다.
SQL> conn / as sysdba 연결되었습니다.
SQL> -- 데이터베이스명(DBNAME) 확인방법, 일반적으로 데이터베이스가 하나의 인스턴스로 구성되어 있다면 DBNAME과 SID는 같다. 우선 데이터베이스명을 확인하자.
SQL> select name, db_unique_name from v$database;
NAME DB_UNIQUE_NAME --------- ------------------------------ ONJ onj
SQL> -- 이번에는 SID를 확인하자. (자바같은 프로그램에서JDBC로 접속 할때는 SID로 접속한다.) SQL> select instance from v$thread;
INSTANCE -------------------------------------------------------------------------------- onj
아래 예문처럼 RAC로 묶여 있는 경우 SID가 다를 수 있다.
SQL> select name, db_unique_name from v$database;
NAME DB_UNIQUE_NAME --------- ------------------------------ ONJ onj
SQL> -- 이번에는 SID를 확인하자. (자바같은 프로그램에서JDBC로 접속 할때는 SID로 접속한다.) SQL> select instance from v$thread;
INSTANCE -------------------------------------------------------------------------------- onj1 onj2 |
현재 접속한 데이터베이스 버전확인
v$version에서 확인하면 된다.
SQL> SELECT * FROM v$version;
BANNER ----------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for 32-bit Windows: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production |