안녕하세요 ~
오라클 수업을 배운 것을 그대로 올려 놓습니다.
참고하세요.
그대로 따라하시면 이해가 가실겁니다. ~
## SQL GATE 에서 Shared Server로 추가 하는 방법 ##
-- 원격로그인 -- (내것에서 상대방 서버로 붙는 방법)
#. 새연결 -- TNS 이름 편집기 -- TNS Name 추가 ( + 키 )
a. TNS 명 --> (자신이 남을 지칭하는 이름) 아무 아름
b. Service name --> 예)java71.iei.or.kr (오라클 설치시 등록한 것)
c. 연결타입 --> Shared Server
d. Host --> 예) 220.76.176.71
e. Port --> 1521 (기존)
## Session 정보 조회 및 끊는 방법 ##
<우선 조회>-------------------------------------------------------
SELECT SID, SERIAL#,USERNAME, STATUS,
SERVER, OSUSER, MACHINE, TERMINAL,PROGRAM,
LOGON_TIME, SERVICE_NAME
FROM V$SESSION
WHERE USERNAME IS NOT NULL;
(아직 안 배운 것)
----------------------------------------------------------------------
< sys 계정에서 >
ALTER SYSTEM KILL SESSOIN 'SID번호, 시리얼번호';
--원하는 계정을 치면 접속되어 있는 계정이 끊기게 된다.
우선, SCOTT 계정에서 EMP 테이블을 조회(명령프론프트에서)
(select * from emp;)
계정을 죽이고 나면 scott 계정에서는 조회가 되지 않는다.
sys계정에서 scott 을 죽여서(끊어서) 그렇다.
/* -- 오라클 DATABASE 에 대한 논리적인 구조 -- */
1. 데이터가 저장되어지는 최소단위 또는
데이터를 읽어들이는 최소단위를 BLOCK 이라고 부른다.
BLOCK 의 SIZE 는 아래처럼 나뉘어진다.
2KB BLOCK
4KB BLOCK
8KB BLOCK
16KB BLOCK
32KB BLOCK
( 오라클을 기본설치로 설치하면 BLOCK 의 SIZE 는 8KB 이다. )
-- BLOCK 의 기본 크기를 조회하는 것이다.
SELECT VALUE
FROM V$PARAMETER
WHERE NAME = 'db_block_size';
-- 8192 Byte
2. BLOCK 이 모여서 EXTENT 를 이룬다.
1 EXTENT = 8 BLOCK = 64KB
EXTENT란 TABLE 의 할당량(=크기) 단위이다.
테이블, 인덱스를 생성을 하면 그 크기는 하드디스크상에 1 EXTENT (=64KB)만큼 공간을 확보한다.
3. 여러개의 EXTENT 가 모여서 하나의 테이블 또는 인덱스를 이룬다.오라클에서는
테이블과 인덱스를 세그먼트(SEGMENT) 라고 부른다.
4. 세그먼트(SEGMENT)가 저장되어지는 공간을 테이블스페이스 (TABLESPACE)라고 부른다.
즉, 실질적인 데이터가 저장되어지는 물리적 파일명을
오라클에서는 테이블스페이스(TABLESPACE)라고 부른다.
5. 여러개의 테이블스페이스(TABLESPACE)가 모인 것을 DATABASE 라고 부른다.
-- *** 테이블스페이스(TABLESPACE) 생성하기 *** --
SELECT *
FROM DBA_DATA_FILES;
1.우선 자기가 저장 할 곳에 폴더(MYORADATA) 를 만들기
2.먼저 D: 에 폴더를 생성하고 실행을 해야 한다.
CREATE TABLESPACE MYTESTTBS
DATAFILE 'D:\MYORADATA\MYTESTTBS01.DBF' SIZE 4M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
-- 현재 오라클 서버에 접속되어진 사용자 소유의 테이블과 뷰의 목록을 조회하려면 아래와 같이한다.
( SCOTT 로 접속 )
--데이블에 대한 조회
SELECT * FROM TAB;
--사원에 대한 조회
SELECT * FROM EMP;
-- EMP 테이블의 컬럼(속성)의 조회
DESCRIBE EMP;
(=DESC EMP;)
-- ROW(=행, RECORD), (=열, COLUMN, FIELD)에 대한 정보조회
-- 테이블(=ENTITY, 개체) 생성
CREATE TABLE TBL_MEMBER01
(ID VARCHAR2(10)
,PASSWD VARCHAR2(20)
,NAME VARCHAR2(10)
,CONSTRAINT TBL_MEMBER01_ID_PK PRIMARY KEY(ID)
) TABLESPACE MYTESTTBS;
INSERT INTO TBL_MEMBER01
VALUES('HONG', 'JAVA302', '홍길동');
COMMIT;
SELECT *
FROM TBL_MEMBER01;
-- MYTESTTBS 조회
SELECT TABLESPACE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = 'TBL_MEMBER01';
SELECT TABLESPACE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = 'EMP';
-- USERS
-- 복수개의 데이터파일로 구성된 테이블스페이스 생성하기
(구동을 빨리 하기 위해서 나누는 것)
CREATE TABLESPACE MYEXAMTBS
DATAFILE 'D:\MYORADATA\MYTEXAMTBS01.DBF' SIZE 4M,
-(8M짜리를 둘로 나눈다.)
'D:\MYORADATA\MYTEXAMTBS02.DBF' SIZE 4M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
è 이 할당된 메모리는 다 차면 그냥 끝나 버린다.
è 그래서 다 차면 자동으로 증가하게 만들어 주어야 편하다.
--테이블스페이스에 대한 데이터 파일의 정보를 조회한다.
SELECT *
FROM DBA_DATA_FILES;
--조회
SELECT SEGMENT_NAME, TABLESPACE_NAME,
BYTES, BLOCKS, FILE_ID
FROM DBA_EXTENTS
WHERE OWNER='SCOTT' AND
SEGMENT_NAME IN('TBL_MEMBER01'
,'TBL_MEMBER02'
,'TBL_MEMBER03');
--테이블스페이스에 대한 메모리 자동 확장
CREATE TABLESPACE MYSAMPLETBS1
DATAFILE'D:\MYORADATA\MYSAMPLETBS_01.DBF' SIZE 4M
AUTOEXTEND ON
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
--테이블스페이스에 대한 메모리 자동 확장 및 범위 정하기
CREATE TABLESPACE MYSAMPLETBS2
DATAFILE'D:\MYORADATA\MYSAMPLETBS2_01.DBF' SIZE 4M
AUTOEXTEND ON
NEXT 2M --한번에 2M씩 증설
MAXSIZE 32M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
à64M까지 쓸 수 있지만 4M부터 시작해서 32M까지 증가하게 지정
-- *** 테이블스페이스 삭제하기 *** --
DROP TABLESPACE MYSAMPLETBS3;
(하고 나서 탐색기에서 해당 데이터파일을 삭제한다.
위의 것을 실행하지 않고는 삭제가 불가능하다.)
--NEWSCOTT 계정에서
CREATE TABLE TBL_JEPUM01
(JECODE VARCHAR2(10)
,JENAME VARCHAR2(20)
);
-- ORA-01031: 권한이 불충분합니다.
(SYS에서 권한 주고)
-- ORA-01950: 테이블스페이스 'KHTBS'에 대한 권한이 없습니다.
(그래도 에러가 생긴다.)
--=> KHTBS 테이블스페이스에 대한 할당량이 없다는 말이다.
(SYS에 가서 다시… 그래야 TBL_JEPUM01 테이블이 생성이 된다.)
**그래서 SYS에서, 위의 모든 것을 한꺼번에 주는 것을 하는 것이 편하다.
--SYS 계정에서 조회
SELECT *
FROM USER_TS_QUOTAS;
-- *** 오라클 사용자 생성하기 *** --
CREATE USER NEWSCOTT IDENTIFIED BY DBATIGER
DEFAULT TABLESPACE KHTBS; MYSAMPLETBS2
ALTER USER NEWSCOTT
QUOTA 2M ON KHTBS;
(생성한 계정이 마음에 안 들어서 바꾸고 싶다면)
--ALTER USER NEWSCOTT
--DEFAULT TABLESPACE KHTBS;
--SCOTT계정에서 TBL_MEMBER02 의 테이블을 아래와 같이 생성을 한다.
SYS에서 잡아준 곳에 생성이 된다.
CREATE TABLE TBL_MEMBER02
(ID VARCHAR2(10)
,PASSWD VARCHAR2(20)
,NAME VARCHAR2(10)
,CONSTRAINT TBL_MEMBER02_ID_PK PRIMARY KEY(ID)
) TABLESPACE MYEXAMTBS;
/* Data Type */
1. 숫자형 - NUMBER
2. 문자형 - CHAR, VARCHAR2, NCHAR, NVARCHAR2
3. 날짜형 – DATE
-- *** 중요함 ~~ 오라클 도움말 사이트 *** --
(옛날사이트임, 접속 안될 수 있음, 바뀌었는데, 잘 모름 ^^;)
SELECT 0208154123456, '0208154123456'
FROM DUAL;
è 결과가 오른쪽으로 붙어서 나오면 숫자이고
(주민번호는 문자로 처리)
è 결과가 왼쪽으로 붙어서 나오면 문자이다.
-- 테이블 생성 (옵션추가)
CREATE TABLE TBL_SAWONINFO
(SANO NUMBER(4)
--NUMBER(4) -9999 ~ +9999 (자리수를 뜻 한다.)
--NUMBER(4,1) -999.9 ~ +999.9
--NUMBER(4,2) -99.99 ~ +99.99
,JUBUN CHAR(13) -- 글자숫자와 관계없이 고정값
,SANAME VARCHAR2(10) --가변형 '이순신' 6 Byte '고수' 4 Byte
--,SANAME NVARCHAR2(10) -- 글자수 '황금독수리놀라다'(O),'HiSuperWoman'(X)
,JIK VARCHAR2(10)
,SAL NUMBER(5)
,DNAME VARCHAR2(10)
,LOC VARCHAR2(20)
,DREL VARCHAR2(15)
);
여기에 값을 넣는 형식은 이렇다.
INSERT INTO TBL_SAWONINFO
VALUES(1003, '7210091234567', '안중근', '과장',3000, '관리부','서울', '02-345-1234');
-- ** 데이터 조회하기 ** --
SELECT 컬럼명 -- 5
FROM 테이블명 -- 1
WHERE 조건절 -- 2
GROUP BY 절 -- 3
HAVING 조건절 -- 4
ORDER BY 절 -- 6
'IT. 컴퓨터' 카테고리의 다른 글
[오라클] 정규화란? (0) | 2020.05.21 |
---|---|
[오라클] 부모테이블과 자식테이블 (0) | 2020.05.07 |
[오라클] 패스워드를 잃어 버렸을 때 (0) | 2020.05.05 |
[오라클] 새로운 계정, 서버에 접속하는 방법 (1) | 2020.05.05 |
[오라클] 오라클 설치 및 SQL Gate 설치 접속 (0) | 2020.04.29 |