Search Results for 'DB'

10 POSTS

  1. 2016.08.31 SQL_JOIN
  2. 2015.04.04 종류
  3. 2012.08.13 트랜잭션
  4. 2012.08.13 TRY CATCH
  5. 2012.08.13 SQLRETURN
  6. 2012.08.13 RTRIM
  7. 2012.08.13 저장 프로시저
  8. 2012.08.13 SQL 쿼리문
  9. 2012.08.13 DB 개념 및 용어( 레코드, 필드 등등 )
  10. 2012.08.13 기본 개념

SQL_JOIN

Posted 2016. 8. 31. 15:27

출:http://rapapa.net/?p=311

'DB' 카테고리의 다른 글

종류  (0) 2015.04.04
트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13

종류

Posted 2015. 4. 4. 22:59

마소의 MS SQL

오라클의 Oracle

IBM의 DB2

썬 마이크로시스템의 MySql ( 구글, 야후, 유투브에서도 쓴다네잉.. )

볼랜드의 InterBase

'DB' 카테고리의 다른 글

SQL_JOIN  (0) 2016.08.31
트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13

트랜잭션

Posted 2012. 8. 13. 22:44

전부되거나 둘다 안되거나.

즉, 하나만 되고 하나는 안되는것을 허용할수 없다.

 

  1. 원자성 : 분리할수없는 하나의 단위, 작업이 모두 수행되거나 둘다 되지 않는다.
  2. 일관성 : 트랜잭션에서 사용되는 모든 데이터는 일관되어야한다. 잠금과 관련있다
  3. 격리성 : 트랜잭션 시작전과 끝은 볼수 있지만 수행중인 작업은 볼수 없다
  4. 양속성 : 트랜잭션이 정상종료되면 그 결과는 시스템 오류가 발생하더라도 시스템에 영구적으로 적용된다.

 

사용

BEGIN TRAN

SQL..문..

COMMIT TRAN( 또는 COMMIT WORK: 이건 가장 가까운 트랜잭션이 커밋됨 )

길어지면 저장 하고 싶은 위치에서 SAVE TRAN 하면됨

 

 

이거 나중에 유저간 거래할때 사용하자..☆ 

 

'DB' 카테고리의 다른 글

SQL_JOIN  (0) 2016.08.31
종류  (0) 2015.04.04
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13

TRY CATCH

Posted 2012. 8. 13. 22:43
저장 프로시저 안에서 해당 명령문이 실행됬는지 안됬는지 알아보자

 

DELETE FROM ACCOUNT WHERE id = @tmpID

 

이 작업이 성공인지 실패인지 알아보자

TRY로 감싸주고

CATCH로 알아보고

 

BEGIN TRY

DELETE

FROM ACCOUNT

WHERE id = @pID

END TRY

 

BEGIN CATCH

BEGIN

RETURN 1;

END

END CATCH

 

간단함

실패하면 CATCH안에서 실패시 코드넣어주면됨

 

SQLRETURN

Posted 2012. 8. 13. 22:42

에러                                 실제값                         의미

 SQL_SUCCESS                    0                     함수 호출이 성공

SQL_SUCCESS_WITH_INFO      1                     함수호출은 성공했으나 경고가 발생, 경우에 따라 무시할수도 있고 그렇지 않을수도 있음

SQL_ERROR                        -1                     일반적인 에러이다

SQL_INVALID_HANDLE         -2                     핸들이 무효하다, 이건 100%코드를 잘못 사용하였기 때문이다. 반드시 수정

SQL_NO_DATA                     100                  더이상 읽어올 데이터가 없다. 모든 레코드를 다 읽은 EOF상황이다

SQL_NEED_DATA                  99                  추가적인 정보가 필요하다. 실행중에 더 많은 필요한 파라미터 데이터를 보내야 하는 경우다

SQL_STILL_EXECUTING         2                     함수가 비동기적으로 실행되었고 아직 실행중이다

 

 

 

 SQLSTATE

