Step by Step

오라클 2021-02-05

unboxing 2021. 2. 5. 01:22

오라클 인터넷강의를 듣던중 학원에서 팀원들과 만들었던 프로젝트는 DB를 참조하지도 못했다는것을 알게됨

데이터베이스를 만들어 조금더 효과적으로 사용하였어야 했다는것을 반성하고

다음 개인 프로젝트에서는 이 부분을 개선할것

 

 

 

DDL create  alter drop  
  생성 수정 삭제  
DML select  insert  update  delete
  검색 생성 수정 삭제
DCL grant  revoke    

 

 

오라클을 사용하기위해 오라클 DBMS를 설치 18c(무료버전) / 상업적으로 쓸수없음

setup은 (관리자권한) 으로 설치

 

 

SQL 작성도구인 SQL Debeloper 별도 설치

 

pdbs ( 가상데이터베이스 ) 18c 버전에있고 11g 버전에는 없다

 

 

원격 접속을 위한 설정 변경  (cmd -> sqlplus sys as sysdba)

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

 

 

보기->DBA : 데이터베이스의 구조를 만들기위함(db의 권한을 설정하기위해)

DBA  ->접속 -> 설정한서버 

테이블 스페이스2개  :  저장(table space)유형:영구 / 임시 (log space) 유형:임시 

디렉토리 : 저장공간설정

보안->사용자->새로만들기 : 테이블스페이스를 사용할수있는 사용자 추가(사용자명은 대문자)

                                     기본테이블스페이스와 임시테이블스페이스 준비한 테이블스페이스를 선택

 

권한 설정 (예제 : 모두관리자에서 sysrac sysoper syskm 해제) 저장

 

이후

새로운 데이터베이스 만들기 (새로만든사용자 계정) 접속 

---> 새로운 계정으로 접속할수있는 데이터베이스에 연결됨

 

 

 

오라클 데이터형식 

*모든데이터가 고정된값이면 CHAR , 고정된값이 아니면 VCHAR2 사용

 

[문자열]

고정된공간 데이터타입 CHAR (size = 1 byte)

고정된공간 전세계적인(유니코드) 데이터 타입 NCHAR (size=2 or 3byes) 

가변길이의공간 데이터 타입 NVARCHAR2

가변길이의 전세계적인(유니코드) 데이터 타입 NVARCHAR2

 

* 문자가 몇 byte 인지 검색하는 sql문 

   select lengthb('검색할문자') from dual;

*NCHAR 을 사용함으로써 byte 걱정을 줄일수있게됨 

한글 두글자인 남성 여성은 NCHAR를 사용함으로 효율적인 공간 확보

(ex)  GENDER NCHAR(2)    --남성,여성 

 

 

[대용량 문자열]

LONG - 현재 많이사용하지않음

CLOB - 최근에 나온방식 ( 최대 4Gbyte )

NCLOB - 최근에 나온방식 ( 최대 4Gbyte )

 

 

[정수,실수]

NUMBER(4) - 최대 4자로 이루어진 숫자

NUMBER(6,2) - 소수점 2자리를 포함하는 최대 6자리의 숫자(소수점 둘째 자리에서 반올림)

NUMBER(6,-2) 소수점 -2자리에서 반올림하는 최대 6자리의 숫자

NUMBER - 아무것도 안썻을시 맥시멈 (38,*)

NUMBER(*,5) - NUMBER(38,5)

 

 

[날짜]

DATE -- 년월일

TIMESTAMP -- 년월일 시분초

 

 

느낀점: 복습겸 학원에서의 배운 강의말고 인터넷으로 찾아보니 좀더 자세하게 알수있었다.

유튜브(뉴렉처 오라클 8강까지 완)

 

 

 

[ALTER] 

ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼타입;      : 컬럼타입을 수정

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;        : 테이블의 한 컬럼을 삭제

ALTER TABLE MEMBER ADD 컬렴명 컬럼타입;          : 테이블의 한 컬럼을 추가

 

*DDL의 한해서는 많은개발자들이 명령어보다는 편집도구를 사용해 편집한다.

*오라클에서 예약어 , 부적합한 테이블명을 포함하고있을경우에는 "" 로 감싸서 사용 할 수 있다.

*예약어는 대소문자를 가리지 않지만 값은 가리기때문에 사용시 주의

 

 

[INSERT]

INSERT INTO 테이블명 VALUES 값목록

 

모든 필드 값을 입력하기

INSERT INTO 테이블명 VALUES ('값','값','값','값','값')

 

원하는 필드만,원하는 순서대로 입력 (나머지 컬럼에는 NULL값이 들어감)

INSERT INTO 테이블명(컬럼명,컬럼명) VALUES('값','값')

 

 

[SELECT]

SELECT * FROM 테이블명;

 

* 은 모든 컬럼에 대해서 정보를 조회

값, 값 으로 원하는 정보를 조회 ( , 는 구분자)

 

as : 컬럼명의 별칭 (생략이 가능하다)

(ex) SELECT id (as) user_id FROM MEMBER;

 

"" : as "별칭" 은 유지하면서 문자열로 별칭을 생성 (공백도 유지,대소문자 유지)

 

 

[UPDATE]

UPDATE 테이블명 SET 컬럼명 = '바꿀값';

 

WHERE을 이용해 바꿀값 컬럼명을 정해준다

UPDATE 테이블명 SET 컬럼명='바꿀값' WHERE 컬럼명='조건컬럼명값';

 

 

[DELETE]

DELET 테이블명 WHERE 컬럼명='조건컬럼명';   (대소문자를 구분한다)

 

 

트랜잭션 : 업무의 실행단위/논리 명령단위

 

commit , rollback 을 하지않으면 자동적으로 ROCK을 걸어줌

 

오라클에서 숫자 더하기 연산자 +

EX) SELECT 1+'3' FROM DUAL;

   result = 4 (문자열과 숫자의 더하기도 숫자로 연산된다)

 

오라클에서 문자열 더하기 연산자 || 

EX) SELECT 1 || '3' FROM DUAL; 

     result = 13

 

* 연산된 컬럼에는 반드시 별칭을 써준다

 

(유튜브 뉴렉처 14강 진행중)

 잔[UPDATE]

 

 

 

UPDATEㅇ