IT 프로그래밍/ORACLE2014. 1. 25. 02:59

앞전 포스트에서 select 에 대해서 알아보았습니다.

 

이번에 보실 where 조건은 내가 보고싶은 데이터만 쏙 빼와서 볼 수 있도록 해주는것입니다.

 

예를들어 select * from article; 라고 입력하면 article 테이블에 있는 모든 컬럼의 모든 데이터를 볼 수 있게됩니다.

 

그림을 보도록 하죠

 

빨간색 사각형 안에 있는것들이 컬럼이고 보라색 사각형안에 있는것들은 데이터 입니다.

 

저렇게 모든 데이터가 나오게 되니깐 제가 찾고자 하는걸 볼수가 없네요

 

그래서 where 조건을 사용해서 제가 원하는 데이터를 찾을수 있습니다.

 

제가 찾고자하는게 TITLE 컬럼에서 값이 독크루저 라는것을 찾고자 하면 이렇게 하면 됩니다.

 

select * from article where title = '독크루저';

 

그럼 결과는 이렇게 나옵니다.

 

 

빨간 사각형 보이시죠?

 

title 의 값이 독크루저 라는 컬럼의 모든 값이 출력되게 됩니다.

 

이해가 되셨나요?

 

참고로 where = '독크루저'; 할때 where = 다음에 조건을 줄때 문자형이면 반드시 ''(싱글코테이션)을 주셔야 하고

 

숫자일경우는 ''(싱글코테이션)을 주시면 안됩니다.

 

궁금하신점은 댓글로 남겨주세요.

 

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:58

오라클에서 가장 많이 사용하는 명령어가 아마 select 문 이라고 생각합니다. 필드에서도 select 문을 어떻게 하느냐에 따라서 몸값에 엄청난 차이가 많이 발생하죠.

 

그럼 select문에 대해서 알아보겠습니다.

 

아래는 select문의 기본 형식입니다.

 

SELECT * FROM table_name;

 

SQL 명령어는 하나의 문장으로 구성되어야 하는데 여러 개의 절이 모여서 문장이 되는 것이고 이러한 문장들은 반드시 세미콜론(;)으로 마쳐야 합니다.

 

SELECT문은 반드시 SELECT와 FROM이라는 2개의 키워드로 구성되어야 합니다. 이 두 개의 키워드를 기준으로 SELECT절과 FROM절로 구분됩니다.

 

SELECT절은 출력하고자 하는 컬럼의 이름을 기술합니다. 특정 컬럼의 이름 대신 *(에스테리스크) 를 기술할 수 있는데, *는 테이블 내의 모든 컬럼을 출력하고자 할 경우 사용합니다. FROM절 다음에는 조회하고자 하는 테이블의 이름을 기술합니다.

 

예를 다시 하나 더 들어볼께요.

 

CREATE TABLE EXAM (A NUMBER(4), B VARCHAR(20));

 

이렇게 해서 EXAM 이라는 테이블을 생성했습니다.

 

여기에 A 컬럼과 B 컬럼에 값을 입력합니다.

 

INSERT INTO EXAM (A, B) VALUES(1, '가');

INSERT INTO EXAM (A, B) VALUES(2, '나');

INSERT INTO EXAM (A, B) VALUES(3, '다');

 

이렇게 하면 EXAM 테이블에 값이 입력되어지게 됩니다.

 

이제 값들을 조회하는 SELECT문을 사용해보도록 하겠습니다.

 

SELECT * FROM EXAM;  <- 하면 결과가 어떻게 나오게 될까요?

 

 A

B

 1

 가

 2

 나

 3

 다

 

위 표와 같이 결과가 나오게 됩니다. 즉 A 컬럼에는 1,2,3 값이, B 컬럼에는 가,나,다 라는 값이 입력되어 있습니다.

 

이해가 되셨는가요?

 

이제 다른 방법으로 조회하는것을 알아보겠습니다.

 

SELECT A, B FROM EXAM;

 