01000      일반적인 에러

01004      문자열의 오른쪽이 잘렸다. 바인딩된 버퍼으 ㅣ길이가 짧다

01S02      옵션이 변경되었다

22003      숫자의 범위가 넘었다

42000      문법에러 또는 액세스 위반

42S02      테이블 또는 뷰가 존재하지 않는다

HY000      일반적인 에러

HYC00      옵션으로 제공되는 기능이 구현되지 않았음

HYT00      제한시간 초과 

 

RTRIM

Posted 2012. 8. 13. 22:42

특정 문자를 제거하는것.

 

필요할때 찾아보자

'DB' 카테고리의 다른 글

종류  (0) 2015.04.04
트랜잭션  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13
DB 개념 및 용어( 레코드, 필드 등등 )  (0) 2012.08.13

저장 프로시저

Posted 2012. 8. 13. 22:38

내장 프로시저( Store Procedure )

일반 SQL 구문의 경우 실행 할때마다 언제나 파싱, 개체,보안확인,컴파일을 반복하게 된다.

처음 실행할때

  1. 구문분석( Parsing ) : 키워드를 분리하고 문법 검사를 한다
  2. 표준화( Standrdization ) : 각 Object의 이름을 확인한다
  3. 보안점검 : 각 Object에 대해 적절한 권한이 있는지 검사한다
  4. 최적화( Optimize ) : 가장 빠른 성능을 낼 수 있도록 색인, 조인, 잠금 등에 대한것을결정
  5. 컴파일.

반복 실행시 처음 실행할떄의 실행 계획이 캐쉬에 있다면 이를 가져와 실행

하지만 내장프로시저는 처음에만 단 한번 그작업을 수행하고 그에 대한 모든 사항을 캐쉬에 올려놓게 된다.

내장프로시저를 사용할 경우 모든 SQL문은 프로시저 내부로 숨어있기에 프로시저 이름만 노출되 보안에 용이.

 

=> 미리 컴파일된 함수. 그로인해 속도가 빠르다.

 

장점 : 

  1. 빠른 실행
  2. 네트워크 트래픽 감소
  3. 모듈화
  4. 데이터 일치성 강화
  5. 오퍼레이터 에러 감소

즉, 해석, 실행계획, 컴파일 과정이 생략되면서 성능이 향상됨.

 

'DB' 카테고리의 다른 글

트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13
DB 개념 및 용어( 레코드, 필드 등등 )  (0) 2012.08.13
기본 개념  (0) 2012.08.13

SQL 쿼리문

Posted 2012. 8. 13. 22:36

SQL쿼리문 이란..

데이터 베이스에 저장된 값을 불러내는 방법.

SQL 은 Standard Query Language의 약자이고 절차적인 언어라는 뜻.

절차적이란. 프로그램이 서술된 순서대로 실행된다는 뜻.

비절차적으론 JAVA나 다른 객체지향적인 언어들. 즉 순서대로 실행되지 않음.

 

SQL문의 종류는 크게 3가지.

  1. DDL( Data Definition Language )

    데이터를 정의하는 명령어

    create, truncate 등이 여기에 속함

  2. DML( Data Manipulation Language )

    데이터를 조작하는 명령어

    insert, delete, update 등이 여기에 속함

  3. DCL( Data Control Language )

    데이터를 통제하는것. 데이터에 대한 권한이나 시스템에 관한 명령어들을 뜻함

    grannt, commit 등

  4.  select은 이 세가지에 속하지않고 따로뺌..

 

DDL( Data Definition Language )

DDL은 데이터 베이스의 문장의 집단을 의미한다.

각 문장은 CREATE, ALTER, DROP, TRUCATE, GRANT, REVOKE, COMMENT 등으로 시작한다.

  1. CREATE : 스키마 객체를 생성
  2. ALTER : 스키마 객체를 변경
  3. DROP : 스키마 객체를 제거
  4. GEANT, REVOOKE : 스키마 객체의 권한을 부여하거나 박탈
  5. COMMENT : 주석
  6. TRUNCATE : 자료의 버림

