데이터베이스/Oracle
[Oracle] 시퀀스(Sequence) 사용법
시퀀스(Sequence)? 유일한 값을 생성해 주는 오브젝트 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 오브젝트입니다. 보통 중복 값을 허용하지 않는 PK에 사용을 많이 합니다. 예시로는 회원번호, 게시판 글 번호 등... 지속적으로 순번이 증가할 때 사용합니다. 사용방법 CREATE SEQUENCE [스키마명].[시퀀스] INCREMENT BY 1 -> 1씩 증가 START WITH 1 -> 1부터 시작, WITH 100인 경우 100부터 시작 MINVALUE 1 -> 1부터 시작(최솟값) MAXVALUE 100 -> 100까지(최댓값) NOCYCLE -> 순환하지 않음 NOCACHE -> 시퀀스 값을 메모리에 할당하지 않음 INCREMENT BY : 시퀀스 실행 시 증가시킬 값 STAR..
[Oracle]무결성(Constraint) 제약 조건
무결성? 데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 의미! (COLUMN을 지정하는 성질. 설정) 제약조건? 바람직하지 않은 데이터가 저장되는 것을 방지하는 것을 의미 즉, 잘못된 데이터가 입력되지 않도록 무결성 제약 조건을 지정 데이터 무결성 제약 조건(Data Integrity Constraint Rule)이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 말합니다. 제약조건의 종류 무결성 제약 조건 의미 형식 Primary key (기본키) -중복을 허용하지 않는다. -NULL을 허용하지 않는다. UNIQUE + NOT NULL ex)ID, 주민등록번호 CONSTRAINT 제약조건명 PRIMARY K..
[Oracle] JOIN 쉽게 이해하기
JOIN? 2개 이상의 테이블을 연결해서 데이터를 검색하는 방법 보통 두개이상의 행(ROW)들의 공통된 값 기본키(PRIMARY KEY), 외래키(FOREIGN KEY)를 사용해서 JOIN을 한다. 기본키(Primary key) : 테이블에서 레코드의 중복을 허용하지 않는 대표성을 가진 유일한 필드의 모음 기본키 필드 값은 중복되면 안되지만 기본키 필드를 제외한 필드 값은 중복돼도 상관없다 참조키, 외래키(Foreign key) : 테이블 간의 관계를 나타내는 필드의 모음 JOIN을 사용하는 목적? 현재 테이블에서 상대테이블의 정보(COLUMN)을 산출하기 위한 것 JOIN의 예시 구문 [ANSI 표준] SELECT 검색필드명 FROM 테이블명1 JOIN 테이블명2 ON 테이블명1(별명1).필드명1 = ..
[Oracle] ORDER BY, HAVING, ALIAS, GROUP FUNCTION 연습
ORDER BY == SORTING SELECT FROM WHERE ORDER BY SELECT ENAME, SAL FROM EMP ORDER BY SAL ASC; --오름차순 정렬 SELECT ENAME, SAL FROM EMP ORDER BY SAL DESC; --내림차순 정렬 --ALIAS SELECT EMPNO, ENAME, SAL * 12 AS annsal FROM EMP ORDER BY annsal DESC; --ALIAS 로도 사용 가능하다. SELECT ENAME, COMM FROM EMP ORDER BY COMM NULLS LAST; --NULLS FIRST NULL값이 맨 위로 올라온다. // NULLS 의 default 값은 LAST SELECT EMPLOYEE_ID, JOB_ID, ..
[Oracle] 비교연산자, ALL, ANY, IN, NOT IN, BETWEEN, LIKE 연습
Oracle에서 교육용으로 제공하는 HR계정으로 실습 [EMPLOYEES 테이블] SELECT FROM WHERE 조건절 -> IF 비교연산자( > = 문법상 Oracle에선 사용이 안된다 IS NOT NULL( !=NULL) AND(&&), OR(||) 이름이 Julia SELECT first_name, last_name FROM EMPLOYEES WHERE first_name = 'Julia'; 급여가 $9000 이상인 사원 SELECT first_name, salary FROM employees where SALARY >= 9000; 이름이 Shanta 보다 큰 이름 SELECT first_name FROM employees WHERE first_name > 'Shanta'; --이름의 첫 스..
[Oracle] scott 계정 연습문제 (SELECT문, 비교 연산자, 논리 연산자)
1)emp 테이블에서 사원번호, 사원이름, 월급을 출력하시오. 더보기 SELECT EMPNO, ENAME, SAL FROM EMP; 2)emp 테이블에서 사원이름과 월급을 출력하는데 컬럼명은 이 름, 월 급으로 바꿔서 출력하시오. 더보기 SELECT ENAME AS "이 름", SAL AS "월 급" FROM EMP; 3)emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 컬럼명은 사원번호, 사원이름, 월급, 연봉으로 출력하시오. 더보기 SELECT EMPNO AS 사원번호, ENAME AS 사원이름, SAL AS 월급, SAL*12 AS 연봉 FROM EMP; 4)emp 테이블의 업무(job)를 중복되지 않게 표시하시오. 더보기 SELECT DISTINCT JOB FROM EMP 5)em..
[Oracle] SELECT문 형식
형식 설명 SELECT 절 검색할 컬럼 목록 [HINT] 옵티마이저에게 검색방법 제시 [DISTINCT] 중복된 자료 제거 FROM 절 SELECT문에서 선언된 칼럼을 가져올 테이블 (또는 그 비슷한 것, 예를 들면 뷰) 목록 WHERE 절 가져올 행의 조건 논리연산자(AND, OR) 사용이 가능 GROUP BY 절 그룹 함수를 사용 할 때 주로 사용. 주로 SELECT 절에 선언된 칼럼들 중 하나 이상의 칼럼으로 정함. 원래의 행에 대한 결과를 보여주는 것이 아니고 GROUP BY에서 선언된 열에 동일한 값으로 그룹화 하여 결과를 보여준다. HAVING 절 GROUP BY 절에 의해 구성된 그룹들에 대해 적용할 조건을 기술. SELECT 문의 WHERE절과 비슷한 역할 START WITH 절 CONNE..
[Oracle] DDL, DML, DCL 정의
DDL (Data Definition Language) 데이터베이스 및 테이블의 구조를 정의하거나 변경 SQL문 내용 CREATE 데이터베이스 및 객체 생성 DROP 데이터베이스 및 객체 삭제 ALTER 기존에 존재하는 데이터베이스 객체를 변경(수정) DML (Data Manipulation Language) 데이터의 삽입, 삭제, 검색과 수정등을 처리 (CRUD) SQL문 내용 INSERT 데이터베이스 객체에 데이터를 입력 DELETE 데이터베이스 객체에 데이터를 삭제 UPDATE 기존에 존재하는 데이터베이스 객체안의 데이터 수정 SELECT 데이터베이스 객체로부터 데이터를 검색 DCL (Data Control Language) 데이터베이스 사용자의 권한을 제어 SQL문 내용 GRANT 데이터베이스 객..
[Oracle] 문자 자료형, 숫자 자료형
문자자료형 1.CHAR CHAR은 고정길이 문자열을 저장 사용법 : 변수명 CHAR(크기 [CHAR | BYTE]) => COL_CHAR1 CHAR (10 CHAR) -> 10 BYTE에 ABC를 입력하면 ABC 뒤를 SPACE로 처리를 하여 10byte 모두 사용 된다. -> 예제체럼 (10BYTE)선언후 '가' 값을 넣어주면 한글 1글자는 3byte이고 나머지 공백공간(SPCAE) 9byte 이므로 총 12byte로 계산이 된다. 가나' -> 6byte + 8byte = 14byte BYTE수는 LENGTHB(컬럼명) 으로 확인 할 수있다. 가 SPACE SPACE SPACE SPACE SPACE SPACE SPACE SPACE SPACE 2.VARCHAR, VARCHAR2 가변길이 문자열을 저장 사..
[Oracle] 기본 함수 (Standard Function, DUAL TABLE) 문자형 함수, 숫자형 함수, 날짜 함수 정리
-- Standard Function -- DUAL TABLE : 가상테이블 -> 결과용 테이블 SELECT 1 FROM DUAL; --임시테이블이 만들어진다. (값만 확인할 수 있는 테이블) SELECT 'A' FROM DUAL; --문자 가능 SELECT '가나' FROM DUAL; --문자열 가능 SELECT 23*45 FROM DUAL; --연산 가능 -- 문자함수 -- CHR( 숫자 ) : ASCII 값으로 변환 SELECT CHR(65) FROM DUAL; SELECT CHR(97) FROM DUAL; -- String str = "안녕" + "하세요" SELECT '내 점수는 ' || CHR(65) || '입니다' FROM DUAL; -- + 대신 || 연산자 사용. -- LPAD(RPAD)..