2014. 2. 18. 12:44 Development/Database
[기본구조]
CREATE TABLE 테이블명 (
컬럼명 데이터타입 [NULL, NOT NULL]
);
위의 SQL 문이 테이블을 생성하는 가장 기본이 되는 SQL 입니다. 컬럼을 추가 하는 방법은 () '괄호' 안에 위의 구문을 여러 개로 처리하시면 됩니다.
실제로 사용되는 예로 간단한 학생 테이블을 만들어 보죠.
[응용]
CREATE TABLE student (
STUDENT_NO NUMBER NOT NULL,
STUDENT_NM CHAR(100) NOT NULL
);
위와 같이 만들수가 있겠습니다. DB 프로그램에 따라서 DATATYPE는 바뀔 수가 있습니다. 오라클 같은 경우에는 CHAR 가 아니라 VARCHER2 형태로 쓰입니다.
[기본구조]
ALTER TABLE 테이블명 ADD CONSTRAINT 명시적PK명 PRIMARY KEY (컬럼명);
위의 SQL 문은 해당 테이블에 대하여 PK 만드는 가장 기본적인 구문입니다. 학생 테이블이 만들어 졌으니, 학생번호를 PK로 잡아본다면 아래와 같이 쓸 수 있습니다.
[응용]
ALTER TABLE STUDENT ADD CONSTRAINT PK_STUDENT PRIMARY KEY (STUDENT_NO);
위와 같이 사용하시면 STUDENT_NO 컬럼은 STUDENT TABLE의 KEY 값이 되고, PK_STUDENT 이라는 명시적인 이름의 INDEX가 가능한 데이터가 생성됩니다.
PK까지 추가되었다면, 다른 작업자들을 위해서 간단한 코멘트가 필요합니다. 만든 사람은 컬럼이 어디에 사용되는지 알고 있겠지만, 후에 온 사람은 전혀 이해하지 못할 경우가 있기 때문입니다.
[기본구조]
COMMENT ON TABLE 테이블명.컬럼명 IS '코멘트1';
위의 SQL 문이 컬럼에 코멘트를 추가하는 방법입니다. 아까 만들었던 학생 TABLE에 코멘트를 추가해보도록 하죠.
[응용]
COMMENT ON TABLE STUDENT.STUDENT_NO IS '학생번호';
COMMENT ON TABLE STUDENT.STUDENT_NM IS '학생이름';
마지막으로 INDEX를 생성하는 쿼리를 알아보겠습니다.
[기본구조]
CREATE UNIQUE INDEX 인덱스명 ON 테이블명
(
컬럼명 [ASC, DESC]
);
학생 테이블에 학생번호, 학생이름으로 인덱스를 만들려고 한다면 아래와 같이 SQL을 구성할 수 있습니다.
[응용]
CREATE UNIQUE INDEX IDX_STUDENT_01 ON STUDENT
(
STUDENT_NO ASC,
STUDENT_NM ASC
);
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
2014. 2. 18. 11:25 Development/Database
그냥 Client 베이직을 받으면 sqlplus.exe를 찾아볼수가 없네요.
그래서 좀 더 리스트를 뒤져봤더니, 다음과 같은게 있었습니다.
이것을 받으니까 sqlplus.exe가 있네요.
아래 사진은 sqlplus로 접속 완료된 모습입니다.
하얀창의 ic.bat를 open한 파일은 set path를 주면서 어디 경로에 있든 sqlplus를 접속할 수 있게 지정해준것입니다.
처음에는 path가 지정되어있지않으므로,
1. C:\>notepad ic.bat
2. set path=instant client경로;%path% <---- 어느 위치에서든 sqlplus가 사용 가능하게 합니다.
local상태에서의 접속은 sqlplus username/password <-------sqlplus로 자동 접속합니다.(server)
client상태로 서버로의 접속은 sqlplus username/password@IP/SID <-----sqlplus로 자동 접속합니다.(client)
3. 입력 후, text문서를 저장한 뒤, ic.bat를 입력하면 sqlplus가 실행됩니다.
DB의 기초!! 테이블 생성 - 코멘트 - PK - 인덱스 까지 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
2014. 2. 5. 10:16 Development/Database
오라클 초기화 프로시저 생성
CREATE OR REPLACE PROCEDURE SCOTT.reset_sequence (sequencename IN VARCHAR2) as curr_val INTEGER;
BEGIN
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' MINVALUE 0';
EXECUTE IMMEDIATE 'SELECT ' ||sequencename ||'.nextval FROM dual' INTO curr_val;
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' increment by -'||curr_val;
EXECUTE IMMEDIATE 'SELECT ' ||sequencename ||'.nextval FROM dual' INTO curr_val;
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' increment by 1';
END reset_sequence;
프로시저 실행
EXEC reset_sequence('시퀀스명');
DB의 기초!! 테이블 생성 - 코멘트 - PK - 인덱스 까지 (0) | 2014.02.18 |
---|---|
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
2014. 2. 1. 13:07 Development/Database
SQL문의 기본을 정복한 당신은 재미를 넘어서 쿼리문 작성에 지루함을 느낍니다. 같은 데이터를 수시로 반복해서 타이핑 하다보니 컴퓨터에 열어놓은 메모장이 매우 많군요. 당신의 동료 김이 Oracle용 GUI를 추천해줍니다.
Oracle SQL Developer는 Oracle용 GUI도구 입니다.
Oracle에서 DBMS만 제공해주는 줄 알았던 당신은 동료의 말에 제빨리 GUI도구를 다운받으러 Oracle 홈페이지에 접속했습니다. 물론, 무료라는 말을 듣고요. 비록 회원가입을 해서 로그인을 해야하지만, 이미 Oracle을 설치한 당신은 간단하게 로그인 작업만 하면 될 것입니다.
Downloads에 보시면 Developer Tools 목록 중 제일 위에 있습니다. 그러나 하나하나 찾아가기 귀찮은 당신을 위해 특별히 URL을 첨부해드리죠.
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
설치하는 방법은 간단합니다. 약관에 동의하시고 자신에게 맞는 OS에 호환되는 버전을 다운로드하면 됩니다. 압축만 풀면 되고요.
여러분들도 위와 같은 에러 메시지가 뜨나보군요. 저만 그런게 아니라서 다행이기도 하네요. 하하. 알아요. 분명 웃을 상황이 아니라는 것도요. 그래서 구글링을 해보셨나요? 에러 메시지를 구글창에 검색을 해보면 대략 이런 내용입니다. 메모리가 부족해서 그런거니 \sqldeveloper\ide\bin\ide.config 에서 AddVMOption값을 -512M이나 -256M으로 변경하시라고요. 그러나 이 방법은 불행이도 4.0에서는 안 통하는 군요.
맞습니다. 그리고 주석을 좀 더 읽어보면 이상한 경로가 나와있고, Java memory에 관해서 얘기를 더 하네요. 아하, 아무래도 이 경로에 써져있는 product.conf나 jdev.conf에서 수정을 할 방법이 있는 것 같아요. 그건 그렇고 %APPDATA%\<product-name>\<product-version>\product.conf 는 도대체 어디있는 경로지?
구글링한 당신은 APPDATA가 시스템 설정과 관련된 파일들을 관리하는 곳이란 걸 알았고 OS마다 경로가 약간씩 다르다는 것도 알고 있습니다. 그렇다면 Window XP에서 APPDATA는 어떤 경로일까요? 쉬운 방법이 있습니다. 바로 시작>실행 에서 %APPDATA%를 검색하는 거죠.
<product-name>과 <product-version>은 각각 sqldevelopder와 1.0.0.0 입니다. 이 경로로 계속 찾아가다 보면 여러분은 product.conf를 발견할 수 있습니다. 어서 그 파일을 열어보세요.
예, 맞습니다. 멘 아래에 있는 AddVMOption 값을 변경하면서 SQL Developer가 잘 실행되는지 확인해보세요. 그리고 좀 더 자세히 읽어보면 bit에 따라 설정값을 달리할 수 있답니다.
짜잔! 이제야 SQL Developer 4.0이 멋지게 실행되는 군요. 빨리 상사가 추가하라는 데이터를 추가해야 겠어요. 이제보니 상사는 아직도 퇴근을 안 했네요.
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
[Oracle] 계정 생성 및 삭제, 권한 부여, 테이블스페이스 지정 (0) | 2014.01.16 |
2014. 1. 16. 17:25 Development/Database
* Windows7에서 Oracle 10g 버전을 설치하려면 3개의 파일을 직접 수정해야 한다.
1. 일단 아래 사이트에서 오라클 데이터베이스 설치버전을 다운 받는다.
주소 : http://oracle.com
파일명 : 10203_vista_w2k8_x86_production_db.zip
2. 압축을 푼 후 아래 3개의 파일을 수정한다.
① 경로 : \10203_vista_w2k8_x86_production_db\db\Disk1\install\oraparam.ini
[Certified Versions]
#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
#Windows=5.0,5.1,5.2,6.1
② 경로 : \10203_vista_w2k8_x86_production_db\db\Disk1\stage\prereq\db\refhost.xml
<!--Microsoft Windows Vista-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.0"/>
</OPERATING_SYSTEM>
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
</CERTIFIED_SYSTEMS>
③ 경로 : \10203_vista_w2k8_x86_production_db\db\Disk1\stage\prereq\db_prereqs\db\refhost.xml
<!--Microsoft Windows Vista-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.0"/>
</OPERATING_SYSTEM>
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
</CERTIFIED_SYSTEMS>
3. setup.exe 를 실행하면 아래와 같은 화면이 나타나는데 반드시 고급설정을 선택해서 설치해야한다.
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
[Oracle] 계정 생성 및 삭제, 권한 부여, 테이블스페이스 지정 (0) | 2014.01.16 |
2014. 1. 16. 17:23 Development/Database
Tablespace
- DBMS에 저장되는 자료가 있는 물리적인 파일.
- 각 개체마다 테이블스페이스를 지정해 줄 수 있고, 사용자에게 기본으로 사용할 테이블스페이스를 지정할 수 있다.
- 오라클에서는 기본적으로 /usr/local/oracle/oradata/[SID]/ 디렉토리에 기본 테이블스페이스를 생성하며,
Oracle Express Edition에서는 /usr/lib/oracl/xe/oradata/XE/ 디렉토리에 기본 테이블스페이스를 저장한다.
테이블스페이스 생성
테이블스페이스를 생성할 경우 여러 옵션이 사용될 수 있으나 테이블스페이스의 기본 용량을 자동으로 늘려주는
옵션(autoextend) 등은 기본으로 사용하는 것이 편하다.
1 2 3 4 5 6 7 8 9 | create tablespace 테이블스페이스명 (예: ts_jihyung) datafile '테이블스페이스 파일 저장 경로 (예: D:/db/테이블스페이스명.dbf)' size 파일 용량 (예: 50M) autoextend on extent management local autoallocate; |
Temp 테이블스페이스 생성
Temp 테이블스페이스의 최소 용량은 1 MByte 이상이다. 그러므로 처음 생성시 2 MByte로 생성 한 뒤 자동증가 옵션을 사용한다
1 2 3 4 5 6 7 8 9 | create temporary tablespace 테이블스페이스명 (예: ts_temp_jihyung) tempfile 'Temp 테이블 스페이스 파일 저장 경로 (예: D:/db/Temp테이블스페이스명.dbf)' size 파일 용량 (예: 2M) autoextend on extent management local ; |
테이블스페이스 삭제
특별한 경우가 아니라면 테이블스페이스의 모든 내용을 자동으로 지우고 파일까지 깔끔하게 삭제할 수 있다.
이 옵션이 바로 "including contents AND datafiles"이다.
1 2 3 4 5 | drop tablespace 테이블스페이스명 including contents and datafiles cascade constraints; |
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] 계정 생성 및 삭제, 권한 부여, 테이블스페이스 지정 (0) | 2014.01.16 |
2014. 1. 16. 17:22 Development/Database
계정 생성
1 | create user 유저네임 identified by 패스워드; |
권한 부여
resource, connect 는 일반적인 것을 다 사용할 수 있다. (DDL, DML 등)
1 2 | grant resource, connect to 유저네임; grant DBA to 유저네임; |
테이블스페이스 지정
1 2 | alter user 유저네임 default tablespace 테이블스페이스명; alter user 유저네임 temporary tablespace 임시테이블스페이스명; |
계정 삭제
cascade 를 명시하면 유저네임과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터 삭제되고 모든 스키마 객체도 물리적으로 삭제된다.
1 | drop user 유저네임 cascade ; |
출처: http://warmz.tistory.com/755
[Oracle] instance client를 이용한 cmd창에서 sqlplus 접속 (0) | 2014.02.18 |
---|---|
[Oracle] 시퀀스 초기화 프로시저 생성하기 (0) | 2014.02.05 |
[Oracle SQL Developer 4.0] Unable to create an instance of the Java Virtual Machine Located at path (0) | 2014.02.01 |
[Oracle] Oracle 10g Windows7 설치방법 (0) | 2014.01.16 |
[Oracle] Tablespace (테이블스페이스) 생성과 삭제 (0) | 2014.01.16 |
Recent Comments