등을 수행하는 문장의 집단을 의미한다.

 

 

 

DML( Data Manipulation Language )

DML은 스키마 객체의

  1. INSERT : 데이터를 입력
  2. UPDATE : 수정
  3. SELECT : 조회
  4. DELETE : 삭제
  5. LOCK TABLE : 테이블에 잠금을 설정
  6. EXPLAIN PLAN : SQL문의 처리의 절차에 대한 정보를 얻거나
  7. CALL : 모듈을 호출

하는 작업의 집단.

즉, 각 문장은 INSERT, UPDATE, DELETE, SELECT, LOCK TABLE, EXPLAIN PLAN, CALL등으로 시작된다.

오라클( PL/SQL )의 모듈에서 사용할수 없는 DML로는 EXPLAIN PLAN과 CALL이 있다.

 

 

 

DCL( Data Control Language )

DCL : 트랜젝션의 성격을 제어하는 것으로서 SET TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT 같은 종류가있다.

 

TRANSACTION : 거래함에 있어서 거래하는 양측이 다 원하는 결과물을 얻어 정상적으로 처리되는것

ROLLBACK :  그렇지 않다면 거래자체가 무산되어 원점으로 되돌려 지는것

COMMIT : 정상처리되어 확정한다는 것. 커밋하면 트랜잭션의 처리과정이 모두 반영되며 하나의 트랜잭션

              과정이 끝나게됨.

 

 

오라클( PL / SQL ) 모듈에서는 DCL을 사용할수있고 DCL을 이용하여 모듈의 트랜잭션을 제어할수 있다.

'DB' 카테고리의 다른 글

트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
DB 개념 및 용어( 레코드, 필드 등등 )  (0) 2012.08.13
기본 개념  (0) 2012.08.13

Data : 자료

Table : 표 형식으로의 Data 묶음

Database : Table의 집합( DB )

DBMS : Database Management System( DB를 관리하는 소프트 웨어 )

record : 테이블의 행

field or clumn : 테이블의 열

Data type : 각 field 에 들어갈 데이터의 형식

Primary key : record를 식별하기 귀한 비어있지 않은 유일한 값

Foreign key : 다른 테이블의 Primary Key와 대응되는 필드

SQL : Standard  Query Language. 구조화된 질의 언어

         DB에서 정보를 생성, 혹은 갱싱하여 사용할수 있도록 정의된 표준 언어

ID는 중복되어선 안된. 사용자 ID 정보를 관리하는 Table에서 ID 라는 데이터는 모두 유효해야만 하여 유일해야 한다 -> Primary key

 

Foreign Key : 두개의 테이블을 연결시켜주는 필드. 수강신청 싸이트에서 과목을 선택하려 해도 ID가 없다면 수강신청을 할수없다. 이 경우 ID가 학생정보를 저장하는 테이블과 수강신청 관리 테이블 사이의 Foreign key가 될것이다.

'DB' 카테고리의 다른 글

트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13
기본 개념  (0) 2012.08.13

기본 개념

Posted 2012. 8. 13. 22:34
  1. DB의 기초. 레코드, 필드, 데이터 베이스에 대한 기초적인 정의
  2. Acces 또는 SQL 서버 등의 DBMS 툴을 다룰수 있어야 한다
  3. SQL쿼리문의 문법에 대해 숙지하고 있어야 한다
  4. 트랜젝션, 내장 프로시저, 인덱스 등의 DB 이론도 알고 있어야 한다.

'DB' 카테고리의 다른 글

트랜잭션  (0) 2012.08.13
RTRIM  (0) 2012.08.13
저장 프로시저  (0) 2012.08.13
SQL 쿼리문  (0) 2012.08.13
DB 개념 및 용어( 레코드, 필드 등등 )  (0) 2012.08.13