CS/Database

[Oracle] 자료형

삶_ 2022. 8. 9. 04:24

 

 

ctrl+shift+f = 정렬키

 

 

  • 기본키 (PK : Primary Key): 후보키. 중복X. 테이블마다 고유의 키를 갖고있어야 함. null값 X
  • 보조키/대체키 (AK : Alternate Key) : 후보키 중에 기본키로 지정되지 않은 키
  • 외래키 (FK : Foreign Key) : 다른 테이블의 코드를 참조하는 키

자료형

  • VARCHAR2 : 가변길이 문자열 데이터를 저장할수있음
  • NUMBER : 숫자 저장 가능
  • DATE : 날짜 형식을 저장하기 위해 사용함
  • CHAR : 고정길이 문자열 데이터를 저장할 수 있음
  • CLOB : 대용량 텍스트 데이터 저장 가능

객체

  • 테이블 : 데이터를 저장하는 장소
  • 인덱스 : 테이블의 검색 효율을 높이기 위해 사용함
  • 뷰 : 하나 또는 여러개의 선별된 데이터를 논리적으로 연결하여, 하나의 테이블처럼 사용하게 해줌
  • 시퀀스 : 일련번호를 생성해줌

 

 

테이블 생성하기 (ALTER TABLE)

 

CREATE TABLE 테이블명 ();

  • 테이블을 생성한다
  • ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼타입;
    • 해당 컬럼명이 있는 컬럼타입의 값을 수정한다
  • ALTER TABLE 테이블명 DROP 컬럼명 컬럼타입;
    • 해당 컬럼명이 있는 컬럼타입의 열을 삭제한다
  • ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입;
    • 해당 컬럼명이 있는 컬럼타입의 열을 추가한다

 

 

 

EMP 테이블 구성 살펴보기

  • DESC EMP;

테이블 조회하기

  • SELECT : 특정 행 등을 조회할때
  • JOIN : 두개이상의 테이블의 양옆에 연결하여 마치 하나의 테이블인것처럼 조회하는 방식

 

SELECT

  • SELECT [조회할 열이름1], [열이름2]… FROM [조회할 테이블 이름];
  • SELECT A, B FROM BBB : BBB 테이블에서 A,B 열만 조회한다
  • SELECT 열이름 "열이름내의 값"  //열이름내의 값이 겹치는 것들만 조회
  • SELECT * : 모든걸 조회

 

DISTINCT 

  • SELECT DISTINCT 중복제거할열이름 FROM 테이블 이름
  • DISTINCT : 중복 제거
  • 중복제거 적용 안할 변수는 적을수없음

 

 

 

테이블 수정하기

 

데이터 삽입 (INSERT)

  • INSERT INTO 테이블명 VALUES 값목록
  • INSERT INTO member VALUES ('123', '남성', '홍길동');
    • //모든 필드값 입력하기. member의 특정 어느부분인지 안써놓으면 모든 필드값을 입력해야 됨
  • INSERT INTO member(ID, PWD) VALUES ('newlec', '123');
    • //원하는 필드만, 원하는 순서대로 입력하기 //나머지 정의하지 않은 필드값들은 null값이 들어감

 

데이터 수정하기 (UPDATE)

  • UPDATE 테이블명 SET 필드값=변경할값;

 

데이터 삭제하기 (DELETE)

  • DELETE 테이블명 WHERE 필드=필드의값;

 

 

 

연산식

 

SELECT SAL*12+COMM, COMM FROM EMP;

  • SAL의 값에 12를 곱하고 COMM 더한… 등의 값의 열을 나열할수있다
  • 값이 null 이면 연산하지 않고 null 으로 나옴

