4월, 2010의 게시물 표시

javascript 정규표현식

 문자  매치되는 것  알파벳 문자와 숫자 조합  같은 조합의 문자들  \0  널문자(\u0000)  \t  탭(\u0009)  \n  줄바꿈(\u000a)  \v  수직 탭(\u000b)  \f  폼 피드(\u000c)  \r  캐리지 리턴(\u000d)  \xnn  16진수 nn에 해당하는 라틴 문자  \uxxxx  16진수xxxx에 해당하는 Unicode문자  \cX  제어 문자 ^C  문자  매치되는 것  [...]  대괄호 안에 있는 문자  [^...]  대괄호 안에 없는 문자  .  줄바꿈이나 Unicode 줄마침 문자를 제외한 아무 문자  \w  ASCII 문자  \W  ASCII 문자가 아닌 문자  \s  Unicode 공백 문자  \S  Unicode 공백 문자가 아닌 문자  \d  ASCII 숫자  \D  ASCII 숫자가 아닌 문자  [\b]  백스페이스  문자  의미  {n,m}  앞의 항목이 적어도 n번 이상 나타나고, m 번보다는 적게 나타난다.  {n,}  앞의 항목이 적어도 n번 이상 나타난다.  {n}  앞의 항목이 정확히 n번 나타난다.  ?  앞의 항목이 0또는 한번 나타난다.  +  앞의 항목이 한 번 이상 나타난다는 것을 의미한다.  *  앞의 항목이 0번 이상 나타난다는 것을 의미한다.  문자  의미  |  대체. 왼쪽이나 오른쪽의 부분 표현식을 매치시킨다.  (...)  그룹화. 원소들을 *, +, ?, |, 등과 함께 사용할 수 있게 단일 원소로 그룹화한다.  (?:...)  단지 그룹화만을 위한것. 원소들을 단일 원소로 그룹화하지만 이 그룹에 매치되는 문자들을 기억할 필요는 없다.  \n  그룹 번호 n이 처음 매치되었을 때의 문자를 사용하여 매치시킨다. 그룹은 괄호에 묶인 부분 표현식이다. 그룹 번호는 왼쪽 괄호를 왼쪽에서 오른쪽으로 세어서 정한다. '.+'로 만들어진 그룹은 번호를 지정하지 않는다.  문자  의미  ^  문자열의 시작부분이나, 여러 라인을 찾는 경우 줄의 시작 부분에 매치된다.  $

javascript 모듈

규칙 만약 모듈이 전역 네임스페이스에 심벌을 추가한다면, 문서에 그 심벌이 무엇인지 명확하게 기술되어야 한다. 만약 모듈이 전역 네인스페이스에 심벌을 추가한다면, 그 심벌의 이름과 모듈이 작성되어 있는 파일 이름 간에 명확한 관계가 있어야 한다.

javascript

Closures JavaScript 에서 이러한 public, private, privileged 멤버들의 구현이 가능한 것은, closure 때문이다. closure 의 의미는(Javascript의 closure 구현이 시사하는 바는), inner function 은 outer function 의 var 선언 변수와 매개변수에 접근할 수 있으며, 심지어 outer function 이 리턴된 이후에도 가능하다는 뜻이다. 이는 굉장히 강력한 언어 속성인데, JavaScript 에서 어떻게 이것이 가능한지 파헤쳐놓은 책은 아직은 없다. 대부분 아예 언급할 생각조차 없는 것 같다. private 과 privileged 멤버는 object 가 생성될 때에만 만들 수 있다. 반면, public 멤버는 언제든 만들 수 있다. Patterns Public function Constructor(...) {     this.membername = value; } Constructor.prototype.membername = value; Private function Constructor(...) {     var that = this;     var membername = value;     function membername(...) {...} } Note: function 구문 function membername(...) {...} 은 var membername = function(...) {...}; 표현의 축약이다. Privileged function Constructor(...) {     this.membername = function (...) {...}; } (원 문에) Copyright 2001 Douglas Crockford. All Rights Reserved Wrrrldwide.

javascript 모조클래스