이렇게 하면 결과가 어떻게 나올까요?

 

 

 A

B

 1

 가

 2

 나

 3

 다

 

 

예~ 똑같은 결과가 나오네요.

 

우선 위 코드를 보면 중간에 * 와 A, B 가 차이가 있다는것을 알 수 있습니다.

 

이렇게 컬럼의 숫자와 데이터 숫자가 작으면 * 를 사용해도 크게 상관없으니

 

대기업 및 공기업에서는 그렇게 해서는 안됩니다.

 

왜냐하면 데이터 검색속도에서 매우 많은 차이가 발생하기 때문입니다.

 

그렇기때문에 가급적이면 컬럼명을 정확하게 입력해주도록 합니다.

 

다음 포스트는 SELECT 문에 WHERE 문을 적용시키는 방법에 대해서 포스팅 하겠습니다.

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:58

ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

프로세스 ID: 0

세션 ID: 0 일련 번호: 0

 

위와 같은 에러가 발생이 된다면 데이터베이스가 기동되지 않았기 때문입니다.

DBA 권한이 없는 일반 유저 계정은 데이터베이스가 기동중인 경우에만 데이터베이스에 접근할 수 있습니다. DBA 권한을 가진 SYS 계정으로 로그인해야 STARTUP 명령어로 데이터베이스를 기동할 수 있습니다. 우선 SYS 계정으로 로그인 합니다.

 

sqlplus sys/change_on_install as sysdba

 

sys 계정으로 로그인하였다면 다음과 같이 입력하여 데이터베이스를 기동합니다.

 

startup

 

이렇게 기동한 후에는 scott 계정으로 접속이 가능해집니다.

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:57

만일 scott 계정의 암호가 기억이 안난다면 DBA 관리자인 SYS 또는 SYSTEM으로 접속해서 아래와 같이 입력합니다.

 

alter user scott identified by tiger account unlock;

 

이렇게 입력을하면 scott 계정의 비밀번호를 tiger 로 바꾼다는 의미입니다.

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:56

오라클에서 로그인할때 아래와 같은 에러가 발생이 된다면 약간의 조치를 취하도록 합니다.

 

ERROR:

ORA-28000: the accoutn is locked

 

이때는 사용자 계정을 풀기 위해 시스템 권한인 DBA 권한을 가진 사용자 계정으로 접속해야 합니다. DBA에는 다른 모든 사용자를 생성하거나 삭제, 변경하는 기능이 있기 때문에 사용자의 성격을 변경할 수 있습니다.

 

DBA 관리자인 SYS 혹은 SYSTEM 사용자로 접속한 후에 SCOTT 사용자 계정을 풀면 SCOTT 사용자로 접속할 수 있습니다. 다행히 DBA는 기본적으로 게정이 활성화되어 있기 때문에 오라클을 설치했을 때 입력한 암호만 기억하면 언제든지 로그인할 수 있습니다.

 

SYS 혹은 SYSTEM 사용자 게정으로 로그인합니다. SYS 혹은 SYSTEM 사용자로 접속할 경우 오라클 설치할때 지정한 암호를 입력하면 됩니다.

 

sqlplus sys/change_on_install 혹은 sqlplus system/manager 로 접속합니다.

 

서버 매니저인 system이라는 사용자로 로그인하였다면 다음과 같이 입력하여 scott 사용자의 계정 잠금을 해제합니다.

 

alter user scott account unlock;

 

scott 사용자에 설정된 잠금이 풀렸다면 scott으로 다시 접속합니다. 이미 system 사용자로 로그인된 상태라면 connect 명령어를 사용하여 다른 사용자로 접속을 시도합니다.

 

connect scott/비밀번호

 

비밀번호는 오라클 설치할때 scott 계정의 비밀번호 입력했던것을 입력하시면 되겠습니다.

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:55

오라클을 설치하면 기본적으로 생성되는 계정이 있습니다. 제공되는 계정은 시스템 권한을 가진 사용자인 DBA용 계정(SYS, SYSTEM)과 교육용 계정(SCOTT, HR)의 두 가지로 나뉩니다.