별칭 지정하기 (그 열의 이름짓기)

  • SAL*12+COMM ANNSAL
  • SAL*12+COMM “ANNSAL” : 연산된 문장 이후 큰따옴표로 묶어 저장 (예약어인경우 큰따옴표로 묶어 예약어와 구분)
  • SAL*12+COMM AS ANNSAL : AS 뒤에 별칭 지정
  • SAL*12+COMM AS “ANNSAL” : AS 뒤에 “” 안에 별칭 지정

정렬하기

  • ORDER BY
  • 정렬하려는 열이름 지정. 여러 열 지정 가능.
  • SELECT [조회열] FROM [조회테이블] ORDER BY [정렬하려는 열이름] [정렬옵션]

내림차순,오름차순

  • DESC 내림차순
    • ORDER BY SAL DESC;
  • ORDER BY SAL 오름차순 (안적어도 오름차순 기본형)
  • 오름차순, 내림차순 별개로 내릴때
    • ORDER BY 열이름1 ASC, 열이름2 DESC;
    • 열이름1을 오름차순 기준으로 나열한 뒤,
    • 열이름1의 값이 같은애들끼리 묶어둔뒤
    • 그 그룹 내에서 열이름2가 내림차순 순으로 나열함

SET, WHERE

  • set은 값 생성, where 은 특정값에 부합하는 것 조회

 

 

 

 

WHERE

 

등가비교연산자

  • where sal <> 3000
  • a <> b, a ≠ b, a ^= b : a와 b값이 다를 경우 true, 같으면 false
  • where 열이름 in 데이터 : 열이름 안에 데이터가 있는 부분
  • where 열이름 NOT IN 데이터 : 열이름 안에 데이터가 없는 부분

 

where 에 대해

  • if와 비슷. 조건식 개수 제한 없음 (복잡해질 수 있음)
  • 해당되는 필요한 절만 뽑아옴
  • FROM 절 다음에 오고, ORDER BY 절 뒤에 옴
  • WHERE 열이름 = 30;
    • 열이름의 값이 30인 데이터만 출력

 

AND

  • where 열이름 BETWEEN 최솟값 AND 최댓값
    • 특정 열 값의 최소 ~ 최대값 범위 내의 데이터만 조회함
  • WHERE 열이름 = 30 AND 열이름2 = ‘특정문자’;
    • 두가지 식에 부합하는 값만 출력
  • WHERE 열이름 = 30 OR 열이름2 = ‘특정문자’;
    • 두가지 식 중 하나라도 부합하는 값만 출력
    • "" 큰따옴표 인식 안됨!

 

 

LIKE

  • where 열이름 LIKE ‘S%’
    • 열이름 값이 대문자 S로 시작하는 모든 데이터를 조회하라
  • where 열이름 LIKE ‘_L%’
    • 열이름 값이 대문자 L로 끝나는 모든 데이터를 조회하라
  • where 열이름 LIKE ‘%AM%’
    • 열이름 값에 AM이 포함되어있는 데이터만 출력하기

 

 

NOT을 붙이면 ~는 제외하고 가 됨 (ex. NOT IN ~)

is null / is not null

  • null 값인 것만 뽑기 / null 값이 아닌것만 조회

 

UNION

  • 집합연산자
  • 두개 이상의 select 문 사이에 쓰임
  • 두가지 경우의 집합을 구하는것

MINUS

  • 차집합
  • union 처럼 중간에 쓰면 됨

INTERSECT

  • 교집합

 

 

문자열

lower(문자열)

  • 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환

upper(문자열)

  • 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환

 

 

문자열 길이 구하기

length(문자열)

  • 열을 넣으면 열의 길이가 나옴
  • WHERE LENGTH(ename) >= 5

lengthb(문자열)

  • 문자열 데이터 길이가 아닌 바이트 수를 반환

문자열 일부를 추출

  • SUBSTR(문자열, 시작위치, 추출길이)
  • SELECT job, substr(job, 2, 1), substr(job, -1, 1) FROM emp

특정 문자를 다른 문자로 바꿈

  • REPLACE(문자열, 찾는문자, 대체할문자(선택))