생성자 function Rectangle(w,h){ this.width=w; this.height=h; } var rect1= new Rectagle(2,4); //rect1={width:2,height:4} 생성자 함수에는 일반적으로 반환값이 없다. 다시 말해, 생성자 함수는 this키워드가 가리키는 객체를 초기화시킬 뿐 아무런 값도 반환하지 않는다. 하지만 생성자 함수에서 결과값으로 객체를 반환하면 반환값을 가질 수 있으며, 이때 반환되는 객체는 new 문장의 결과값이 된다. 그리고 생성자 안의 this가 가리키고 있던 객체는 페기도니다. 프로토타입과 상속 자바스크립트의 모든 객체는 프로토타입이라고 불리는 또 다른 객체를 내부적으로 참조할 수 있다. 그리고 객체는 프로토타입의 프로퍼티들을 자신의 프로퍼티로 가져온다. 다시 말해 자바스크립트의 객체는 자신의 프로토타입에 있는 프로퍼티를 상속받는다. function Rectangle(w,h){ this.width=w; this.height=h; } Rectangle.prototype.area=function(){return this.width * this.height;} 상속받은 프로퍼티의 읽기와 쓰기 읽을때 객체에 프로퍼티가 없으면 프로토타입 객체에 프로퍼티를 검사한다. 쓸때는 프로토타입을 검사하지 않는다. 객체에 해당 프로퍼티가 없으면 그 프로퍼티를 만든다. 내장형 타입의 확장 프로토타입을 사용하면 내장객체의 프러퍼티를 만들수 있다. 하지만 좋은 방법은 아니다. 내장형 네이티브 클래스의 프로토타입을 확장하는 것이 안전하고 유용하다. 자바스크립트의 클래스 시뮬레이션 자바나 C++ 자바스크립트간의 비교 자바스크립트의 객체는 프로퍼티의 개수에 제한이 없으며, 동적으로 추가할 수도 있다. 자바나 C++에서 클래스는 객체의 구조를 정의한다. 인스턴스 프로퍼티 인스턴스 메서드 클래스 프로퍼티 클래스 메소드 공통적인 객체 메서드 toString()메서드 valuOf()메서드 비교메서드  a<b  a.compareT

javascript Function() 생성자

Function()생성자를 사용하면 실행시점에 자바스크립트 코드를 동적으로 생성하고 컴파일할 수 있다. 이러한 점에서 Function() 생성자는 전역 함수인 eval() 함수와 유사하다. Function()생성자는 호출될 때마다 함수 몸체를 파싱하고 새로운 함수 객체를 생성한다. 따라서 만약 생성자 호출이 루프안이나 자주 호출되는 함수 안에서 이루어진다면, 이러한 작업은 비효율적일 수 있다. 반면에 루프와 함수안의 함수 리터럴이나 중첩된 함수는 그것이 나타날 때마다 매번 다시 컴파일되지 않는다. 또한 함수 리터럴이 나타날 때마다 생성되는 함수는 서로 다른 함수 객체가 생성된 것이 아니다. 끝으로 Function()생성자의 가장 중요한 점은 생성된 함수가 어휘적 유효범위를 사용하지 않는다는 것이다. 대신 Function()생성자에 의해 생성된 함수는 다음 코드에서 확인할 수 있듯이 마치 최상위 레벨의 함수인 것처럼 컴파일된다.

