테이블에 데이터를 입력할때는 INSERT문을 사용합니다. 기본 사용법은 아래와 같습니다. INSERT문 기본 형태 INSERT INTO 테이블명 ( 컬럼1, 컬럼2, 컬럼3 ) VALUES ( 값1, 값2, 값3 ) 가장 기본적인 형태의 INSERT문입니다. 하지만 위와같은 방식으로 데이터를 삽입할때에는 나열된 컬럼과 값의 타입, 갯수가 일치하여야 합니다. 그렇지 않다면 에러가 납니다. 그리고 컬럼의 위치와 값의 위치가 조금이라도 어긋난다면 원치않는 컬럼에 원치않는 데이터가 INSERT되는 불상사가 발생할 수 있습니다. 회사테이블 (COMPANY_TABLE)에 회사코드(COMPANY_CODE) = 1 회사이름(COMPANY_NAME) = '삼성전자' 업종(SECTORS) = 'IT' 데이터 삽입 INSE..
오라클에서 데이터를 조회하는 명령어는 SELECT입니다. 기본 사용법은 아래와 같습니다. SELECT문 기본형태 SELECT 컬럼 FROM 테이블 WHERE 조건 ORDER BY 컬럼 SELECT문을 말로 표현하자면 어떤 컬럼을 들고올것인지 어디서 들고올것인지? FROM 어떤데이터를 가지고 올것인지? WHERE 어떤 컬럼을 기준으로 정렬할것인지? ORDER BY로 구분될 수 있습니다. 회사 테이블 (COMPANY_TABLE) 의 모든 데이터를 조회 SELECT * FROM COMPANY_TABLE 가장 기본적인 구조의 SELECT문입니다. 테이블에 있는 모든 데이터의 컬럼을 조회하려면 컬럼명을 일일히 나열할 필요없이 * 을 사용하시면 됩니다. 회사 테이블(COMPANY_TABLE)에서 업종(TYPE)이 ..
파티션 테이블이란? 파티션이란 테이블에 있는 특정 컬럼값을 기준으로 데이터를 분할해 저장해놓은 테이블입니다. 이때 논리적인 테이블은 1개이지만 물리적으로는 분할한 만큼 파티션이 만들어져 입력되는 컬럼 값에 따라 분할된 파티션별로 데이터가 저장됩니다. 파티션 테이블을 만드는 목적은 대용량 테이블의 경우 데이터 조회 시 효율성과 성능을 높이기 위한 것입니다. 파티션 테이블 만들기 예제 create table SALES ( sales_no number, sale_year number, sale_month number, sale_day number, customer_name varchar2(30), birth_date date, price number, state varchar2(2) ) partition by..
시노님(Synonym)이란? 데이터베이스 객체는 각자 고유한 이름이 있습니다. 이 객체들에 대한 동의어를 만드는것이 바로 시노님입니다. 한마디로 객체에게 가명을 주는것이라고 생각하면 되며 ALIAS와 비슷합니다. 다만 ALIAS는 1회성인 반면 시노님(Synonym)은 영구적이라고 볼 수 있습니다. 보통 다른 유저의 객체를 참조할 때 많이 사용을 합니다. 실제로 시노님을 사용하는 목적은 다른 유저의 객체를 사용할때 유저의 이름과 객체의 실제이름을 사용하는데 그 두개를 감춤으로써 데이터베이스의 보안을 개선하기위해 사용되어집니다.시노님에는 PUBLIC과 PRIVATE타입이 있습니다. PUBLIC은 모든 사용자가 접근할 수 있고 PRIVATE는 특정사용자에게만 참조가 가능합니다. 시노님(Synonym)생성 -..
시퀀스(Sequence)란? 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체입니다. 보통 PK값에 중복값을 방지하기위해 사용합니다. 예를들어 게시판에 글이 하나 추가될때마다 글번호(PK)가 생겨야 한다고 해보겠습니다. 만약 100번까지 글 번호가 생성되어있다면 그 다음 글이 추가가 되었을 경우 글 번호가 101으로 하나의 ROW를 생성해주어야 할것입니다. 이때 101이라는 숫자를 얻으려면 기존 글번호중 가장 큰 값에 +1을 하는 로직을 어딘가에 넣어야하는데 시퀀스를 사용하면 이러한 로직이 필요없이 데이터베이스에 ROW가 추가될때마다 자동으로 +1을 시켜주어 매우 편리합니다. 시퀀스(Sequence) 생성 --문법 CREATE SEQUENCE [시퀀스명] INCREMENT BY [증..
인덱스(Index)란? 인덱스는 데이터베이스 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체이며 일종의 색인기술입니다. 테이블에 index를 생성하게 되면 index Table을 생성해 관리합니다. 인덱스는 테이블에 있는 하나이상의 컬럼으로 만들 수 있습니다. 가장 일반적인 B-tree 인덱스는 인덱스 키(인덱스로 만들 테이블의 컬럼 값)와 이 키에 해당하는 컬럼 값을 가진 테이블의 로우가 저장된 주소 값으로 구성됩니다. 인덱스(Index) 사용 예시 인덱스 생성 --문법 CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2, 컬럼3.......) --예제 CREATE INDEX EX_INDEX ON CUSTOMERS(NAME,ADDRESS); --예제 컬럼 중복 X CR..
오라클 샘플 테이블 & 데이터 만들기 예제 오라클에서 제공하는 샘플 테이블 및 데이터입니다. 쿼리문 연습용으로 활용하시면 좋습니다. 아래에 있는 스크립트를 복사하여 실행시켜 테이블을 만들고 / 데이터를 넣으시면 됩니다. 혹여나 에러가 나시면 가장 마지막에 있는 테이블 Drop 스크립트를 실행시켜주세요. https://www.oracletutorial.com/getting-started/oracle-sample-database/ 샘플 테이블 ERD 샘플 테이블의 구조는 아래사진과 같으니 참고해주시기 바랍니다. Create Table (테이블 생성) Insert Data (데이터 삽입) Drop Table (테이블 삭제) 스크립트가 길어 텍스트파일로 첨부합니다. 해당 텍스트파일을 다운받으시고 안에있는 SQL..
뷰(View)란 무엇인가? 뷰(View)는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체입니다. 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있습니다. 또한 테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 만들어 사용할 수 있습니다. 뷰(View)의 사용 목적 코딩을 하다보면 여러개의 테이블에서 필요한 정보를 뽑아 사용할때가 많습니다. 이때 좀 더 편리하게 사용할 수 있는 방법중의 하나가 바로 뷰입니다. 뷰를 사용하면 복잡한 질의를 쉽게 만들어 줍니다.. 여러테이블의 JOIN과 GROUP BY 같은 같은 복잡한 쿼리를 view로 저장시켜놓으면 다음부터는 저장한 view의 정보만 가져오면 되므로 쉽게 좀 더 편리하게 사용할 수 있습니다. 일..
데이터 타입 데이터 타입이란 컬럼이 저장되는 데이터 유형을 말합니다. 오라클에서 기본적으로 제공하는 기본 데이터 타입과 이 기본데이터 타입을 혼합하여 만들 수 있는 사용자 정의 데이터 타입으로 구분할 수 있습니다. 기본 데이터 타입은 문자형, 실수, 소수, 자료형 등의 여러 데이터를 식별하는 타입입니다. 문자 데이터 타입 데이터타입 설명 CHAR(n) 고정길이 문자 / 최대 2000byte / 디폴트 값은 1byte VARCHAR2(n) 가변길이 문자 / 최대 4000BYTE / 디폴트 값은 1byte NCHAR(n) 고정길이 유니코드 문자(다국어 입력가능) / 최대 2000byte / 디폴트 값은 1byte NVARCHAR(n) 가변길이 유니코드 문자(다국어 입력가능) / 최대 2000byte / 디폴..
테이블의 갯수가 점점 많아지다보면 어떠한 기능을 만들때 어떤 테이블을 써야하는지 어떤 테이블을 조인해야하는지 모르는 경우가 많습니다. 이럴때 활용할 수 있는 방법이 전체 테이블 목록을 보면서 찾는법, 코멘트를 찾는법 컬럼을 찾는법등이 있습니다. 오늘은 이러한 방법에 대해 소개해드리려 합니다. 전체 테이블 목록 조회 --전체 테이블 목록 조회 select * from all_all_tables select * from dba_tables select * from all_objects where object_type = 'TABLE' --접속 계정 테이블 조회 select * from tabs select * from user_objects where object_type = 'TABLE' select * ..
오래간만에 오라클과 오라클 디벨로퍼을 설치해서 접속하려는데 에러가 터졌습니다. Listener refused the connection with the following error : ORA-12505, TNS: listener does not currently know of SID given in connect descriptor 이라는 에러인데요. 해석하자면 리스너는 현재 연결 디스크립터에 제공된 SID를 알 수 없어 연결을 거부했습니다. 라는 뜻이네요. 접속 정보가 잘못된 모양입니다. Listener refused the connection with following error 오류 해결! 구글링 해보니 오라클 12c부터는 기본 SID가 orcl이더군요. 하지만 오라클 디벨로퍼에서 기본 접속 SID..
오래간만에 개인 PC에 오라클을 설치하고 계정을 만들려고 하니 오류메시지가 하나 출력되었습니다.ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 이라는 오류 메시지인데요. 오라클 12c부터는 공통계정앞에 c##을 붙이도록 네이밍 규칙이 바뀌었더군요. C## 키워드가 붙는 이유는 12c 버전부터 등장하는 CDB, PDB 개념 때문이라고 합니다. 11g까지만 사용해봤었던 저로써는 오늘도 하나 배워갑니다. ㅎㅎ; C##을 붙여주니 정상적으로 계정이 만들어집니다. 권한을 줄때도 앞에 C##을 붙여주어야 합니다. 토드나 sql developer 같은 sql 개발툴에 접속할때도 꼭 앞에 C##을 붙여주셔야 합니다. 그렇지 않으면 위와같이 사용자명/비밀번호가 부적합, 로그온할 수 없습니다. 라는 오류 메..
오라클은 오라클이라는 회사에서 배포하는 데이터베이스입니다. 아래에 링크된 오라클 공식 홈페이지에서 다운로드하실 수 있습니다. (오라클 회원이 아니라면 다운로드 하실 수 없으니 회원가입은 꼭 해주세요!!) https://www.oracle.com/database/technologies/oracle-database-software-downloads.html Database Software Downloads | Oracle Oracle Database 11g Release 2 Standard Edition, Standard Edition One, and Enterprise Edition 7/13: Patch Set 11.2.0.4 for Linux and Solaris is now available on su..