ORACLE SQL의 특징
ORACL SQL에서는 소문자로 입력해도 대문자로 인식한다.
데이터베이스 관리 시스템은 정말 많은 종류가 있지만
명령어 자체는 대부분이 비슷하다.
하지만 자료형에 대해 선 차이가 존재했었는데
그 차이에 대해 표준을 맞추는 ANSI라는 미국 국가표준 협회에서 표준을 정의했다,
ORACLE은 자신이 정해놓은 형식과 ANSI형식을 둘 다 사용한다.
거대한 카테고리로 오라클의 형식을 나눠보면
Character 형식 - 오라클에서는 한 문자당 3바이트를 저장한다.
Numeric 형식
Date 형식
LOB형식이 있다.
LOB형식 = 대용량을 저장할 때 사용하는 형식이고 (실행파일 자체가 들어갈 수 있다)
데이터를 정의할 때 사용될 때 사용하는 명령어는 CREATE이다.
CREATE - 테이블 생성하기
CREATE 데이터베이스 구성요소 데이터 테이블 이름
{
멤버명 자료형
속성 VAR자료형
}
ORACLE DATA TYPES을 정의하는 방법이다.
속성들의 구분은 , 로 구분하며
테이블 안에 속성을 정의할 때는 () 소괄호로 묶어준다.
마지막 괄호에는 세미콜론;을 붙여준다.
데이터 형식
1. Character 형식
CHAR(3)은 3바이트의 길이만큼의 문자를 저장하겠다는 의미이고,
VCHAR2(3) 최대 3의 길이 가변 문자를 저장하겠다.
만약 VCHAR2의 길이를 3만큼 사용하지 않았다면 나머지의 바이트는 반환한다.
CHAR와 VCHAR는 가변 저장 길이의 차이도 있지만 속도면에서도 차이가 존재한다.
VCHAR는 한 배열에 구분자로 써로 데이터를 관리하지만 CHAR는 하나의 배열 자체를 관리하기 때문에
속도면에서는 CHAR가 빠르다.
오라클에서 저장 길이를 표현하는 방법은 두 가지인데
3 문자를 저장한다고 예시를 들면
CHAR(9) 가있으며 CHAR(3 CHAR)가 있다.
길이 값의 최댓값과 기본값을 설정해 줄 수 있는데
MAX값은 CHAR(EXTENDED)로 표현하며 기본값은 CAHR(STANDARD)로 표현한다
STANDARD는 4000BYTE 값을 가지며 EXTENDED는 32767BYTE 값을 가진다.
만약 4천 바이트 값을 넘어가는 길이가 존재한다면 LOB타입 형식으로 사용하는 것이 바람직하다.
CHAR [SIZE] CHAR[(SIZE [BYTE | CHAR])] 에서 []는 옵션이다 지정해주지 않았을 경우
MAXSIZE값이 자동적으로 할당된다.
MAXSIZE값에는 EXTENDED와 STANDARD가 있다.
만약 문자에서 다국어를 섞어서 사용하게 될 때 붙여주는 키워드인 N이 존재한다
NCHAR , NVARCHAR이다
기본으로 다국어를 사용하게 된다면 UTF8을 사용하게 되지만
N을 사용하게 되면 좀 더 적은 바이트를 사용하는 UTF16 , 유니코드로써 용량을 절약할 수 있다.
더 큰 타입인 LONG , CLOB , NCLOB이 존재한다.
LONG은 예전부터 내려온 더 큰 문자 타입인데 최대 2기가까지 만 가능하다.
CLOB은 대용량 텍스트 데이터 타입이며 최대 4기가바이트까지이며,
NCLOB은 다국어를 지원하며 유니코드를 사용해 최대 4기가바이트까지 가능하다.
LONG은 테이블에 딱 한 번만 사용할 수 있으며
CLOB과 NCLOB은 여러 번 사용 가능하다.
2.NUMBER 타입
오라클은 정수, 실수를 구별하지 않고 NUMBER로 통일한다.
NUMBER(4) - 최대 4자로 이루어진 숫자
NUMBER (4.2) 소수점 2자리를 포함하는 최대 4자리
NUMBER (6,-2) 소수점 -2자리에서 반올림하는 최대 6자리 숫자
NUMBER(전체 길이, 소수점 표시 자리)
소수점은 제외하며 소수점 자리가 초과돼서 입력됐을 때는 실행은 되지만 표시 자리까지만 저장된다.
만약 정수 부분에 값을 추가하게 되면 오류가 발생한다.
3. 테이블 편집
쿼리에서 CREATE로 테이블을 만들수 있으며
CREATE TABLE <TABLENAME>;
DROP으로 테이블을 삭제할수 있으며
DROP TABLE <TABELNAME>;
ALTER로 테이블을 수정할 수 있으며
ALTER TABLE ADD <NEWTABLE> DATETYPE; (칼럼 추가)
ALTER TABLE <TABLENAME> MODIFY <COLUMN> DATATYPE; (칼럼 수정)
ALTER TABLE <TABLENAME> <OLDCOLUMNNAME> TO <NEWCOLUMNNAME>;(컬럼명 수정)
... 등등 하지만 테이블 편집 UI를 통해 쉽게 편집할 수 있다.
4. 데이터 조작
(DML : Data Manipulation Language)
명령어는 SELECT , INSERT , UPDATE , DELETE가 있다 자주 사용되므로 이것은 암기하자
SELECT : 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE라고도 한다
INSERT
UPDATE : 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다.
DELETE 데이터 삽입, 수정, 삭제
INSERT, DELETE, UPDATE는 쿼리에서 실행 시 즉시 데이터베이스에 실행되지 않는다.
데이터 변경 작업을 한 뒤, COMMIT을 실행하면 변경된 데이터들이 데이터 파일에 반영된다.
레코드가 커밋되기 전까지 레코드가 락이 되어 다른 사람에 의한 수정을 막고 커밋을 하게 되면
락이 풀리게 된다.
1) INSERT문
테이블에 새로운 데이터를 넣을 때 사용하는 SQL 명령어이다.
INSERT INTO <TABLE>(COLUMN1, COLUMN2) VALUES <COLUMN1_VALUES, COLUMN2_VALUES>;
컬럼리스트 =(COLUMN1, COLUMN2)와
그 칼럼에 들어갈 값의 순서는 정확히 맞아야 한다=<COLUMN1_VALUES, COLUMN2_VALUES>.
칼럼 리스트를 생략할 수 있는데
INSERT INTO <TABLE> VALUES < Colvalue1, Colvalue2,...)
모든 칼럼에 데이터를 넣는다는 의미다.
구문형식
INSERT INTO 테이블(컬럼) SELECT(컬럼값);
2) SELECT문
테이블에 저장된 데이터를 조회하는 데 사용되는 SQL 명령어이다.
SELECT*FROM <TABLENAME>;
원하는 테이블에서 데이터 전부를 검색한다는 구문이다.
SELECT(COLUMN1, COLUMN2) FROM <TABLENAME>;
원하는 테이블에서 칼럼 1, 칼럼 2의 값을 조회하는 구문이다.
SELECT COLUMN1 AS TEMP1, COLUMN2 AS TEMP2 FROM <TABLENAME>;
칼럼의 대표 이름을 별칭으로 변경해서 검색한다는 구문이다.
다음 사진은 별칭을 붙였을 때 실행결과이다.
모든 데이터 검색
별칭을 사용한 검색
'Database > Oracle' 카테고리의 다른 글
ORACLE SQL SELF JOIN (0) | 2020.04.15 |
---|---|
ORACLE SQL 문자열 내장 함수 (1) (0) | 2020.04.15 |
ORACLE SQL JOIN (0) | 2020.04.14 |
Oracle SQL 정규표현 (0) | 2020.04.13 |
Oracle SQL 설치 (0) | 2020.04.06 |
댓글