오라클에 접속하기 위해서는 사용자 계정이 필요합니다. 오라클을 설치하면 기본적으로 생성되는 사용자 계정 중에서 scott을 사용합니다. 오라클 설치과정중에 scott의 비밀번호를 설정하는 부분이 있었는데 그때 입력한 비밀번호를 입력하면 됩니다. 저는 비밀번호로 tiger로 했습니다.

 

콘솔창에서 아래와 같이 입력합니다.

sqlplus scott/tiger

성공적으로 접속이 끝나면 다음과 같이 sql 프롬프트가 나타납니다. SQL>

 

오라클을 종료하고 싶을때는 그냥 exit를 입력하시면 됩니다.

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 25. 02:54

이번에는 오라클에서 CREATE 문을 살펴보겠습니다.

 

CREATE문은 새로운 테이블을 생성합니다. 아래는 CREATE TABLE문의 기본 형식입니다.

 

CREATE TABLE table_name(column_name, data_type expr, ...);

 

아래는 부서 번호, 부서 이름, 지역 이름으로 구성된 부서 테이블을 새롭게 생성하는 예제입니다.

 

CREATE TABLE DEPT01(

DEPTNO NUMBER(4),

DNAME VARCHAR2(10)

);

 

위 명령어를 수행하고 나면 존재하지 않았던 DEPT01이라는 테이블이 생성됩니다. CREATE TABLE은 새롭게 생성될 테이블의 이름과 함께 그 테이블을 구성하는 컬러 이름과 각 컬럼의 성격을 규정합니다.

위 예제에서 첫번째 라인의 CREATE TABLE DEPT01 은 DEPT01 이라는 이름의 테이블을 생성하라는 뜻 입니다.

두번째 라인의 DEPTNO NUMBER(4)는 DEPT01 테이블 안에 DEPTNO 라는 컬럼을 생성하고 DEPTNO 컬럼의 속성은 4자리의 숫자를 저장할 수 있다는 뜻 입니다.

세번째 라인의 DNAME VARCHAR2(10)은 DNAME이라는 컬럼을 생성하고 DNAME 컬럼의 속성은 최대크기가 10인 가변 길이 문자 데이터를 저장할 수 있다는 뜻 입니다.

 

다음은 컬럼을 정의할 때 지정할 수 있는 데이터형을 정리한 표 입니다.

 

 이름

설명 

 CHAR(size)

고정 길이 문자 데이터입니다. VARCHAR2와 동일한 형태의 자료를 저장할 수 있고, 입력된 자료의 길이와는 상관없이 정해진 길이만틈 저장 영역을 차지합니다. 최소 크기는 1 입니다. 

 VARCHAR2(size)

Up to 2000 Bytes 가변 길이 문자 데이터입니다. 실제 입력된 문자열의 길이만큼 저장영역을 차지합니다. 최대 크기는 명시해야 하며, 최소 크기는 1 입니다. 

 NUMBER

Internal Number Format 최고 40자리까지의 숫자를 지정할 수 있습니다. 이때 소수점이나 부호는 길이에 포함되지 않습니다. 

 NUMBER(w) 

w자리까지의 수치로 최대 38자리까지 가능합니다.(38자리가 유효 숫자입니다) 

 NUMBER(w, d) 

w는 전체 길이, d는 소수점 이하 자릿수입니다. 소수점은 자릿수에 포함되지 않습니다 

 DATE

BC 4712년 1월 1일 ~ AD 4712년 12월 31일까지의 날짜입니다. 

 LONG

가변 길이의 문자형 데이터 타입이며, 최대 크기는 2GB입니다. 

 LOB

2GB까지의 가변 길이 바이너리 데이터를 저장시킬 수 있습니다. 이미지 문서, 실행 파일을 저장할 수 있습니다. 

 ROWID

ROWID는 Tree-piece Format을 갖습니다. ROWID는 DB에 저장되어 있지 않으며, DB Data도 아닙니다. 

 BFILE 

