목록전체 글 (216)
Practice makes perfect
시퀀스(sequence) : 순서를 뜻하는 것으로, 몇 가지 작동을 어떤 기준에 따라 공간적 또는 시간적으로 순서를 정해 놓는 것을 말합니다. 즉, 오라클에서 행을 구분하기 위해서 기본 키를 두는데 그 기본 키는 중복 된 값을 가질 수 있으므로 항상 유일한 값을 가져야 합니다. 그런 기본 키가 유일한 값을 갖도록 사용자가 직접 생성해내는 것이 아니라 숫자를 자동으로 생성해 주는 명령어를 의미합니다. 1) 테이블의 시퀀스 생성 형태 : create squence 테이블 이름 start with increment by N; create sequence memos_seq start with 1 increment by 1; -- 시작의 값을 1로하고 증가하는 값 1로 하여 계속 증가하게 합니다. 2) 데이터 입..
뷰(View)란? : 실직적으로 데이터가 존재하지는 않는 테이블입니다. 이 테이블을 가상 테이블이라고도 부릅니다. 실제 정보를 가지고 있는 테이블을 물질 테이블이라고 하고 그 테이블에서 필요한 정보만 가상의 테이블을 만들어서 읽어 오는 것입니다. ● 뷰의 특징 - 테이블이라고 이름을 붙이는 이유는 기능 자체가 테이블과 동일하기 때문입니다. - 실제 테이블의 정보를 뷰를 통해서 볼 수 있고, 제한적으로 필요한 내용만 사용이 가능하게 해줍니다. - 실질적적인 물리적인 테이블이 존재하고 있어야지만 뷰를 생성할 수 있습니다. - as 다음으로 마치 서브쿼리문과 유사합니다. - 결과를 출력하기 위해서 맨번 select 문을 입력하기란 여간 번거로운 일이 아닐 수 없습니다. 뷰는 이 같이 번거로운 select 문을..
● 서브쿼리 - SQL> : Structured Query Language ① 서브 쿼리는 하나의 select 문장의 절 안에 포함된 또 하나의 select문 문장입니다. (메인 쿼리 / 서브 쿼리) ② Sub Query 부분은 WHERE 절에 연산자 오른쪽에 위치해야 하며 반드시 괄호로 묶어야 합니다. ③ 서브 쿼리는 메인 쿼리가 실행되기 이전에 한번만 실행이 됩니다. ④ 특별한 경우 (Top-n 분석 등)를 제외하고는 Sub Query 절에 Order by 절이 올 수 없습니다. ⑤ 단일 행 Sub Query 와 다중 행 Sub Query 에 따라 연산자를 잘 선택해야 합니다. 단일행 서브 쿼리와 다중행 서브 쿼리에 대해서 자세하게 예시를 통해서 설명하겠습니다. 1) 단일 행 서브쿼리 ( 결과 = 한..
JOIN? 두 개 이상의 테이블에 나뉘어져 있는 데이터를 한 번의 SQL 문으로 원하는 결과를 얻을 수 있는 기능입니다. 좀 더 효율적으로 빠르게 하기 위해서 JOIN 을 통해서 나뉘어진 테이블의 결과 중 원하는 것만 가져올 때 사용합니다. 종류 내용 cross join 2개 이상의 테이블이 조인될 때 where절에 의해 공통되는 컬럼에 의한 결합이 발생 하지 않는 경우를 의미합니다. equi join 조인 대상이 되는 두 테이블에서 공통적으로 존재하는 컬럼의 값이 일치되는 행을 연결하여 결과를 생성하는 방법입니다. non-equi join 동일 컬럼이 없이 다른 조건을 사용하여 join 조건에 특정 범위 내에 있는지를 조사 하기 위해서 조건절에 조인 조건을 = 연산자 이외의 비교 연산자를 이용합니다. ..
데이터 무결성 제약 조건이란? DICR (Data Integrity Constraint Rule) : 테이블에 올바른 데이터만 입력 받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙을 의미합니다. 조건 이름 의미 Not null/null 이 조건이 설정된 컬럼에 null을 허용할 지 아니면 반드시 데이터를 입력받게 합니다. Unique 이 조건이 설정된 컬럼에는 중복된 값이 입려되지 못하도록 합니다. Primary key (기본키) 이 조건은 NOT NULL + UNIQUE의 특징을 가지며 테이블 내에서 데이터들끼리의 유일성을 보장하는 컬럼에 설정합니다. 그리고 테이블당 1개만 설정할 수 있습니다. Check 이 조건에서 설정된 값만 입력을 허용하고 나머지는 거부합니다. Default 이 조건..
트랜잭션 이란 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻합니다. - 하나의 동작을 수행했을 때, 처음 수행 동작부터 마지막까지 올바르게 수행했을 때, 반영하고 오류가 났을 때, 전 상황으로 복귀해주는 역할을 합니다. - 데이터베이스에서 작업의 단위로 트랜잭션이란 개념을 도입한 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위함 입니다. 예시로 설명을 하겠습니다. 트랜잭션 이란 단어를 보면 현금을 인출하는 장면을 떠오려보세요. 현금 인출기에서 돈을 뽑을 때, 카드를 넣고 원하는 액수 만큼을 잔액에서 빼서 인출해줍니다. 또한 총 액수에서 인출이 된 만큼의 차익을 뺀 금액으로 바뀌도록 되어 있습니다. 어느 하나라도 문제가 일어나면 문제가 생기면 모든 동작이 수행 됐을 ..
DML은 데이터 내용에 대해서 입력(insert) , 출력(select) , 수정(update) , 삭제(delete) 등을 처리하는 명령어로 DDL 은 테이블 자체를 수행하는 명령어라면 DML은 그 안의 세부적인 것들을 수행하는 명령어로 생각해주시면 좋을것 같습니다. DML은 CRUD라고 이야기 하는데 C- CREATE/ R- READ / U- UPDATE/ D- DELETE 의 약자 입니다. 1) insert into ~ values() - 삽입 : 데이터 입력 (저장) 형태 : insert into 테이블명(필드명1. 필드명2. 필드명3...) values(내용1. 내용2. 내용3); insert into exam01( deptno,dname,loc) values(10,'회계부','종로구'); --..
DDL 명령를 통해서 테이블을 생성(CREATE) , 수정(ALTER) ,잘라내기(TRUNCATE), 이름변경(RENAME), 삭제(DROP) 등을 수행 할 수 있습니다. 각각의 명령어들을 예시를 통해서 자세히 알아보겠습니다. 1) CREATE 문 : 새로운 테이블을 생성할 때 사용합니다. 형식 : create table 테이블 명( 필드명1 내용(숫자-NUMBER, 글자-VARCHAR2)1, 필드명2 내용2 ...); create table 문 create table cafe( cono number(4), -- 4자리까지 담을 수 있는 숫자의 저장 공간을 확보 coname varchar2(20), -- 문자를 담을 있는 저장소의 공간을 확보 cosal number(6,2) -- 6자리까지 할당 할 수 ..