글
Dev/mysql 2010/05/24 18:46mysql view 사용법
- CREATE VIEW
MySQL 5 버전 이후 부터는 VIEW를 사용할 수 있다.
아래와 같은 구조의 테이블 tData1, tData2 를 생성했다.
(여 기서 tData1 과 tData2 의 참조관계는 없으며 이해를 돕기 위해 작성한 테이블이다.)
-- Data1 테이블 작성
CREATE TABLE tData1 (
idx int(10) unsigned NOT NULL auto_increment,
nMoney int(10) NOT NULL default '0',
nDate int(10) NOT NULL,
PRIMARY KEY (idx)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Data2 테이블 작성
CREATE TABLE tData2 (
idx int(10) unsigned NOT NULL auto_increment,
strJukyo varchar(30) NOT NULL,
PRIMARY KEY (idx)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Data1 테이블 데이터 삽입
TRUNCATE tData1;
INSERT INTO tData1 VALUES
(null, 1000, UNIX_TIMESTAMP() - 86300 * 5),
(null, 2000, UNIX_TIMESTAMP() - 86300 * 4),
(null, 1500, UNIX_TIMESTAMP() - 86300 * 3),
(null, 3500, UNIX_TIMESTAMP() - 86300 * 2),
(null, 1000, UNIX_TIMESTAMP() - 86300 * 1),
(null, 3000, UNIX_TIMESTAMP());
-- Data2 테이블 데이터 삽입
TRUNCATE tData2;
INSERT INTO tData2 VALUES
(null, '용돈'),
(null, '주운돈'),
(null, '은행이자'),
(null, '잔돈'),
(null, '휴대폰요금'),
(null, '월급');
-- View 를 작성한다.
CREATE VIEW Money AS SELECT
D1.idx AS 'Number',
D1.nMoney AS 'Money',
D2.strJukyo AS 'Jukyo',
FROM_UNIXTIME(D1.nDate) AS 'Date'
FROM
tData1 AS D1 INNER JOIN tData2 AS D2
ON (D2.idx = D1.idx);
-- 일반 테이블 처럼 View 테이블을 SELECT 한다.
SELECT * FROM Money ;
SELECT 결과
Number Money Jukyo Date
1 1000 용돈 2009-03-27 오후 1:03:22
2 2000 주운돈 2009-03-28 오후 1:01:42
3 1500 은행이자 2009-03-29 오후 1:00:02
4 3500 잔돈 2009-03-30 오후 12:58:22
5 1000 휴대폰요금 2009-03-31 오후 12:56:42
6 3000 월급 2009-04-01 오후 12:55:02
VIEW 는 가상의 테이블을 말한다.
생성된 VIEW 에는 삽입, 삭제 , 업데이트는 할수 없고 오직 CREATE VIEW 구문에서 정의한 SELECT 문의 결과를 하나의 테이블 처럼 이용 할 수 있다.
VIEW 를 사용할때는 몇가지 제약 사항이 있는데 아래와 같다.
- SELECT 명령문은 FROM 구문에 있는 서브쿼리를 가질 수 없다.
- SELECT 명령문은 시스템 또는 사용자 변수를 참조 할 수 없다.
- SELECT 명령문은 준비 명령문 파라미터를 참조 할 수 없다.
- 스토어드 루틴 내에서 뷰 정의는 루틴 파라미터 또는 로컬 변수를 참조 할 수 없다.
- 테이블 또는 뷰가 정의문 내에서 참조되기 위해서는 이미 존재해 있어야 한다. 하지만, 뷰가 생성된 후에는 정의문이 참조하는 테이블또는 뷰를 없애는 것은 가능하다. 이런 종류의 문제에 대한 뷰 정의를 검사하기 위해서는 CHECK TABLE 명령문을 사용한다.
- 뷰 정의문은 TEMPORARY 테이블을 참조할 수 없으며, 사용자는 TEMPORARY를 생성할 수 없다.
- 트리거를 뷰에 연관 지을수는 없다.
위와 같은 제약사항이 있다.
트랙백
댓글
글
Dev/mysql 2010/05/24 18:45rwapm 에 oracle 설치하기
rwapm http://kldp.net/frs/?group_id=513&release_id=2741
oracle http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
instanceclient-basic-win32
instanceclient-odbc-win32
instanceclient-sdk-win32
3개의 압축파일을 다운받아서 압축을 푼다.
위 세개의 압축파일을 받아서 풀었다.
basic 과 odbc 에 odbc_install.exe. 파일이 있는데 각각 실행시켜봤자 에러가 난다.
odbc 의 파일들을 일단 basic 폴더로 옮긴다. 그런다음 실행을 하면 실행이 된다.
그리고 sdk 의 ott.bat 파일을 실행시켰다..
그 결과... 에러 없이 오라클에 접속이 되었다...
http://www.oracle.com/technology/global/kr/pub/notes/technote_php_instant.html
오라클 9i
설치 한 순서..
1.오라클
2. rwapm
3. Instant Client
php.ini 수정
extension=php_oci8.dll
을 주석; 제거하고 활성화
Instant Client 압축해제
폴더의 내용을 특정 폴더로 이동 합니다..
전 rwapm 폴더에 넣어 줬습니다.
F:\RWAPM\inst10
그리고..
oraociei10.dll
orannzsbb10.dll
oci.dll
이 파일들을
F:\RWAPM\RTM20040531\bin 여기에 복사해 넣어 줍니다..
환경변수 설정
내컴퓨터(마우스 우클릭) -> 속성 -> 고급 -> 환경변수
시스템 변수 수정
path 값에는 F:\RWAPM\inst10;%PATH% 추가 가장 앞쪽에 추가함..
시스템 변수 추가
SET TNS_ADMIN=F:\RWAPM\inst10
SET LD_LIBRARY_PATH=F:\RWAPM\inst10
SET SQLPATH=F:\RWAPM\inst10
레지스트리 수정
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE - NLS_LANG 의 값을
NLS_LANG=KOREAN_KOREA.KO16KSC5601 로 설정
컴퓨터 리부팅..(리부팅을 해야만 환경변수 수정한것들이 리로드 되더군요. apm재시작 만으로는..phpinfo에 환경변수가 변경되지 않습니다.)
test.php
<?
$link_id = OCILogon("id","pw","sid");
if(!$link_id)
{
// Database 에 접속을 실폐하게 되면 아래의 문장이 실행된다.
echo ("Database Error : $link_id");
exit;
}
echo "Database 에 접속을 성공하였습니다.";
?>
참고자료..
http://www.oracle.com/technology/global/kr/pub/notes/technote_php_instant.html
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10111&eid=HBUWI4MnNZAroPiriKo7sGwHMdb8ABcM&qb=cGhwIE5MU19MQU5HPQ==&pid=fiM5bdoi5UZssv8hlpssss--381130&sid=SZOI5bdYk0kAAEegFYQ
RECENT COMMENT