자바스크립트 문장 문법

 문장  문법  용도  break  break;  bread 레이블;  가장 안쪽의 루프, switch문, 또는 '레이블'로 명명된 문장에서 빠져나온다.  case  case 표현식:  switch 문 내부의 문장에 레이블을 붙인다.  continue  continue;  continue 레이블;  가장 안쪽의 루프, 또는 '레이블'로 명명된 루프를 재시작한다.  default  default;  switch 문에서 디폴트 문장에 레이블을 붙인다.  do/while  do   문장  while(표현식);  while 루프를 만드는 다른 방법  empty  ;  아무일도 안함  for  for(초기화; 테스트; 증가)   문장  편리하게 쓸 수 있는 루프  for/in  for(변수 in 객체)   문장  객체에 속한 프로퍼티들에 대한 루프를 돈다.  function  function 함수 이름 ([전달인자1 [..., 전달인자 n]) {   문장 }  함수를 선언한다.  if/else  if(표현식)   문장1 [else 문장2]  조건부 코드 실행  label  식별자: 문장  '문장'에 '식별자'라는 이름을 붙인다.  return  return[표현식]  함수를 반환한다. 또는 함수를 '표현식'의 값으로 반환한다.  switch  switch(표현식){   문장  }  case 또는 default: 로 레이블이 붙은 문장들로 다중 분기  throw  throw 표현식;  예외를 발생시킨다.  try  try{   문장  }  catch(식별자){  }  finally{  }  예외를 잡아낸다.  var  var 이름_1[=값_1][...,이름_n][=값_n];  변수선언과 초기화  while  while (표현식)   문장  기본적인 루프 생성문  with  with(객체)   문장  유효 범위 체인의 확장

javascript ===, ==, >=, <=연산자

=== 연산자가 두 값이 일치하는지 아닌지 판단하는 데에는 다음과 같은 규칙들을 따른다. 두 값의 타입이 다르다면 두 값은 일치하지 않는다. 두 값이 모두 숫자이고 값이 같다면 두 값은 일치한다. 단, 적어도 하나의 값이 NaN일 경우 두 값은 일치하지 않는다. NaN값은 어느 값과도 일치하지 않는다. 어떤값이 NaN인지 확인하려면 전역 함수인 isNaN()을 사용하라. 두 값이 모두 문자열이고 같은 위치에 정확히 같은 문자들을 갖고 있다면 두 값이 일치한다. 만일 문자열의 길이나 내용이 다른 경우 두 값은 일치하지 않는다. 몇몇 경우 Unicode 표준에서 한 문자열을 인코딩 하는 방법이 두 가지 이상일 수 있음을 유의하라. 하지만 자바스크립트에서 효율성을 위해 엄격히 문자 대 문자 비교의 원칙으로 문자열을 비교하며, 모든 문자열은 비교되기 이전에 '정규 형식'으로 변환되어 있다고 가정한다. 두 값이 모두 불리언 값 true인 경우, 또는 두 값이 모두 불리언 값 false인 경우, 두 값은 일치한다. 두 값이 같은 객체, 배열 또는 함수를 참조할 경우 두 값이 일치한다. 만일 두 값이 서로 별개의 객체를 참조할 경우 두 값은 일치하지 않는다. 설사 두 객체의 프로퍼티가 일치하거나 두 배열의 원소가 일치한다고 하더라고 마찬가지다. 두 값이 모두 null일 경우, 또는 두 값이 모두 undefined일 경우, 두 값은 일치한다. == 연산자가 두 값이 동등한지 아닌지 판단하는 데에는 다음의 규칙들을 따른다. 두 값의 타입이 같은 경우 두 값이 일치하는지 테스트 한다. 두 값이 일치할 경우 그 둘은 동등하다. 두 값이 일치하지 않는 경우 동등하지 않다. 두 값의 타입이 다른 경우라 할지라도 동등할 여지가 있다. 동등함을 확인하는 과정에는 다음 규칙과 타입 변환이 사용된다. 두 값 중에 하나가 null이고 다른 하나가 undefined라면 두 값은 동등하다. 한 값이 숫자이고 다른 하나는문자열이면, 문자열을 숫자로 변환한

javascript 연산자 우선순위

 P  A  연산자  피연산자 타입  수행되는 연산  15  L  .  객체, 식별자  프로퍼티 접근    L  []  배열, 숫자  배열 인덱스    L  ()  함수, 전달인자  함수 호출    R  NEW  생성자 호출  새 객체 생성  14  R  ++  좌변값  전치 후치 증가    R  --  좌변값  전치 후치 감소    R  -  숫자  단항 마이너스    R  +  숫자  단항 플러스    R  ~  정수  비트 단위 NOT    R  !  불리언  논리 NOT    R  delete  좌변값  프로퍼티 정의를 무효화    R  typeof  타입 무방  데이터 타입을 반환    R  void  타입 무방  undefined 값을 반환  13  L  *,/,%  숫자  곱하기, 나누기, 나머지  12  L  +,-  숫자  더하기 빼기    L  +  문자열  문자열 이어 붙이기  11  L  <<  숫자  왼쪽으로 이동    L  >>  숫자  부호비트를 확장하며 오른쪽으로 이동    L  <<<  숫자  부호비트를 확장하며 왼쪽으로 이동  10  L  <,<=  숫자 또는 문자열  작다, 작거나 같다    L  >,>=  숫자 또는 문자열  크다, 크거나 같다    L  instanceof  객체, 생성자  객체 타입 확인    L  in  문자열, 객체  프로퍼티가 존재하는지 확인  9  L  ==  타입 무방  동등한지 테스트    L  !=  타입 무방  동등하지 않은지 테스트    L  ===  타입 무방  일치하는지 테스트    L  !==  타입 무방  일치하지 않은지 테스트  8  L  &  숫자  비트 단위 AND  7  L  ^  숫자  비트 단위 XOR  6  L  |  숫자  비트 단위 OR  5  L  &&  불리언  논리 AND  4  L  ||  불리언  논리 OR  3  R

javascript 데이터 타입과 값

 시퀀스 표현하는 문자  \0  널문자(\u0000)  \b  백스페이스(\u0008)  \t  수평 탭(\u0009)  \n  줄바꿈 문자(\u000a)  \v  수직 탭(\u000b)  \f  폼 피드(\u000c)  \r  캐리지 리턴(\u000d)  \"  큰따옴표(\u0022)  \'  작은 따옴표(\u0027)  \\  역슬래시(\u005c)  \x??  두개의 16진수 숫자 ??에 의해 지정되는 Latin-1문자.  \u???  네 개의 16진수 숫자 ????에 의해 지정되는 Unicode 문자.  \???  1과 377 사이의 8진수 숫자 ???에 의해 지정되는 Latin-1 문자.  값  문자열  숫자  불리언  객체  undefined  "undefined"  NaA  false  Error  null  "null"  0  false  Error  빈 문자열이 아닌 문자열  그 자체  문자열이 나타내는 숫자 값 혹은 NaN  true  String 객체  빈 문자열  그 자체  0  false  String 객체  0  "0"  그 자체  false  Number 객체  NaN  "NaN"  그 자체  false  Number 객체  무한대  "Infinity"  그 자체  true  Number 객체  음의 무한대  "-Infinity"  그 자체  true  Number 객체  기타 숫자  숫자를 문자열로 표현한 것  그 자체  true  Number 객체  true  "true"  1  그 자체  Boolean 객체  false  "false"  0  그 자체  Boolean 객체  Object  toString()  valueOf(), toString(), NaN  true  그 자체  타입  복사  전달  비교  숫자  값  값  값  불

네?

네?

관계형 데이터베이스

기능 데이터의 저장을 관리한다. 데이터에 대한 엑세스를 통제한다. 데이터를 검색 및 수정하기 위한 수단을 제공한다. 하나의 단일 테이블은 칼럼과 행이 조합되어 있다. 칼럼과 행의 교차점을 필드라고 한다. 필드 값은 더 작은 요소로 쪼갤 수 없다. 각 행은 기본키에 의해 구분되고, 기본키는 중복을 허용하지 않으며 없어서 앖되는 값이다. PRIMARY KEY는 일반적으로 변경되지 않은 값으로 정한다. FOREIGN KEY는 논리적인 값에 근거를 한 것이지 물리적으로 존재하는 POINTER와는 다르다. FOREIGN KEY가 가질 수 있는 값은 참조하는 PRIMARY KEY의 값이나 NULL값만 허용한다. 행의 순서는 중요하지 않지만, 기본으로 테이터는 입력되는 순서로 정렬된다. 각 칼럼명은 한 테이블내에서 유일하며 각 테이블명은 한 스키마 내에서 유일하다. 칼럼순서는 데이터를 저장할 때 무의미하지만, 조회할 때는 칼럼의 순서를 지정할 수 있다. 용어  개념  설명  Table  Table은 RDBMS의 기본적인 저장구조로, 한 개 이상의 Column과 0개 이상의 Row로 구성된다.  Row  Row는 Table의 Column들의 값의 조합니다. 예를 들면, S_DEPT Table상에서 한 부서에 관련한 정보는 한 Row가 될 수 있다. Row는 가끔 레코드라고 불린다.  Column  한 Column은 Table상에서 단일 종류의 데이터를 나타내는데, 예를 들면 S_DEPT Table상에서 부서이름이 하나의 Column이 된다. Column은 특정 datatype 및 크기를 갖고 있다.  Field  Row와 Column의 교차점에 Field가 있으며, Field는 데이터를 포함할 수 있으며 데이터가 없을 때, NULL 값을 갖고 있다고 말한다.  Primary Key  Primary Key는 한 Table의 각각의 Row를 유일하게 식별해주는 Column 또는 Column의 조합이다. 예를 들면 부

SQL TRIGGER

TRIGGER란? 사용자가 CALL하는 것이 아니고 임의의 테이블에 특정한 DML문이 수행됐을때 데이터베이스에서 자동적으로 동작하도록 작성한 프로그램이다.   분류 TIMING에 따른 분류 BEFORE TRIGGER AFTER TRIGGER   수행 차수에 따른 분류 STATEMENT TRIGGER ROW TRIGGER   CREATE [OR REPLACE] TRIGGER trigger명 timing event1[OR event2...] OF 컬럼명 ON 테이블명 [FOR EACH ROW] pl/sql_block;

SQL 오라클 CURSOR

CURSOR란? 하나의 고유한 SQL문에 할당된 area를 의미 오라클 서버에 의해서 수행되는 모든 SQL문에는 그 SQL문을 수행하기 위한 CURSOR가 확보됨   CURSOR의 형태 -IMPLICIT CURSOR DML과 ONE ROW SELECT인 경우에 자동으로 선언 -EXPLICIT CURSOR MULTI ROW SELECT 인 경우에 사용자가 선언   IMPLICIT CURSOR SQL%ROWCOUNT : 가장 최근의 SQL문에 의해 처리된 ROW수 SQL%FOUND : 가장 최근의 SQL문에 의해 처리된 ROW의 개수가 한 개 이상이면 TRUE SQL%NOTFOUND : 가장 최근의 SQL문에 의해 처리된 ROW의 개수가 없으면 TRUE SQL%ISOPEN : PL/SQL은 IMPLICIT CURSOR를 사용한 우 즉시 닫기 때문에 항상 FALSE   EXPLICIT CURSOR CURSOR의 선언 - CURSOR에 대한 이름을 부여하고 QUERY에 의한 구조를 정의 CURSOR의 활성화 - QUERY를 수행하고 변수와 BIND. 이때 현재 CURSOR와 BIND된 행을 ACTIVE SET이라 함 CURSOR로부터 데이터 FETCH - 현재 행의 데이터를 변수에 전달 - CURSOR의 POINTER가 다음 행으로 이동 CURSOR를 비활성화 - ACTIVE SET이 RELEASE DECLARE CURSOR cursor명 IS select 문장; OPEN cursor명 FETCH cursor명 INTO 변수1, 변수2,...; EXPLICIT CURSOR의 ATTRIBUTE %ISOPEN : CURSOR가 OPEN되어 있으면 TRUE %NOTFOUND : FETCH문에 의해 검색된 데이터가 없으면 TRUE %FOUND : FETCH문에 의해 검색된 데이터가 있으면 TRUE %ROWCOUNT : FETCH한 데이터의 총 갯수

SQL PL/SQL EXCEPTION

PL/SQL에서 발생하는 ERROR를 EXCEPTION이라 함 EXCEPTION WHEN exception명1[OR exception명2...]THEN 문장1; 문장2; [WHEN exception명3[OR exception명4...]THEN 문장1; 문장2;...] [WHEN OTHERS THEN 문장1; 문장2; ...]   PREDEFINED EXCEPTION DECLARE SECTION에서 선언할 필요 없음 - NO_DATA_FOUND : 데이터를 반환하지 않는 SELECT문 - TOO_MANY_ROWS : 두개 이상을 반환한 SELECT문 - INVALID_CURSOR : 잘못된 CURSOR 연산 발생 - ZERO_DIVIDE : 0으로 나누기 - DUP_VAL_ON_INDEX : UNIQUE COLUMN에 중복된 값을 입력할때   DECLARE exception명 EXCEPTION; PRAGMMA EXCEPTION_INIT(exception명, 에러번호); BEGIN ... EXCEPTION WHEN exception명 THEN ... END;   USER DEFINE EXCEPTION DECLARE exception 명 EXCEPTION; BEGIN RAISE exception명; ... EXCEPTION WHEN exception명 THEN ... END;   SQLCODE, SQLERRM 일반적인 Error처리를 위하여 오라클에서 제공하는 함수인 SQLCODE, SQLERRM을 활용할 수 있다. WHEN OTHER 절의 사용 -예상치 못한 Error처리를 위해서 미리 선언되지 않은 모든 종류의 Error를 처리함 SQLCODE -오라클에서 지정된 Error Code를 숫자로 Return SQLERRM -오라클에서 지정된 Error Code에 해당하는 Error message를

SQL 오라클 DUAL 테이블

DUAL 이라는 테이블은SYS 사용자가 소유하는 오라클의 표준 테이블로서 오직 한 행(row)에 한 컬럼만 담고 있는 dummy 테이블로서 일시적인 산술연산이나 날짜 연산을 위하여 주로 쓰인다. 다시말해서 이 가상 테이블의 SYS의 소유이다. 우리가 SYS로 로그인하지 않거나 SYS.DUAL로 쓰지 않아도 사용할 수 있는 이유는 SYS 사용자가 모든 사용자들에게 사용할 수 있돌고 이 테이블에 PUBLIC synonym을 주었기 때문이다. DUAL 테이블을 요약 정리하면 다음과 같다. DUAL 테이블은 오라클을 설치하면 자동으로 생성되는 테이블이다. DUAL 은 SYS사용자의 스키마지만 모든 사용자가 억세스 할 수 있다. 오직 하나의 DUMMY 컬럼만 가지며, VARCHAR2(1)의 데이터 타입이다. X라는 하나의 행만 가진다. SELECT 문에서 상수를 계산할 때 유용하다. 하나의 행만 가지므로 오직 한번만 상수를 반환한다. 이를 변형하여 상수, 가상컬럼 또는 테이블로부터 expression을 select 하지만, 테이블의 여러 행에 여러번 그 값을 반환받을 수 있다.

SQL 오라클 PL/SQL

오라클에서 지원하는 프로그래밍 언어의 특성을 수용한 SQL의 확장 PL/SQL Block내에서 SQL의 DML(데이터 조작어)문과 QUERY(검색어)문, 그리고 절차형 언어(IF,LOOP)등을 사용하여 절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어이다.   장점 : 프로그램 개발의 모듈화 -Block내에서 논리적으로 관련된 문장들을 기술한다. -강력한 프로그램을 작성하기 위해 Block내에 Sub Block들을 포함한다. -복잡한 프로그램을 의미있고 잘 정의된 작은 Block들로 나눈다. 변수 선언 -변수, 상수등을 선언하여 SQL과 절차형 언어에서 사용한다. -단일형데이타타입과 복합형 데이터타입을 선언할 수 있다. -테이블과 칼럼의 데이터 타입을 기반으로 하는 유동적인 변수를 선언 할 수 있다. 절차형 언어의 사용 -IF문을 사용하여 조건에 따라 일련의 문장을 실행한다. -LOOP문을 사용하여 일련의 문장을 반복적으로 실행한다. -Explicit Cursor를 사용하여 여러 행을 검색힌다. 에러 처리 -Exception 처리 루틴을 사용하여 오라클 서버 에러를 처리한다. -사용자 정의 에러를 선언하고 Exception 처리 루틴에서 처리한다. 이식성 -PL/SQL은 오라클에 내장되어 있으므로 오라클과 PL/SQL을 지원하는 어떤 호스트로도 프로그램을 옮길 수 있다. 성능 향상 -PL/SQL은 응용 프로그램의 성능을 향상시킬 수 있다. -PL/SQL은 여러 SQL 문장을 Block으로 묶고 한번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.   PL/SQL 프로그램의 작성 요령 PL/SQL 블럭내에서는 한 문장이 종료할 때마다 세미콜론(;)을 쓴다. END뒤에 ;을 사용하여 하나의 불럭이 끝났다는 것을 명시한다. PL/SQL 블럭의 작성은 편집기를 통해 파일로 작성할 수도 있고 SQL프롬프트에서 바로 작성할 수도 있다. SQL*PL

SQL Object의 종류

Object의 종류 및 기능 테이블 : 행과 열의 조합으로 구성된 데이터의 기본 저장 단위. 시퀀스 : 자동으로 고유한 숫자값을 생성해주며 주로 기본 키 값을 생성하기 위해 사용. 인덱스 : 쿼리 속도를 향상. 뷰 : 하나 또는 그 이상의 테이블로부터 논리적으로 데이터를 추출한 부분집합으로 논리적이고 가상적인 테이블 시노님 : Object에 대한 또다른 이름으로 ALIAS역할 프로그램 유닛 : SQL, PL/SQL문으로 작성한 Procedure, Function, Trigger, Package   SEQUENCE란? 자동으로 Unique number를 생성 공유가능한 Object 일반적으로 Primary Key값 생성을 위해 사용   CREATE SEQUENCE 이름 [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE }] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE | NOCACHE}]   사용법 : NEXTVAL, CURRVAL 의사 컬럼의 사용 NEXTVAL은 사용 가능한 다음 SEQUENCE값을 반환한다. NEXTVAL은 다른 사용자에 의해 참조되더라도 매번 고유한 값을 반환한다. CURRVAL은 현재 SEQUENCE 값을 포함한다. CURRVAL은 반드시 NEXTVAL사용 후에 참조되어야 한다.   인덱스의 개념 테이블의 데이터를 좀더 빠르게 검색하기 위해 사용하는 데이터베이스 Object이다. 오라클서버가 최적화 방법에 따라 어떤 Index를 사용할 것인지, 혹은 Index를 사용하지 않을 것인지를 결정한다. B*트리의 검색방법으로 디스크 입출력(I/O) 횟수를 줄인다. 오라클 서버가 Index를 자동적으로 사용하고 유지보수한다. Index는 논리적, 물리적으로 테이블과는 독립적이다. Index는 자동으로 생성되기도 하고 사용자

