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(문자열, 찾는문자, 대체할문자(선택))