ORACLE 공부 4일차 2020/07/24
01)자료형
2.숫자 자료형
-숫자(정수 및 실수) 자료를 저장
-number 타입이 제공
(사용형식)
컬럼명 number([정밀도 | * [ ,스케일]])
-정수와 실수 자료를 저장
-저장범위: 1.0 x E-130 ~~9.999.......x E125(9의 갯수가 38개)
-정밀도 > 스케일 인 경우
-정밀도는 전체 자리수 스케일은 소숫점 이하의 자리수
-정밀도는1~38 사이의 수
-스케일은 ! -80~127 사이의 수로 표현
- *sms\는 전체 허용 범위내에서는 사용자가 입력한 자료에 맞추어 기억공간을 확보
ex)
칼럼명 number : --정수 실수 모두 저장
컬럼명 number (정밀도 ,스케일) --실수
컬럼명 number (정밀도 ) --정수
컬럼명 number (*,스케일 ) --정수 실수
예)
-------------------------------------------------------------
입력값 선언 기억되는 값
-------------------------------------------------------------
1,234,567.897 number 1,234,567.897
1,234,567.897 number(*,1) 1,234,567.9 -- 소숫점 2번째 자리에서 반올림된디.
1,234,567.897 number() 1,234,568 --number(*,0)과 같다 --java에서 int로 형변환 같은 느낌
1,234,567.897 number(9,2) 1,234,567.90
1,234,567.897 number(6) 오류 --number(6,0)과 같다 --기억공간 부족으로 오류
1,234,567.897 number(7,-2) 1,234,600 -- -로 음수인 경우 정수부분에서 반올림
정밀도 << 스케일 인 경우
-정밀도는 0가 아님 유효숫자의 갯수(소숫점 이하)
-(스케일 - 정밀도) : 소숫점 이하에서 맨 앞에 존재해야할 0의 갯수
사용예)
---------------------------------------------------------------------
입력값 선언 기억되는값
---------------------------------------------------------------------
1.234 number(4,5) 오류
1.23 number(3,5) 오류
0.0123 number(3,4) 0.0123
0.01234 number(4,5) 0.01234
0.001234 number(3,5) 0.00123
---------------------------------------------------------------------
3. 날짜형
-날짜자료(년 월 일 시 분 초 )를 저장한 데이터 타입
-DATE, TIMESTAMP이 제공된다
1)DATE
-기본 날짜형
-덧셈과 뺼셈의 대상
-크기 지정 않함
(사용형식)
컬럼명 DATE
날짜 함수 중 SYSDATE : 시스템의 날짜 정보 반환
사용예);
CREATE TABLE TEMP05(
col1 date,
col2 date,
col3 date);
insert into temp05
values('20191112',sysdate, sysdate -20);
select *from temp05;
select to_char(col1, 'yyyy-mm-dd hh24:mi:ss'),
to_char(col2, 'yyyy-mm-dd hh24:mi:ss'),
to_char(col3, 'yyyy-mm-dd hh24:mi:ss')
from temp05;
2)timestamp
-시간대 정보(timezone)와 10억분의 1초 단위의 시간정보 제공
3가지 데이터 타입 제공
-timestamp : timezone 정보가 없음
-timestamp with timezone : timezone 정보가 포함
-timestamp with loacl timezone : 서버가 위치한 타임존 정보 포함
(사용형식)
컬럼명 timestamp
(사용예);
create table temp06(
col1 timestamp,
col2 timestamp with timezone,
col3 timestamp with loacl timezone);
insert into temp06 values(sysdate,sysdate,sysdate);
select * from temp06;
02)기타 자료형
-이전 자료 저장을 위한 자료 타입
-BLOB, RAW, LONG, BFILE
1)RAW
-상대적으로 작은 양의 이진 자료를 저장
-인덱스 처리가 가능
-데이터베이스에서는 해석이나 변화 작업은 수행하지 않음
-최대 2000BYTE 까지 저장 가능
(사용형식)
컬럼명 RAW(크기)
CREATE TABLE TEMP07(
COL1 RAW(1000),
COL2 RAW(200));
INSERT INTO TEMP07
VALUES(HEXTORAW('6ADC'), HEXTORAW('FF'));
SELECT * FROM TEMP07;
2020-07-24
01) 기타자료형
1)BFILE
-이진 데이터 저장
-대상이 되는 이진 데이터를 데이터베이스 외부에 저장하고
-경로 정보(DIRECTORY 객체)만 데이터베이스에 저장
-4GB 까지 처리 가능
(사용형식)
컬럼명 BFILE;
-디렉토리 별칭은 30 BYTE, 파일명은 256 BYTE 까지 허용
-디랙토리 별칭 : 디렉토리가 길면 별칭으로 만들어준다.
2)blob
-이진 데이터 저장
-대상이 되는 이진 데이터를 데이터베이스 내부에 저장
-4GB 까지 처리 가능
(사용형식)
컬럼명 blob;
예)
create table temp09(
col1 Blob
);
02)조회문(SELECT)
-테이블 내의 자료를 조회할 때 사용
(사용형식)
SELECT * | [DISTINCT] 컬럼명 |expr [AS] ["] 컬럼별칭 ["] ,
컬럼명 |expr [AS] ["] 컬럼별칭 ["] ,
......
컬럼명 |expr [AS] ["] 컬럼별칭 ["]
--컬럼별칭이 ORCLE에서 사용되어지거나 공백을 포함 하면 ""로 묶어주어야 한다.
--DISTINCT : 중복된 자료를 제외시킨 결과
--SELECT 절에 '*' 를 사용하면 해당 테이블에 있는 모든 컬럼 전체를 결과로 출려
--WHERE 절이 생략되면 해당 테이블의 모든 행이 결과로 출력
--'컬럼인덱스'는 SELECT 절에 사용된 컬럼의 순번(1부터 사용)
--'[ASC|DESC]' 정렬방법 , ASC는 오름차순, DESC는 내림차순, default는 ASC이다.
FROM 테이블명 [별칭]
[WHERE 조건]
[GROUP BY 컬럼명 [, 컬럼명, ......]]
[HAVING 조건] --5개의 조건이 주어지면 HAVING
[ORDER BY 컬럼명|컬럼인덱스 [ACS|DESC],....]
SELECT 50*12345 AS "첫번째 컬럼", --공백이 있으면 ""
50*12345 AS 두번째컬럼, --가장 많이 사용
50*12345 세번째컬럼, -- AS 생략가능
MEM_NAME AS 회원번호 -- 없어도 오류 안남 위에 3개가 회원 수만큼 찍힌다.
FROM MEMBER; --컬럼이 하나도 포함 않되면 시스템에서 주어준 DUAL을 쓰면된다.
1)WHERE 절
-조건을 기술하는 절
-일반조인이나 조인 조건을 기술하는 절
-관계연산자 (<, >, =, >=, <=, != ) : 크기비교
-- !=대신에 <>도 가능
-논리연산자 ( NOT, AND, OR) --우선순위 순서다
-IN, SOME, ANY, ALL, EXISTS 사용가능