대용량의 바이너리 데이터를 파일 형태로 저장하며, 최대 4GB 입니다. 

 TIMESTAMP(n)

DATE형의 확장된 형태입니다. 

 INTERVAL YEAR TO MONTH

년과 월을 이용하여 기간을 저장합니다. 

 INTERVAL YEAR TO SECOND

일, 시, 분, 초를 이용하여 기간을 저장합니다. 두 날짜값의 정확한 차이를 표현하는데 유용합니다. 

 

 

 

Posted by 정윤문경아빠
IT 프로그래밍/ORACLE2014. 1. 24. 01:10

안녕하세요. 이번에는 SQL의 개념에 대해서 알아보겠습니다.

 데이터베이스란 데이터를 관리하는 시스템을 말합니다. 이런 데이터들은 물리적인 파일 형태로 저장되어 있지만 이들 파일을 직접 열어서 데이터를 보는 것은 아닙니다. SQL(Structured Query Language) 이라는 질의 언어를 통해 데이터베이스에 저장된 데이터를 조회, 입력, 수정, 삭제하는 등의 조작이나, 테이블을 비롯한 다양한 객체(시퀀스, 인덱스 등)를 생성 및 제어합니다.

데이터베이스 관리 시스템(DBMS)에는 여러 가지가 있지만, DBMS의 SQL문과 약간의 문법적 차이를 제외하고는 비슷합니다. 따라서 오라클에서 사용하는 문법을 잘 익혀 두면 MS-SQL, MY-SQL과 같은 DBMS에서도 문제없이 SQL문을 사용할 수 있습니다. 이러한 SQL은 사용하는 용도에 따라서 나눌 수 있습니다. 대표적인 것들에 대해서 살펴보겠습니다.

 

1. 데이터 정의어(DDL)

데이터베이스 관리자나 응용 프로그래머가 데이터베이스의 논리적 구조를 정의하기 위한 언어로, 데이터 딕셔너리(Data Dictionary)에 저장됩니다.

 2. 데이터 조작어(DML)

데이터베이스에 저장된 데이터를 조작하기 위해 사용하는 언어입니다. 데이터 검색(Retrieval), 추가(Insert), 삭제(Delete), 갱신(Update) 작업을 수행합니다.

 3. 데이터 제어어(DCL)

데이터에 대한 접근 권한 부여 등의 데이터베이스 시스템의 트랜잭션을 관리하기 위한 목적으로 사용되는 언어입니다.

다음 표는 명령문을 유형별로 나누어 놓은것입니다

유형 

명령문 

DQL : Data Query Language(질의어) 

SELECT(데이터 검색시 사용) 

DML : Data Manipulation Language(데이터 조작어)

  - 데이터 변경시 사용 

INSERT(데이터 입력)

UPDATE(데이터 수정)

DELETE(데이터 삭제) 

DDL : Data Delinition Language(데이터 정의어) 

CREATE(데이터베이스 생성)

ALTER(데이터베이스 변경)

RENAME(데이터베이스 객체 이름 변경)

TRUNCATE(데이터베이스 저장 공간 삭제) 

TCL : Transaction Control Language(트랜잭션 처리어) 

COMMIT(트랜잭션의 정상적인 종료 처리)

ROLLBACK(트랜잭션 취소)

SAVEPOINT(트랜잭션 내에 임시 저장점 설정) 

DCL : Data Control Language(데이터 제어어) 

GRANT(데이터베이스에 대한 일련의 권한 부여)

REVOKE(데이터베이스에 대한 일련의 권한 취소) 

오라클을 배운다는 것은 SQL을 배우는 것이라고 해도 과언이 아닙니다. SQL문은 아주 다양한 명령어와 문법구조를 제공하기 때문에 이를 다 언급할 수는 없으므로 SQL문을 위해 가장 기초적인 문장들을 다음 포스트에서 살펴보겠습니다.

 

Posted by 정윤문경아빠