리눅스에 Oracle 설치
- 선생님이 생성해놓은 이미지 파일받기
Linux+Oracle12c+guest.voa
User
<OS(Linux) user>
- root(pw : oracle01)
OS 설치 시 자동 생성되며, 관리자 권한 소유
- oracle(pw : oracle)
일반 OS user
/home/oracle 디렉토리 권한 소유
/u01/app/oracle 디렉토리 권한 소유
<ORCL - DB user>
- sys(pw : oracle)
sysdba 권한 소유 (dba + DB 생성 + DB 시작/종료)\
SQL> conn sys/oracle as sysdba
- system(pw : oracle)
dba 권한 소유
SQL> conn system/oracle
- hr(pw: hr)
object 생성 및 운영 권한 소유
SQL> conn hr/hr
![](https://velog.velcdn.com/images/tlqdnwls/post/0732ba7e-5c79-42e5-ac69-771edda60a45/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/e908d5c6-3bd7-4598-8ab9-5f57c2ee54be/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/a9964abd-b56b-4658-8263-52e9a819c414/image.png)
DB 시작하기
- 가상 PC 시작하기
- OS 로그인 - user:oracle/pw:oracle
- 터미널창 열기
- 리스너(os proc) 시작 ]$ lsnrctl start
- SQL plus(TUI) 실행 $] sqlplus /nolog
- SYS로 DB 로그인 SQL> conn sys/oracle as sysdba
![](https://velog.velcdn.com/images/tlqdnwls/post/703920b4-9283-427a-8449-64c6f1404c54/image.png)
- idle instance 휴무상태 DB(꺼져있는)
- DB 시작 SQL> startup
- hr로 DB 로그인 SQL > conn hr/hr
<user 패스워드 변경>
SQL> alter user hr identified by hr;
![](https://velog.velcdn.com/images/tlqdnwls/post/7b4c7453-89f7-4ae8-8ad9-b7c187c268ec/image.png)
mysql에서 show tables;
![](https://velog.velcdn.com/images/tlqdnwls/post/e80d8ddf-c519-4b36-82d0-8607d00ab70b/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/6ba6d4ba-d33c-4352-9f28-5a147f47080f/image.png)
select 구문
![](https://velog.velcdn.com/images/tlqdnwls/post/d6de6423-43bd-4858-bf3e-8ceb27b3fd50/image.png)
보기 안좋게 출력됨
'-' 하나에 1byte
![](https://velog.velcdn.com/images/tlqdnwls/post/65c6e145-384b-4cfe-9712-deb642d99698/image.png)
- department_name 컬럼 사이즈 조절 20바이트로
- 문자 컬럼만 사이즈 조절가능
- 숫자나 날짜 컬럼은 불가능
- 프로그램상에서만 적용된 것. exit 해서 다시 접속하면 처음으로 돌아감
SQL> col 컬럼명 format 사이즈
![](https://velog.velcdn.com/images/tlqdnwls/post/607e02d5-8e55-46b6-88ff-fe0bd7c1aaab/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/8b91a6f1-e8a6-452b-a947-84c13339009a/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/b8077bd4-42ef-4349-bc39-2b4b12b45641/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/3785ebeb-cf5e-4a00-9d96-f9fd7d82d45c/image.png)
쿼리구문 오타시 줄바꿨을때는 수정할 방법이 없다.
![](https://velog.velcdn.com/images/tlqdnwls/post/457c145e-ef62-4762-924d-625bf2ed3203/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/b28b2258-8bd1-4794-8dfe-a077b6c68a50/image.png)
- 버퍼 실행 [마지막 쿼리구문이 저장되어 있음]
- 버퍼 들어가지 않고 확인만 할때는 명령어
l
사용
![](https://velog.velcdn.com/images/tlqdnwls/post/818b6518-d7d4-4bd5-8cde-e9e2bb8587e7/image.png)
i[insert] 누른 뒤 쿼리구문 수정
esc 누른 뒤 :wq [저장하고 나가기]
SQL> /
입력후 enter
키 눌리면 수정된 쿼리 구문이 실행됨
![](https://velog.velcdn.com/images/tlqdnwls/post/0edeb12d-cd9e-40ca-8bfd-31c94c879cb5/image.png)
null
- 사용할 수 없는 값, 알려지지 않은 값, 할당받지 못한 값, 모르는 값, 아직 정의되지 않은 값 등...
- null은 0(zero)나 공백과는 다른 특수한 값, 모든 데이터타입에 사용 가능함.
![](https://velog.velcdn.com/images/tlqdnwls/post/40cda7eb-8b88-4d22-975c-c16ef4df6aa5/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/59b31909-53c5-4f39-8be0-55495604c586/image.png)
- commission_pct 비어있는 칸, null인지 공백인지 헷갈림.
but, commision_pct는 number 데이터 타입이므로 공백은 아님. (공백은 문자이다)
![](https://velog.velcdn.com/images/tlqdnwls/post/dafcfa9a-2b5a-4f0d-8f3c-8ad9448b0ae9/image.png)
Column Alias
➀ 컬럼명 AS alias
➁ 컬럼명 alias
➂ 컬럼명 [AS] “Alias” => 대소문자 구분, 공백 포함, 특수문자 포함을 원하는 경우
![](https://velog.velcdn.com/images/tlqdnwls/post/4540b146-8b57-4a8e-8e03-b46cd19245df/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/cb4be122-0108-4fac-95a8-ee8492f77c93/image.png)
연결 연산자(||)
![](https://velog.velcdn.com/images/tlqdnwls/post/ff7df0b9-b57f-47b3-ba25-a6ca9b95ee9a/image.png)
리터럴 문자
- 리터럴 문자란? 쿼리구문에 포함된 일반 문자, 숫자, 날짜 값
- 문자나 날짜 리터럴은 작은 따옴표로 묶어서 작성해야함.
![](https://velog.velcdn.com/images/tlqdnwls/post/9565f5e4-4215-4085-9794-fe574f8bda93/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/7c4a7933-9dfc-46c1-a587-f474535f48c2/image.png)
dicstinct
중복값 제거
![](https://velog.velcdn.com/images/tlqdnwls/post/e052fe36-5352-4a53-9c11-debfe5ac7d3f/image.png)
1번>
![](https://velog.velcdn.com/images/tlqdnwls/post/eda7b6b0-db12-4e5c-b6ee-128fe0ba2de6/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/6460bead-bb41-480f-8718-36ba2d0c69c6/image.png)
2번>
![](https://velog.velcdn.com/images/tlqdnwls/post/3cc57c13-08bd-427f-bbf0-160c0efed452/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/3716c3b8-2e42-41cb-b18c-83945e07de8b/image.png)
WHERE(조건문)절과 ORDER BY(정렬)절
![](https://velog.velcdn.com/images/tlqdnwls/post/5550b4d6-6e36-4b97-b786-ce0375398f33/image.png)
where절
![](https://velog.velcdn.com/images/tlqdnwls/post/353b45c4-c760-4680-a393-d1098b27936f/image.png)
![](https://velog.velcdn.com/images/tlqdnwls/post/142d0d3e-ad87-456c-ae5f-cce7bfdad133/image.png)
oracle에서는 대소문자 구분해야 한다
![](https://velog.velcdn.com/images/tlqdnwls/post/e02f067f-2c80-4722-a818-af0264cc800e/image.png)
날짜는 정해져있는 포맷대로 입력해야 함
MySQL(한글) 'YYYY-MM-DD'
Oracle(한글) 'RR/MM/DD'
Oracle(영어) 'DD-MON-RR'
![](https://velog.velcdn.com/images/tlqdnwls/post/759f29ce-dbc5-4e1e-b733-27d2b4c609c7/image.png)