SQL 오라클 DICTIONARY

Dictionary란? 오라클 서버에 의해서 생성되고 유지보수 데이터베이스에 대한 정보를 가짐 읽기 전용으로만 제공되는 뷰와 테이블의 집합 데이터 사전 테이블은 SYS 사용자가 소유한다.   종류 : USER_ : t사용자가 소유한 객체에 관한 정보를 저장 ALL_ : 사용자에게 액세스가 허용된 객체에 관한 정보를 저장 DBA_ : DBA권한을 가진 사용자가 액세스 할 수 있는 정보를 저장 V$ : 서버의 성능과 Locking에 관한 정보를 저장. 일반적으로 DBA에게만 허용됨   기타 뷰 DICTIONARY : 모든 데이터 사전 테이블, 뷰, 동의어 저장 TABLE_PRIVILEGES : 사용자가 권한을 부여했거나 부여받은 오브젝트에 대한 권한 IND : USER_INDEXES의 동의어    

SQL 오라클 CONSTRAINT

개념 : Constraint란 데이터 무결성 유지를 위하여 사용자가 지정할 수 있는 성질이다. 모든 Constraint은 데이터 사전에 저장된다. 의미있는 이름을 부여했다면 Constraint을 참조하기 쉽게 된다. Constraint의 이름은 표준 객체 명명법을 따르는게 좋다. Constraint의 이름은 한 사용자 내에서 중복될 수 없다. Constraint의 이름을 생략했다면 ORACLE은 SYS_Cn형식의 이름을 만든다.   정의 방법 : 컬럼 [CONSTRAINT 제약조건 이름] 제한조건 유형, 컬럼,... [CONSTRAINT 제약조건 이름] 제한조건 유형(컬럼1, 컬럼2...)   종류 : NOT NULL : 컬럼이 널값을 가질 수 없음 NOT NULL 제약 조건은 NULL 값을 칼럼에 사용할 수 없게 한다. NOT NULL 제약 조건이 없는 칼럼은 NULL 값을 가질 수 있다. NOT NULL 제약 조건은 칼럼 레벨로만 정의할 수 있다. UNIQUE : 컬럼이나 컬럼의 조합이 테이블의 모든 행에서 고유한 값을 가져야 함 UNIQUE 제약조건은 칼럼이나 컬럼의 조합을 고유 키로 지정한다. 테이블에는 이 키에 대한 같은 값을 갖느느 행이 하나 밖에 없다. UNIQUE 키는 한 칼럼에 대한 것이라면 NULL 값을 쓸 수 있다. 칼럼 레벨이나 테이블 레벨에서 모두 정의할 수 있다. UNIQUE 칼럼에 대해 UNIQUE 인덱스가 자동으로 생성된다. PRIMARY KEY : 컬럼이나 컬럼의 조합이 테이블의 각 행을 유일하게 구별시켜 줌 테이블에 단 하나의 Primary key만 허용한다. 여러 칼럼일지도 NULL값을 허용하지 않는다. 테이블이나 칼럼 레벨에서 정의할 수 있다. UNIQUE 인덱스를 자동으로 생성한다. FOREIGN KEY : 컬럼이나 컬럼의 조합이 다른 테이블의 컬럼이나 컬럼의 조함을 참조함 foreign key는 자식(child) 테이블에 정의한다. 부모 테이블의 값과 일치하거나 NULL이어야 한다. 테이블이

