본문 바로가기
Programming/Oracle SQL

Oracle and its developer install, basic rules

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

 

XE Prior Release Archive

Getting Started: Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Ser

www.oracle.com

 

여기서 설치한다. (가입 필요)

 

 

비밀번호 까먹으면 재설치해야함

 

 

 

 

 

 

 

RUN SQL commend line 프롬포트에서

 

SQL은 항상 문장 끝에 ;를 붙여서 끝내야 한다! 안붙이면 문장이 안 끝난 것으로 간주하고 기다림

대소문자는 상관X

 

 

SQL> show user

user is " "          <- 연결된 유저 없음

 

SQL> conn/as sysdba   <- 시스템과 연결                         명령프롬포트는 sqlplus / as sysdba 입력시 sql과 연결
Connected.                                                                        (나가는건 exit)
SQL> show user
USER is "SYS"

 

alter user hr identified by 1234 account unlock;

 

-> user altered

 

conn hr  입력시 Enter password:   <- 입력한 1234 그대로 입력(프롬포트창에선 변화없는것처럼 나옴!! 주의!!)

SQL 커맨드와 윈도우즈 커맨드 둘 다 같은 원리로 작동한다(윈도우는 sqlplus / as sysdba 입력 필요)

일반 프롬포트에서 hr 접속하려면  (hr은 원래 있는 기본 교육용 유저이다. 다만 lock이 되어있어서 unlock해야함)

SQLPLUS 입력후 유저 hr, 비번 1234 입력

유저 삭제: drop user hr

 

 

 

이번엔 scott란 유저를 만들어보자

 

alter user scott identified by 패스워드 account unlock;

user 'SCOTT' does not exist

 

그래서 scott를 만들려면

 

create user scott identified by 1234;

 

그러나

 

ERROR at line 1:
ORA-01031: insufficient privileges

  에러코드        

로 결과나옴 (hr유저인 상태에서 만들면 이렇게 됨)

 

sys유저로 전환 후 같은 명령어 실행시: User created.  출력

 

권한 부여하기 (sys상태에서)

 

grant connect, resource, dba to scott;           <- hr상태에서는 사용자 유저라서 권한 grant 불가

                                             (resources : view 표, 객체)

grant succeeded 로 출력        (커넥트, 리소스 권한 줌)

 

 

scott로 사용자 전환 후에,

drop table department;  (drop = 삭제)    ->   table, view 이런거 애초에 없으면 error

 

table 생성하기         (varchar = string in python)

CREATE TABLE DEPARTMENT(

                       DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,

                       DNAME VARCHAR2(14),                제약조건과 key가 있는 넘버..

                       LOC VARCHAR2(13) ) ;

-> Table created.         

 

테이블 열람: desc 이름;

 

desc department;

null = 아무것도 없는 공백

 

hr은 권한이 없어서 이 표 자체를 볼 수 없다.

 

표 지우기 : drop table 이름;

 

 

 

 

또 다른 테이블         (-- <- 이건 주석문 표시)

 

CREATE TABLE DEPT(
         DEPTNO NUMBER(2) ,   --DNO (부서번호)
         DNAME VARCHAR2(14),  --DNAME (부서이름)
         LOC   VARCHAR2(13) )   --LOC   (부서위치);

 

 

CREATE TABLE EMP
        (EMPNO NUMBER(4) ,  ----사원번호
         ENAME VARCHAR2(10),  --사원이름
         JOB   VARCHAR2(9),   --사원업무
         MGR   NUMBER(4),  --사원의 관리자
         HIREDATE DATE,  --입사일(DATE 타입)
         SAL NUMBER(7,2),  --월급
         COMM NUMBER(7,2),  --인센티브/보너스
         DNO NUMBER(2) );

 

특정 테이블에 내용 추가

 

insert into 테이블이름 내용 ;

Ex) insert into dept values(10, 'ACCOUNTING', 'NEW YORK');         -> 1 row created

select * from dept;            -> 보기   (* = 모든 것)

 

 

 

Insert into Emp values(7369,'SMITH','CLERK',    7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);







 

 

이제 SQL oracle developer를 다운받자.

