User 소개 및 DB 시작 방법 / select구문 / where(조건문)절

gummy·2022년 12월 20일
0

국비일지

목록 보기
20/30

221220 화요일

📚 실습할 환경 구축

“CentOS + Ora12g” ova 파일(oracle 과 실습할 DB가 들어 있음)과 VirtualBox 연동


📚 OS(Linux) user

  1. root
  • OS설치 시 자동 생성되며, 관리자 권한 소유
  1. oracle
  • 일반 OS user
  • /home/oracle 디렉토리 권한 소유
  • /u01/app/oracle 디렉토리 권한 소유

📚 ORCL - DB user

  1. sys
  • sysdba 권한 소유 : dba + DB생성 + DB시작/종료
    (dba 권한 줄 수 있으나 sysdba는 불가능)

접속하는 명령어 :

SQL> conn 유저명/패스워드 as 자기권한명
  1. system
  • dba 권한 소유
    (dba 권한 줄 수 있음)

접속하는 명령어 :

SQL> conn 유저명/패스워드
  1. hr(pw : hr)
  • object 생성 및 운영 권한 소유
    (dba 권한 받을 수 있음)

접속하는 명령어 :

SQL> conn 유저명/패스워드

📚 DB 시작하기

  1. 가상 PC 시작하기

  2. OS 로그인

  3. 터미널창 열기

  4. 리스너(os proc) 시작

lsnrctl start
  1. SQL Plus(TUI) 실행
sqlplus /nolog 
  1. SYS로 DB 로그인
SQL> conn sys/oracle as sysdba
Connected to an idle instance.  🔈 꺼져있는 상태
  1. DB 시작
SQL> startup
Database opened.  🔊 켜짐
  1. HR로 DB 로그인
SQL> conn hr/hr

📚 환경설정 구문

  • User 패스워드 변경
ORA-28002: 7 $%#^$%

= 패스워드 만기일이 7일 남았다.
이 기간안에 안하면 관리자에게 부탁해야한다.
패스워드 변경하는 명령어 :

SQL> alter user hr
     identified by hr;
  • 터미널창에 쓴 구문들 위로 보내고 깔끔하게 보는법
SQL> !clear
  • SQL Plus에서 출력 시 컬럼 사이즈 조절하는 방법
    문자 ( varchar 타입만 )가 저장된 컬럼사이즈만 조절 가능하다.
    숫자(number나 date 타입)는 자동으로 최소사이즈로 나온다.
SQL> col 컬럼명 format a사이즈
SQL> col department_name format a20

🚨 만약 사이즈 잘 못 조절해서 #으로 바뀌었다면??

SQL> exit

DB는 여전히 켜져있고 SQL Plus만 꺼져있는 상태
5. SQL Plus(TUI) 실행 부터 다시 하면 된다.

  • 잘못친 구문을 수정하는 방법
    - 버퍼에 들어가기 :
SQL> ed 

       - 마지막 쿼리구문만 남아있는데,
        키보드 i 눌러서 편집모드로 변경을 한 뒤 수정한다.
       (버퍼안에는 ; 찍으면 안된다. 없는게 정상이다.)

       - [esc] → 읽기전용으로 변경

       - :wq → 저장하고 나가기

       - 버퍼에 있는 구문을 재실행 :

SQL> /엔터치기 
  • 버퍼에 있는 구문이 뭔지 보는 방법
SQL> l   (list의 약자)

쿼리구문( ;찍고 엔터치는 구문)이 나온다!
ex) col last_name format a20는 쿼리구문이 아니기 때문에 버퍼에는 안뜬다.

1. Select구문

  • 테이블의 모든행 출력

📚 테이블 구조 조회

desc 테이블명

📚 테이블로부터 데이터를 검색

select *
from 테이블명;
select 컬럼명
from 테이블명;

📚 Null 값

  • 사용할 수 없는 값, 알려지지 않은 값, 할당받지 못한 값, 모르는 값, 아직 정의되지 않은 값 등 ...
  • null 값은 0(zero)나 공백과는 다른 특수한 값, 모든 데이터타입에 사용 가능하다.

📚 Column Alias

  • 출력할 때 보이는 테이블의 이름(alias)
    ① : 컬럼명 AS alias
    ② : 컬럼명 alias
    ③ : 컬럼명 AS "Alias"
         (대소문자 구분, 공백 포함, 특수문자 포함을 원하는 경우)
select 1 | 2 | 3
from 테이블명;

📚 연결연산자 ||

  • 컬럼을 같이 이어서 출력하고 싶을때 쓴다.
select 컬럼명 || 컬럼명
from 테이블명;

📚 리터럴 문자

  • 쿼리구문에 포함된 일반 문자, 숫자, 날짜값
  • 문자나 날짜 리터럴은 '작은 따옴표'로 묶어서 작성해야 한다.

📚 Distinct

  • 중복된 값을 자동으으로 제거해주는 키워드
select distinct 컬럼명
from 테이블명;

2. Where(조건문)절

  • 테이블의 특정행 출력
select 컬럼명
from 테이블명
where  좌변          =        우변
     (컬럼명)    (비교연산자)   (값 : 숫자, '문자', '날짜')

🔔 oracle은 실제 데이터값 대소문자 구분을 하기 때문에 DB에 작성된 그대로 검색 해야 나온다!

📚 oracle에서 날짜 오류

💔 오류 : 작은 따옴표를 썼는데 왜 오류가 났을까??

where hire_date = '2005-08-04'  

💌 hire_date 는 date형이고 '2005-08-04'은 char형이기 때문이다.
     날짜표기법은 전부 달라서 포맷에 맞춰 작성을 해야한다!!

  • O(E) : 'DD-MON-RR'
  • O(K) : 'RR-MM-DD'
    (년도 두자리 : YY 또는 RR)
  • M(K) : 'YYYY-MM-DD'

💖 오류 수정

where hire_date = '04-AUG-05'

💌 oracle 영어로 깔려있으므로 'DD-MON-RR'포맷으로 쓴다!

0개의 댓글