Oracle

Oracle 필수 개념 : 테이블, 따옴표, 컬럼 추가, 제약조건

우아개발자 2023. 11. 9.

Oracle는 대기업에서 많이 사용하는 데이터베이스라고 하죠. 사실 MySQL과 비슷한 듯 하지만, 조금은 다른 함수인데요. Oracle이 조금 더 기능이 많고, 유용하다고 합니다. 공부를 조금 더 오래 하고 싶으신 분들은 Oracle을, 간단한 데이터베이스 사용을 희망한다면 MySQL을 선택해서 사용하시면 될 듯합니다.

오라클의 테이블 생성

오라클 테이블은 MySQL의 테이블과 비슷합니다. 'create table 테이블명'을 통해서 작성하게 됩니다. 예를 들면 우리가 student라는 테이블을 생성하고자 할 때는 create 테이블을 생성하면 되는데요.  숫자는 number로, 문자는 varchar로 받는다는 것인데요. 이 점은 잘 기억해두셔야 할 듯싶습니다.

1. 오라클 필수 개념: 데이터타입 입력 시 숫자는 number로 설정하여 테이블을 생성해 줍니다.

Oracle MySQL
number값 int  / double

2. 오라클  필수 개념 :  실행할 때는 한 줄 실행과 전체 실행을 할 수 있습니다.

실행을 할 때는 한 줄 실행과 전체 실행을 할 수 있는데요. 이는 MySQL과 같습니다. MySQL에서 데이터를 입력할 때는 한 줄씩 데이터를 입력해서 실행을 할 수도 있고, 데이터를 드래그해서 여러 값을 한 번에 넣을 수도 있게 되는데요. 이 점은 변한 것이 없으니 그대로 사용하시면 될 듯합니다.

데이터베이스 구분 Oracle MySQL
실행 ctrl + enter ctrl + enter

3. 오라클 필수 개념 : 테이블 생성 시 따옴표는 어떤 역할을 할까요? 

오라클의 특징 중 하나는 대소문자를 구별하는 테이블과 대소문자를 구별하지 않는 테이블이 따로 존재한다는 것을 알고 계신가요? 아래의 코드로 예를 들어 작성해 볼게요.  아래의 코드는 두 가지의 차이점이 있습니다.

 

이런 따옴표가 있느냐 없느냐에 따라서 비교가 되는데요. 따옴표("")를 붙여서 테이블의 이름을 작성하게 되면 모든 문장에서 대소문자를 비교합니다. 하지만 이러한 따옴표를 붙여서 사용하지 않으면, 대소문자를 구별하지 않죠.

create table "users"(
	
       name   varchar2(20),
       age       number(3)
	
);

 

create table users(
	
       name   varchar2(20),
       age       number(3)
	
);

 

4. 오라클 필수 개념 :  칼럼의 데이터 추가, 제약조건, 컬럼 추가

이제부터 테이블에 데이터를 추가하는 작업을 시작해 보도록 하겠습니다. MySQL에서는 테이블에 데이터를 추가하려고 한다면 insert into "테이블명" valuse("테이블값"); 을 썼던 것을 기억하시나요? 오라클에서도 마찬가지로 insert를 사용합니다. 다만, 여러 줄을 추가할 때는 insert all이라는 명령어를 사용하는 것을 기억하셔야 할 텐데요. 아래와 같이 작성해 주면 됩니다.

 

4-1. 한 줄 데이터 값 추가하기

insert into "users" values('우아한개발',30);

 

4-2. 여러 줄의 데이터 값 추가하기

여러 줄의 데이터를 추가할 때는, insert all이라는 값을 입력해 주고 그리고 into를 작성해 주는 것인데요. 끝날 때도 마무리로 select 1 from users;를 작성해 주며 마무리해 줍니다. 테이블을 추가할 때도 만일 null값을 주고 싶지 않다면 칼럼 옆에 NOT NULL을 작성해 주기도 하죠.

insert all 
into users  values('우아한개발',20)
into users values('우와한개발', 30)
into users values('우왕한개발',25)
select 1 from users;

 

4-3. 칼럼의 제약조건

컬럼의 제약조건은 어떤 것들이 있는지 확인해 본다면 대표적인 것은 아래와 같은 제약 조건이 있습니다. 하지만 사실 제약조건을 알기 전에 우리가 알아야 할 내용이 있다면, 모든 칼럼은 DeFault임으로, 별도로 우리가 null에 대한 문구를 지정해주지 않으면 값이 없는 데이터는 "NULL" 값으로 표현할 수 있도록 허용되어있다는 것입니다. 그러니, 이러한 NULL값에 대한 예외를 주고자 혹은 변경하고자 하는 것이 제약조건이라고 생각하시면 되겠습니다.

 

(1) NOT NULL("NULL 없앴으면 좋겠다")

컬럼명 데이터타입 NOT NULL

(2) UNIQUE("이 컬럼은 좀 유일했으면 좋겠다")

-중복 값을 허용하지 않고, 해당 컬럼은 유일한 값을 지니고 있으라는 의미로 생각하시면 됩니다.

컬럼명 데이터타입 UNIQUE

 

(3) CHECK ("조건에 맞는지 체크해라")

-조건에 맞는 데이터만 체크를 하고, 그렇지 않으면 에러가 발생되는 제약조건입니다.

CONSTRAINT 체크명 CHECK 조건

 

(4) Primary KEY

PRIMARY KEY는 기본키라고도 말하며, 보통 테이블에 키를 생성할 때 쓰는 키입니다. 칼럼의 값은 반드시 존재해야 하며, 유일해야 한다는 의미를 내포하고 있는데요, UNIQUE와 NOT NULL 제약조건의 결합이라고 판단하면 좋을 듯싶습니다.

컬럼명 데이터타입 PRIMARY KEY

(5) Foregin key

다른 포스팅을 참조해주세요.

 

4-4. 칼럼을 추가하고 싶을 때는 어떻게 해야 할까요?

만일 본인이 위의 users 테이블에서, 칼럼의 값을 더 추가하고 싶어질 때면, 어떻게 해야 할까요? 칼럼을 추가하고 싶을 때는 alter를 사용해 주면 되는데요. 아래와 같이 작성해 주시면 됩니다.

ALTTER

ALTTER TABLE MANAGER1
ADD CONSTRAINT 키 이름 설정 PK_MANAGER

ALTER TABLE MANAGER1 ADD CONSTRAINT PK_MANAGER PRIMARY KEY

 

 

댓글