SQL에디터(주피터노트북 같은 것)

 

https://www.oracle.com/database/sqldeveloper/technologies/download/

 

Oracle SQL Developer Downloads

This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not already

www.oracle.com

 

 

 

만약 실행 오류가 있다면

 

윈도우 + r 에서 %AppData%\SQL Developer\ 로 입력 후, 폴더내에 있는 파일을 모두 삭제하고 다시 시도해보자.

 

 

도구 - 설정에서

원활한 한글 입력을 위해 UTF-8을 설정하자

 

 

행 여백 설정에서 번호 표시가 나오게끔 설정하자.

그외 개인 취향에 따라 글꼴 크기를 조정하는 등 디스플레이 설정을 한다.

 

 

 

 

 

 

초록 플러스를 눌러서 새로만들기를 해보자

 

SID = system identifiertest 결과 성공. (이름은 괄호쓰면 오류 可 언더바로 바꾸자)

 

 

그럼 이렇게 만들어진다

 

 

 

여기에 수많은 오라클 기능들이 있다.

 

 

 

아까 만든 두 표가 다 있다.

 

표를 클릭하면 열람이 된다.

 

column ID는 생성된 순서를 보여준다.

 

 

 

이걸 클릭하고

 

 

데이터베이스 파일을 누르면

 

 

sql파일을 생성할 수 있다.

 

 

 

아까 commit 안되어 누락된 것을 dept 에 넣고 refresh를 해보자

(이 편집기 툴은 자동 커밋이다.)

 

insert into dept values(10, 'ACCOUNTING', 'NEW YORK'); 

입력 후 ctrl + enter로 실행!

 

그러면 해당 내용은

 

 

dept table의 columns이 아닌 data 탭에 새로 생성된다.

(안보이는 경우 refresh를 해준다.)

 

 

resource is busy error  <- 컴퓨터 메모리 사용량이 높다는 의미. 작업관리자에서 정리해주자.

 

 

 

 

SQL은 커서가있는 곳 한 줄

블럭단위

혹은 전체 선택 등으로 부분 실행이 可

 

 

ROLLBACK;

 

입력시 이전에 수행한 액션이 모두 취소된다. UNDO 효과이다. commit은 save의 의미를 지니고 있다.

 

 

 

 

DDL = Data Definition Language (데이터정의어):   유일하게 ; 생략 可 명령어!

 DDL코드들    ex) CREATE, ALTER, DROP OBJECT(TABLE, VIEW, SYNONYM, USER 등)

 

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

 DML코드들    ex) INSERT, SELECT(JOIN), UPDATE, DELETE

 

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

 DCL코드들    ex) COMMIT, ROLLBACK

 

 

[사용자 유형]

DBA : DB관리자 = sysdba -> 최상위 권한 소유자. ex) 유저 만들기, 표 생성, 패스워드 권한 설정

       실예) sqlplus / as sysdba  (기본)          conn/as sysdba   (sql commend)

          DDL, DCL 주로 사용. DML은 조회용

 

개발자: DML 주로 사용 (Java, Python, 등)

 

사용자: hr유저    DML 주로 사용하지만 해놓은 것을 쓰는 느낌.

 

 

 

SQL은 DB(Data base)를 다룸. DB없이 다뤄지는 작업은 없다. 그래서 중요함.

 

 

[DBMS 종류]                                  microsoft         IBM(은행권, 서버중심)

Oracle (세계적으로 많이쓰는)   >   MS-SQL     >  DB2   >  my SQL  > informix, sybase(SAP가 인수)

 대,중규모 프로젝트, 회사,             중소규모                        소기업       시장퇴출

 

요즘은 클라우드 산업 연결에 신경쓰고있다.

 

 

 

728x90
반응형

'Programming > Oracle SQL' 카테고리의 다른 글

Subquery  (0) 2023.08.25
JOIN  (0) 2023.08.24
다중행 함수, GROUP BY, HAVING  (0) 2023.08.24
Oracle Functions  (1) 2023.08.23
기본 이론, 명령어 (table 관리), constraint, SELECT  (0) 2023.08.23