이전것/데이터베이스 26

ODBC 란?

ODBC는 Open DataBase Connectivity의 약자이며 모든 DBMS에 독립적은 데이터베이스 애플리케이션을 작성하기 위한 API(Application Programming Interface) 들입니다. 이러한 ODBC는 특정한 DBMS를 사용하는 사람이 ODBC 드라이버를 통하여 다른 DBMS를 사용할 수 있게 합니다. 그래서 단지 ODBC 드라이버 관리자(ODBC Driver Manager)를 호출하여 사용하려는 드라이버를 호출하기만 하면 됩니다. 그러면 그 드라이버는 SQL(Structured Query Language)을 사용하여 DBMS와 교신하게 됩니다. 즉, ODBC는 사용자와 각 데이터베이스 엔진 사이를 연결해 주어 사용자가 공통된 인터페이스로 각각의 다른 데이터베이스 엔진에 ..

[MS-SQL] 문법정리

이것 저것 찾기 싫어서 한번에 정리 해봤습니다.혹시 글주인님이 싫어하신다면 삭제하겠습니다. MS-SQL ** SQL문은 대소문자를 구분하지 않지만 데이타는 대문자와 소문자를 구분한다 주석을 다는 방법은 /* 주석 */ 이거나 한줄만 주석 처리를 할 경우는 문장 맨앞에 --를 붙인다 ** 각각의 데이타베이스의 SYSOBJECTS 테이블에 해당 데이타베이스의 모든 정보가 보관되어 있다 SYSOBJECTS의 TYPE 칼럼으로 'U'=사용자 테이블, 'P'=저장 프로시저, 'K'=프라이머리 키, 'F'=포린 키, 'V'=뷰, 'C'=체크 제약등 오브젝트 이름과 정보를 알 수 있다 데이타 검색 USE 데이타베이스명 /* USE 문을 사용한 데이타베이스 선택 */ SELECT * FROM 데이블명 /* 모든 칼럼 ..

[MS-SQL]MS-SQL에서 go란?

GO는 SQL Server에 SQL문의 일괄 처리의 끝을 알려주는 기능을 합니다. 예) DECLARE @A INT SET @A =1 SELECT @A GO -- 첫 번째 SQL문의 끝을 알림 SELECT @A -- 오류납니다. GO -- 두 번째 SQL문의 끝을 알림 위 문장은 GO명령을 기준으로 두 개의 SQL을 실행하게 됩니다.각각의 SQL문은 서로 별개로 실행됩니다.(SQL문 두 개를 따로 날리는 것과 같습니다.)두 문이 별개로 수행되기 때문에 두 번째 SQL문에서 @A를 select 할 때 오류가 발생하게 됩니다.두 번째 SQL문은 @A가 선언되지(declare) 않았기 때문입니다.

오라클과 MSSQL의 차이 차이점

오라클은 데이터를 관리할 때 데이터들이 데이터파일에 들어있다. 또한 메모리는 구역으로 나누어 관리한다. 서버프로세스가 관련 데이터를 메모리에서 찾을 때 뒤죽박죽 되어있다면 찾는데만도 시간이 오래 걸리기 때문이다. 하나의 예를 들어보자. 봄, 여름, 가을, 겨울옷이 각 250벌씩 총 1000벌을 가지고 있다고 하자. 옷장에 1000벌의 옷을 그대로 넣으면 뒤죽박죽 되어있어 나중에 여름옷만을 꺼내 입기에 매우 불편할 것이다. 그래서 옷장을 4개의 구역으로 나누었다. 봄, 여름, 가을, 겨울 이렇게 4개의 구역으로 나누고 각 구역별로 옷을 넣는다. 그러면 나중에 가을옷만 세탁하려고 꺼낼 때 매우 편할 것이다. 이처럼 데이터를 메모리로 끌어올릴 때 무조건 놓는 것이 아니라 관련되어 있는 것들끼리 놓는다. 이처럼..

4.5. 트랜잭션 (commit, rollback)

출처 : http://www.gurubee.net/lecture/1403트랜잭션(TRANSACTION)- 트랜잭션은 데이터 처리의 한 단위이다.- 오라클 서버에서 발생하는 SQL문들이 하나의 논리적인 작업 단위로써 성공하거나 실패하는 일련의 SQL문을 트랜잭션이라 보면된다.- 오라클 서버는 트랜잭션을 근거로 데이터의 일관성을 보증한다.- 트랜잭션은 데이터를 일관되게 변경하는 DML문장으로 구성된다 (COMMIT, ROLLBACK, SAVEPOINT) TRANSACTION의 시작- 실행 가능한 SQL 문장이 제일 처음 실행될 때TRANSACTION의 종료 - COMMIT이나 ROLLBACK- DDL이나 DCL문장의 실행 (자동 COMMIT)- 기계 장애 또는 시스템 충돌(crash)- deadlock 발생..

4.4.3. CROSS JOIN, ON

CROSS JOINCartesian Product 값을 얻을 때 사용한다. -- 아래 SQL문장을 실행해 보자 SQL> SELECT ename FROM emp CROSS JOIN dept ON 구문 - 조인 조건을 지정 할 수 있다. - 모든 논리 연산 및 서브 쿼리를 지정 할 수 있다. -- 테스트를 위해 scott유저에서 아래 insert문장을 실행시킨다.SQL> INSERT INTO bonus(ename, job, sal) VALUES('SMITH','CLERK',500); -- ON절 사용 예제 (multi-table joins)SQL> SELECT e.empno, e.ename, e.sal FROM emp e JOIN dept d ON (e.deptno=d.deptno) JOIN bonus b ..

4.4.2. Outer Join ( LEFT, RIGHT, FULL OUTER JOIN )

출처 : http://www.gurubee.net/lecture/1021 Outer Join 이란? - Equi Join은 조인을 생성하려는 두 개의 테이블의 한쪽 컬럼에서 값이 없다면 데이터를 반환하지 못한다. - 동일 조건에서 조인 조건을 만족하는 값이 없는 행들을 조회하기 위해 Outer Join 을 사용한다. - Outer Join 연산자는 "(+)" 이다 - 조인시 값이 없는 조인 측에 "(+)"를 위치 시킨다. - Outer Join 연산자는 표현식의 한 편에만 올 수 있다. Outer Join 예제 Equi Join과 Outer Join의 비교 12345678910111213141516171819202122-- Equi Join 으로 부서 번호를 조회하는 예제SELECT DISTINCT(e...

4.4.1. Equi Join, Non_Equi Join, Self Join

조인(Join) Join 이란? - 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법이다. - 보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인한다. - 두 개의 테이블을 SELECT 문장 안에서 조인하려면 적어도 하나의 컬럼이 그 두 테이블 사이에서 공유되어야 한다. Join 방법과 방식 - 조인의 방법 : Equi Join (등가 조인, 내부 조인) , Non-Equi Join, Self Join, Outer Join - 조인의 방식 : Nested Loop Join, Sort Merge Join, Hash Join Equi Join - 가장 일반적으로 사용하는 Equality Condition(=)에 의한 조인이다. - Equi Join의 성능을 ..

4.3. 예명 (Alias)

출처 : http://www.gurubee.net/lecture/1018 테이블 예명 (Alias) - 테이블 Alias로 Column을 단순, 명확히 할 수 있다. - 현재의 SELECT 문장에 대해서만 유효하다 - 테이블 Alias는 길이가 30자까지 가능하나 짧을 수록 더욱 좋다. - 테이블 Alias는 의미가 있어야 한다. - FROM 절에 테이블 Alias 설정시 해당 테이블 Alias는 SELECT 문장에서 테이블 이름 대신에 사용한다. -- 사원수가 3명이 넘는 부서의 부서명과 사원수 조회SQL> SELECT a.dname, b.cnt FROM dept a, (SELECT deptno, COUNT(empno) cnt FROM emp GROUP BY deptno) b WHERE a.deptno..

4.2. SELECT문 및 연산자

출처 : http://www.gurubee.net/lecture/1017 SELECT 문법 SELECT [DISTINCT] {*, column [alias], . . .}FROM table_name[WHERE condition][ORDER BY {column, expression} [ASC | DESC]]; - DISTINCT : 중복되는 행을 제거하는 옵션. - * : 테이블의 모든 column을 출력. - alias : 해당 column에 대해서 다른 이름을 부여할 때 사용. (별칭) - table_name : 질의 대상 테이블 명 - WHERE : 조건을 만족하는 행들만 검색 - condition : column, 표현식, 상수 및 비교 연산자 - ORDER BY : 질의 결과 정렬을 위한 옵션 (..