SQL 오라클 내장함수(변환형 함수, 날짜 함수, 숫자형 함수)

숫자형 함수 ROUND : 숫자를 반올림 ROUND(숫자값,a) a가 양수이면 소수이하자리를, 음수이면 정수 부분 자리이다. ROUND(35.735,2) -> 35.74 TRUNC : 숫자를 절사 TRUNC(숫자값,a) MOD : 나누기 연산에서 나머지 구함 MOD(7,2) -> 1 POWER : 거듭제곱 POWER(3,2) -> 9 SQRT : 제곱근 SQRT(25) -> 5 SIGN : 양수인지 음수인지 0인지를 구별함 SIGN(-15) -> -1 CHR : ASCII값에 해당하는 문자를 구함 CHR(65) -> A   날짜형 함수 SYSDATE : 현재 시스템의 날짜 및 시간을 구함 SYSDATE -> 현재 시간 10-MAY-99 LAST_DAY : 지정한 날짜의 해당월의 마지막 날짜를 구함 LAST_DAY('17-FEB-98') -> 28-FEB-98 MONTHS_BETWEEN : 두 날짜사이의 개월수를 구함 MONTHS_BETWEEN('26-APR-97','22-JUL-95') -> 21.1290323 ADD_MONTHS : 지정한 날짜로부터 몇 개월수의 날짜를 구함 ADD_MONTHS('22-JUL-95',21) -> 22-APR-97 ROUND : 날짜에 대한 반올림 ROUND('10-MAY-99','MONTH') -> 01-MAY-99 TRUNC : 날짜에 대한 버림  TRUNC('10-MAY-99','MONTH') -> 01-MAY-99 변환형 함수 TO_CHAR : 숫자나 날짜를 문자열로 변환 TO_CHAR(350000,'$999,999') -> $350,000 TO_NUMBER : 문자를 숫자로 변환 TO_NUMBER('1234') -> 1234 TO_DATE : 문자를 날짜로 변환 TO_D