Upload
bo-sears
View
48
Download
2
Embed Size (px)
DESCRIPTION
7. 데이터 조작어. 테이블의 생성. DDL: 데이터 조작어 기본 패턴 CREATE TABLE 테이블명 ( 컬럼명 컬럼 타입 , 컬럼명 컬럼 타입 , … ) 테이블 명 및 구조는 다음과 같은 규칙 테이블 명과 컬럼 명은 최대 30 자까지 가능하다 . ( 한글은 2byte 씩임으로 최대 15 자이다 .) 테이블명과 컬럼명의 첫자는 문자 (A-Z, a-z, ㄱ - ㅎ ) 으로 시작되어야 한다 . 한 테이블에는 최대 255 개의 컬럼을 만들 수 있다. 데이터 타입의 종류. - PowerPoint PPT Presentation
Citation preview
7. 데이터 조작어
DDL: 데이터 조작어 기본 패턴
◦ CREATE TABLE 테이블명◦ ( 컬럼명 컬럼 타입 ,◦ 컬럼명 컬럼 타입 ,◦ …◦ )
테이블 명 및 구조는 다음과 같은 규칙◦ 테이블 명과 컬럼 명은 최대 30 자까지 가능하다 . ( 한글은 2byte
씩임으로 최대 15 자이다 .)◦ 테이블명과 컬럼명의 첫자는 문자 (A-Z, a-z, ㄱ - ㅎ ) 으로
시작되어야 한다 .◦ 한 테이블에는 최대 255 개의 컬럼을 만들 수 있다
테이블의 생성
4 . 장 데이터 타입- 3
-
데이터 타입의 종류 오라클에서 지원하는 데이터 타입의 종류
데이터타입
사용자 정의 내 장
스칼라 모음 (collection) 관 계
CHAR(N), NCHAR(N)VARCHAR2(N), NVARCHAR2(N)NUMBER(P,S)DATERAW(N)BLOB, CLOB, NCLOB, BFILELONG, LONG RAWROWID
VARRAYTABLE
REF
문자형 데이터 , 숫자형 데이터 , 날짜형 데이터 문자형 데이터
기본 데이타 타입
CHAR(size) 고정길이 최대 2000byte 까지 .길 이 가 일 정 하 거 나 비슷한 경우에 사용 .지정된 길이 보다 짧은 값 이 입 력 되 면 남 은 공간은 공백으로 채워짐
VARCHAR2(size) 가변길이 최대 4000byte 까지 .데 이 터 길 의 편 차 가 크거나 NULL 값이 많이 들 어 올 경 우 사 용 . 실 무 에 서 가 장 많 이 쓰이는 타입
NCHAR(size) 고정길이 유니코드 최대 크기 2000byteUTF8 인 코 딩 의 경 우 size*3byte 의 크기 .AL16UTF16 인 코 딩 의 경 우 size*2byte 의 크기 .
NVARCHAR2(size) 가변길이 유니코드 최대 크기 4000byte
숫자형데이타
기본 데이타 타입
NUMBER(precision, scale)
가변 숫자 타입 . 실무에서 가장 많이 쓰이는 숫자 타입 .Precision(1~38) 은 전 체 자 리 수 이 며 scale(-84~127) 은 소 수 점 이 하 자리수를 의미한다 . 최대 크기는 21byte이다 .
BINARY_FLOAT 32bit 부동 소수점 4byteBINARY_DOUBLE 64bit 부동 소수점 8byte
날짜 타입
이외에도 대용량 객체를 위한 LOB(large object) 데이터 타입이 있다 . 이 타입은 텍스트 , 그래픽 이미지 , 동영상과 같은 데이터를 저장하기 위한 데이터 타입으로 최대 4GB 까지 저장이 가능하다 . 오라클에서는 BLOB, CLOB, NCLOB, BFILE 등이 있다
기본 데이터 타입DATE 고정길이 날짜 타입 7byte 이 며 세 기 , 년
도 , 월 , 일 , 시 , 분 ,초를 기록할 수 있다 .
TIMESTAMP DATE 타 입 의 확장형으로 백만분의 1초 단위로 표현가능
TIMESTAMP WITH TIMEZONE
시간대와 더불어 날짜 시간을 표현
지역 시간과 그리니치 표 준 시 의 차 이 를 포함한다 .
TIMESTAMP WITH LOCAL TIMEZONE
지 역 시 간 대 와 더 블 어 날짜 시간을 표현
INTERVAL YEAR TO MONTH
연 도 와 , 월 형 태 로 기간을 표현
5byte
INTRERVAL DAY TO SECOND
요 일 , 시 , 분 , 초 형태로 기간을 표현
11byte
- 7 -
CHAR 데이터 타입 개요
◦ 고정 길이의 문자열을 저장하며 최대 2,000 바이트까지 저장 가능◦ 지정된 길이보다 짧은 데이터가 입력되는 경우 , 나머지 공간은 공백으로
채워짐
◦ 특징 데이터 입력시 사용자가 데이터를 입력하지 않으면 NULL 이 입력 지정된 길이보다 긴 데이터가 입력되면 오류 발생 주소 데이터와 같은 편차가 심한 데이터를 입력할 때 사용하면 저장 공간이 낭비될
수 있음 주민등록번호와 같이 길이가 일정하거나 비슷한 경우에 사용하는 것이 좋음
char(7) s q l
‘sql’
입력
b b b b * : 빈칸 ( 공백 ) b
- 8 -
VARCHAR2 데이터 타입 개요
◦ 가변 길이의 문자열을 저장하기 위해 사용하는 데이터 타입◦ 최대 4,000 바이트 저장 가능◦ 지정된 길이보다 짧은 문자열이 입력되면 뒷부분은 NULL 로 처리되어
저장공간을 낭비하지 않음
◦ 특징 데이터 입력시 사용자가 값을 입력하지 않으면 NULL 이 입력 지정된 길이보다 긴 데이터가 입력되면 데이터가 입력되지 않고 오류 발생 입력될 데이터의 편차가 심하거나 NULL 이 많이 입력되는 경우에 사용하는 것이
효율적 실무에서는 CHAR 데이터 타입보다 VARCHAR2 를 많이 사용
varchar2(7) s q l
‘sql’입력
4 . 장 데이터 타입- 9
-
NUMBER 데이터 타입 개요
◦ 숫자를 저장하며 , 가변 길이 데이터 타입으로 최대 38 자리까지 저장 가능
◦ 저장 가능한 숫자의 범위 : 1.010-130 ~ 96.9··· 10125
◦ 소수는 NUMBER(precision, scale) 형식으로 입력 지정된 자리 이하에서 반올림되어 저장 precision : 소수점을 포함하는 전체 자리 수 scale : 소수점이하 자리 수 precision 을 지정하지 않고 숫자를 입력하는 경우
입력되는 숫자 값의 크기만큼 저장공간이 할당됨 scale 을 지정하지 않고 소수점을 입력하는 경우
소수점 이하는 반올림되어 정수 값만 저장됨
- 10
-
DATE 데이터 타입 개요
◦ 세기 , 년도 , 월 , 일 , 시간 , 분 , 초의 날짜와 시간 정보를 저장하기 위한 데이터 타입
◦ 7 비트의 고정길이 필드에 저장◦ 날짜나 시간에 대한 연산이나 이력 정보를 관리하기 위해 사용◦ 퍼스널 오라클의 기본 날짜 형식 : YY/MM/DD 형식
예 : ‘년 / 월 / 일 (05/0101)’
- 11
-
DATE 데이터 타입 기능
◦ TO_DATE 함수 사용 가능 문자 형태로 저장된 데이터를 날짜 형식으로 변환 (6 장에서 자세히 설명 )
◦ SYSDATE 함수 사용 가능 시스템의 현재 날짜와 시간을 반환하는 함수
◦ 주의 날짜 데이터 입력시 월 , 일을 지정하지 않으면 입력되는 시점을 기준으로 해당 월과
1 일이 입력 , 시간을 지정하지 않으면 12:00:00 로 입력 시간 정보가 입력된 경우에는 ‘ =‘ 비교시 시간 정보도 함께 비교
- 12
-
LOB 데이터 타입 개요
◦ 텍스트 , 그래픽 , 이미지 , 동영상 , 사운드 등과 같이 구조화되지 않은 대용량의 텍스트나 멀티미디어 데이터를 저장하기 위한 데이터 타입
◦ 최대 4GB 까지 저장 종류
◦ BLOB 그래픽 이미지 , 동영상 , 사운드와 같이 구조화되지 않은 바이너리
데이터를 저장하기 위해 사용◦ CLOB
e-Book 과 같은 대용량의 텍스트 데이터 저장◦ NCLOB
국가별 문자셋 ( 유니코드 ) 데이터 저장◦ BFILE
바이너리 데이터를 파일 형태로 저장 , 읽기 전용이므로 내용 변경 불가능
- 13
-
ROWID 데이터 타입 개요
◦ 테이블에서 행의 위치를 지정하는 논리적인 주소 값◦ 데이타베이스 전체에서 중복되지 않는 유일한 값◦ 테이블에 새로운 행이 삽입되면 테이블 내부에서 의사 칼럼 (pseudo col-
umn) 형태로 자동적으로 생성◦ 특정 레코드를 랜덤 액세스하기 위한 가장 빠른 방법◦ ROWID 는 데이터베이스에 저장되지 않음◦ SELECT 명령문으로 조회는 가능하나 , INSERT, UPDATE 와 같은 DML
문으로 임의적으로 변경 불가능◦ 형식
데이터 객체 번호 (data object number), 상대적 파일 번호 (relative file number), 블록 번호 ( block number), 행 번호 (row number) 로 구성
4 . 장 데이터 타입-
14 -
ROWID 데이터 타입
SQLPLUS 를 이용한 실습
직원 테이블 만들기
데이터 입력◦ INSERT INTO 문
INSERT INTO 테이블 명 ( 컬럼명 1, …) VALUES ( 값 1,… )
데이터 생성 및 데이터 입력
테이블의 모든 속성에 값을 넣음 .
NULL 값의 입력◦ 묵시적 NULL 입력 : 컬럼명의 생략
◦ 명시적 NULL 입력 :
데이터 입력
현재까지의 데이타
- 18
-
서브쿼리를 이용한 테이블 생성 개요
◦ CREATE TABLE 명령문에서 서브쿼리 절을 이용하여 다른 테이블의 구조와 데이터를 복사하여 새로운 테이블 생성 가능
◦ 서브쿼리의 출력 결과가 테이블의 초기 데이터로 삽입 기능
◦ CREATE TABLE 명령문에서 지정한 칼럼 수와 데이터 타입과 반드시 일치
◦ 칼럼 이름을 명시하지 않을 경우 서브쿼리 칼럼 이름과 동일◦ 무결성 제약조건은 NOT NULL 조건만 복사
기본 키 , 참조 키와 같은 무결성 제약조건은 사용자의 재정의 필요
◦ 디폴트 옵션에서 정의한 값은 그대로 복사
STUDENT 테이블에서 학과 번호가 4 인 학년 학생들의 정보만을 추출하여 STUDENT 구조와 동일한 dept4student 테이블을 만들어라 .
서브 쿼리를 이용한 테이블생성
where 절에 항상 거짓인 조건을 지정
테이블의 구조 복사
INSERT INTO~ sql dept3student 테이블에 STUDENT 테이블 중
deptno 가 3 인 학생 정보를 입력
서브 쿼리를 이용한 데이터 입력
컬럼의 추가◦ ALTER TABLE 테이블명◦ ADD ( 컬럼명 , 컬럼타입 )
◦ employee 에 number(11) 타입의 phone 컬럼을 추가
테이블 구조의 변경
컬럼의 제거◦ ALTER TABLE~ DROP COLUMN
◦ phone 컬럼을 제거하자
테이블 구조의 변경
컬럼의 변경◦ ALTER TABLE~ MODIFY ◦ 기존 컬럼에 값들이 존재하지 않을 경우에만 자유롭게 타입 및
크기를 변경◦ 기존 컬럼에 값들이 존재 할 경우 데이터 타입의 변경은
CHAR 와 VARCHAR2 내에서만 가능
◦ employee 테이블의 ename column 을 vchar(3) 으로 변경
테이블 구조의 변경
ename 을 varchar(10) 으로 수정
DROP TABLE 명령문
다음과 같이 dept3student 테이블을 삭제해 보자
테이블의 삭제
UPDATE 명령문
◦ UPDATE 테이블명◦ SET 컬럼명 = 값◦ [WHERE 조건 ]
데이터의 변경
Employee 테이블에서 enum 이 3 인 직원의 부서 번호를 30 으로 수정하자
dept4student 테이블의 snum 이 6 인 학생의 학과 번호 (deptno) 와 교수번호 (profno) 를 학생테이블의 snum 이 3 인 학생과 같도록 수정하도록 하자 .
서브 쿼리를 이용한 UPDATE
DELETE 명령문◦ DELETE [FROM] 테이블명◦ [WHERE 조건 ]◦ WHERE 조건이 없으면 테이블내의 모든 튜플 삭제
dept4student 테이블에서 snum 이 6 인 학생 정보를 삭제
데이터의 삭제
delete 명령문을 수행해도 테이블은 남아 있다 테이블 자체를 삭제하는 명령문은 DROP TABLE
명령문이다 .