본문 바로가기

SQL

(8)
RDBMS와 NoSQL의 차이 데이터베이스와 DBMS 데이터베이스 (Database, DB) 는 쉽게 말해서 데이터의 집합을 의미 DB에는 다양한 유형이 존재한다. -계층형(Hierarchical) -망형(Network) -관계형(Relational) -객체지향형(Object-Oriented) -객체관계형(Object-Relational) -계층형 DB 계층형 DB(Hierarchical DB)는 처음 등장한 DB의 개념입니다. 트리(tree) 형태로 구성되어 있기 때문에 처음 구성해 놓으면 이를 변경하기가 까다롭고, 또 다른 데이터를 찾아가는 것이 비효율 적이라는 단점이 있다. -망형 DB 망형 DB(Network DB)는 계층형 DB의 문제점을 개선하기 위해 등장. 계층형과 다르게 데이터끼리도 연결된 유연한 구조이지만 프로그래머가..
SQL (8) PROCEDURE & FUNCTION & TRIGGER PROCEDURE PL/SQL문을 저장하는 객체로 필요할 때마다 복잡한 구문을 다시 입력할필요 없이 간단하게 호출해서 실행 결과를 얻을 수 있음 예시 CREATE TABLE EMP_DUP AS SELECT * FROM EMPLOYEE; CREATE OR REPLACE PROCEDURE DEL_ALL_EMP IS BEGIN DELETE FROM EMP_DUP; COMMIT; END; / 매개변수 있는 프로시저 CREATE OR REPLACE VIEW V_EMP_JOB(사번, 이름, 직급, 성별, 근무년수) AS SELECT EMP_ID, EMP_NAME, JOB_NAME, DECODE(SUBSTR(EMP_NO, 8, 1), 1, ‘남’, 2, ‘여’), EXTRACT(YEAR FROM SYSDATE) – ..
SQL (7) OBJECT VIEW, OBJECT SEQUENCE, PL/SQL VIEW SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만사용자는 테이블을 사용하는 것과 동일하게 사용 가능 예시1 CREATE OR REPLACE VIEW V_EMPLOYEE AS SELECT EMP_ID, EMP_NAME, DEPT_TITLE, NATIONAL_NAME FROM EMPLOYEE LEFT JOIN DEPARTMENT ON(DEPT_ID = DEPT_CODE) LEFT JOIN LOCATION ON(LOCATION_ID = LOCAL_CODE) LEFT JOIN NATIONAL USING(NATIONAL_CODE); SELECT * FROM V_EMPLOYEE; DML명령어로 VIEW 조작이 불가능한 경우 1. 뷰..
SQL (5) DDL DDL(Data Definition Language) 데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함 오라클 객체 종류 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM), 사용자(USER) CREATE 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성하는 구문 CREATE TABLE 테이블명(컬럼명 자료형(크기), 컬럼명 자료형(크기), …); CREATE TABLE MEMBER( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), M..
SQL (4) SUBQUERY SUBQUERY SELECT 문장 안에 포함된 또 다른 SELECT 문장으로 메인 쿼리가 실행되기 전 한 번만 실행되며 반드시 괄호로 묶어야 함서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와자료형을 일치시켜야 함 유형 1. 단일행 서브쿼리 서브쿼리의 조회 결과 값의 개수가 1개인 서브쿼리 2. 다중행 서브쿼리 서브쿼리의 조회 결과 값의 행이 여러 개인 서브쿼리 3. 다중열 서브쿼리 서브쿼리의 조회 결과 컬럼의 개수가 여러 개인 서브쿼리 4. 다중행 다중열 서브쿼리 서브쿼리의 조회 결과 컬럼의 개수와 행의 개수가 여러 개인 서브쿼리 5. 상(호연)관 서브쿼리 서브쿼리가 만든 결과 값을 메인 쿼리가 비교 연산할 때 메인 쿼리테이블의 값이 변경되면 서브쿼리의 결과 값도 바뀌는 서브쿼리 ..
SQL(3) GROUP BY & HAVING & JOIN ORDER BY SELECT한 컬럼에 대해 정렬을 할 때 작성하는 구문으로SELECT 구문의 가장 마지막에 작성하며 실행 순서 역시가장 마지막에 수행됨 표현식 SELECT 컬럼 명 [, 컬럼명, …] FROM 테이블 명 WHERE 조건식 ORDER BY 컬럼명 | 별칭 | 컬럼 순번 정렬방식 [NULLS FIRST | LAST]; GROUP BY 그룹 함수는 단 한 개의 결과 값만 산출하기 때문에 그룹이 여러 개일 경우오류 발생 여러 개의 결과 값을 산출하기 위해 그룹 함수가 적용될 그룹의 기준을GROUP BY절에 기술하여 사용 HAVING 그룹 함수로 값을 구해올 그룹에 대해 조건을 설정할 때 HAVING절에 기술(WHERE절은 SELECT에 대한 조건) 예시- 부서 코드와 급여 3000000 이상인 ..
SQL(2) 함수 함수 하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여작성해 놓은 작은 서브 프로그램 호출하며 값을 전달하면 결과를 리턴하는 방식으로 사용 단일 행 함수 그룹 함수 각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환 특정 행들의 집합으로그룹이 형성되어 적용됨그룹 당1개의 결과 반환 문자처리함수 LENGTH 주어진 컬럼 값/문자열의 길이(문자 개수) 반환 SELECT EMP_NAME, LENGTH(EMP_NAME), EMAIL, LENGTH(EMAIL) FROM EMPLOYEE; 작성법 리턴 값 타입 LENGTH (CHAR | STRING) NUMBER INSTR 지정한 위치부터 지정한 숫자 번째로 나타나는 문자의 시작 위치 반환 작성법 리턴 값 타입 INSTR(STRING, ST..
SQL(1) 연산 SQL 관계형 데이터베이스에서 데이터를 조회하거나 조작하기위해 사용하는 표준 검색 언어로 원하는 데이터를 찾는방법이나 절차를 기술하는 게 아닌 조건을 기술하여 작성 SELECT 데이터를 조회한 결과를 Result Set이라고 하는데 SELECT 구문에 의해 반환된 행들의 집합을 의미함 Result Set은 0개 이상의 행이 포함될 수 있고 특정 기준에 의해 정렬 가능 한 테이블의 특정 컬럼, 행, 행/ 컬럼 또는 여러 테이블의 특정 행/컬럼 조회 가능 SELECT 컬럼 명, [,컬럼 명....] 조회하고자 하는 컬럼명 기술 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사요하지 않음 모든 컬럼 조회 시 컬럼 명 대신 ' * ' 기호 사용 가능하며 조회 결과는 기술한 컬럼 ..