본문 바로가기
CLASS/DATABASE

#2-1 / Oracle 사용자 추가 / 문자,숫자,date 자료형

by hingu 2024. 9. 2.

Oracle

- Container 기준으로 잡혀있음

 

CDB

- Oracle의 큰 운영체제 Database -> Database를 구성

- Seed라는 Database를 이용해서 PDB를 활용함

 

[ 관리자 ]

system 사용자 -> sysoper (DB-startup,close,backup,recover,mount)

sys 사용자 -> sysdba (오라클의 모든 권한을 갖는 관리자 - 사용자 추가,권한 부여 등등..관리함)

 

CDB를 복제한 SEED

🔽

PBD : Seed를 복제한 Database(가상 DB)

 

cmd로 접속시 sys는 sysdba 또는 sysoper로 접속을 해야하며, 해당 설정은 as로 구분하여 접속합니다.

 

[기본사용자] => pdbs를 생성시

- HR (인적자원 관리 사용자)

- PM (상품정보 관리 사용자)

- SH (판매정보 관리 사용자)

- BI (비지니스 모델 관리 사용자)

 

 


 

👀 [Table 생성 및 Data를 입력시 - space 공간이 필요함]

1. Tablespace - Table을 생성할 때 사용하는 공간

2. Tablelogspace - Table 로그 기록을 남기는 공간

3. 사용자를 추가

    - SYSKM : 암호화 관련 규정사항

    - SYSOPER : Database를 정지, 강제 백업 , 추가 사용자 등록

    - SYSRAC : 사용자 그룹형태를 구성하는 기능 , 일반 사용자에게 관리자 권한 줄 수 있음
  => 얘네는 권한 체크아웃 필히!! 

4. 가상의 database를 접속하는 방식

sqlplus로 접속시
sqlplus HANA/hana1234@localhost:1521/xepdb1      

외부 SQL 접속
sqlplus HANA/hana1234@172.30.1.83:1521/xepdb1      


=> show con_name;

해서 XEPDB1 뜨면 잘 들어온거임

 

 

 

d드라이브 space에 tablespace 생김

 

요기 가서 만들면 됨ㅎ...

 

권한 다 체크 , SYSKM,SYSOPER,SYSRAC 는 체크아웃 필수

 

👀 명령어 

  • sqlplus sys as sysdba
    로그인시 
  • show pdbs;
    가상의 Dtabase 리스트를 확인하는 명령어
  • select name from v$pdbs;  ( $는 option을 의미함 )
    == show pdbs와 동일한 기능 , 리스트 확인
  • show con_name;
    현재 위치한 container name을 출력하는 명령어
    내가 어디있는지...
  • select cdb from v$database;
    현재 가동을 하고있는지 확인 (가동시 YES 출력됨)


👀  Oracle 문자 자료형

  • char : 1byte / 고정길이  / ex) char(4)  : 영어,숫자 4자까지
  • varchar : 가변길이
  • varchar2 : Oracle 전용 자료형
  • nchar : 한글도 4자까지 입력 가능  / ex) nchar(4)  : 한글,영어,숫자 혼합 4자까지
  • navarchar : 많이씀

varchar    vs    varchar2

자료형 변환 : varchar에서 varchar2로 변경 불가

숫자, 알파벳,한글 (varchar,varchar2 여유길이를 적용해야함)

oracle에서는 varchar보다 varchar2를 권장함

 

 

👀  Oracle 숫자 자료형

  • int : oracle에선 int 쓸 수는 있으나 권장하지 않음 ㅠ (  Integer 쓰세용  )
    int, Integer은 (byte) 입력하지 않음  / ex) mtel int not null , mtel Integer not null
  • long : int,Integer과 동일  , 2Gbyte까지 인식 가능
  • number : 크기를 정할 수 있음 ( max - 38자리 숫자까지 적용 가능 )
    정수, 소수 모두 사용 가능 / 반올림도 사용 가능 
    정수 : number(8) => 단, 문자형태의 강제로 소숫점이 입력될 경우 반올림이 이루어짐
    소수 : number(8,2) => 소수점으로 표현 (소수점 2자리 포함 8자리)
    ex) mtel number(11) not null
          mpoint number(5,2) not null          => 5자리 숫자 중 2자리를 소숫점으로 설정 가능 - 123.23
          mpoint number(6,3) not null          => 6자리 숫자 중 3자리를 소숫점으로 설정 가능 - 123.123
  • clob : long의 update버전 , 4Gbyte까지 인식 가능
  • nclob : 유니코드/clob보다 더 큰 data type 입력 가능 

=> 숫자 자료형 모두 첫자리는 0 불가

 

 

👀  Oracle 날짜 자료형

 

sysdate : mysql의 now() 와 같은기능

 

insert into member2 values ('2024-09-02 14:22:22',sysdate,sysdate);
//=> 요렇게 넣어도 알아서 잘 들어감

 

 날짜 관련 명령어 

  • select length('홍길동')from dual; 
    length 확인
  • select sysdate from dual;
    날짜 확인
  • select to_char(today,'YYYY-MM-DD HH24:MI:SS') from member2;
    날짜 형식변경해서 출력
  • select * from gv$nls_parameters (요걸로 확인해서) 
    alter session set NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
    alter session set NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
    (요걸로 타입 자체를 변경해버리는 방식)
    ⭐ 초반에 세팅 꼭 해줘야지 jsp,jstl,thymeleaf로 출력할 때 편하다!!

 

🔽

잘 바뀌었네욤

'CLASS > DATABASE' 카테고리의 다른 글

#3-2/ Oracle data복구  (0) 2024.09.03
#3-1/ Oracle table,column  (1) 2024.09.03
🌸 Oracle Setting  (0) 2024.08.21
mysql -> json 변환 사이트  (0) 2024.07.01
#5-2 / trigger 응용문제 , signed,unsigned  (0) 2024.06.10