본문 바로가기

db

[PHP] MYSQL DB와 연결해보자 PHP Web Prog. 처음으로 PHP를 공부하면서, 적은것이기에 다소 틀린 내용이 있을 수도 있습니다. 그리고, 다른 언어를 알고 계시다는 가정에하에 글을 적기때문에, 완전 웹프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 간단히 MYSQL과 연결을 해봅시다. 우선, 연결 메소드는 mysqli 를 이용할 것이구요. 연결방법과 연결 종료는 다음과 같이 사용합니다. 이전의 mysql_connect와는 다르게 파라미터에 데이터베이스를 바로 선택할 수 있네요. 연결 종료는 파라미터에 간단히 연결자를 넣어주면 됩니다. 그리고 모든 쿼리문은 다음의 함수를 이용합니다.mysql_query(쿼리문); SELECT 쿼리문으로 나온 결과 셋은 다음의 함수를 이용해 데이터를 DB로부터 가져옵니다... 더보기
[SQL] 제약 추가와 삭제, DROP·ADD CONSTRAINT! · Structured Query Language - DROP·ADD CONSTRAINT - 제약 조건을 추가하고, 삭제하는 부분입니다. 테이블을 만들 때, 제약조건을 명시하지 않았거나, 또는, 기존에 존재하는 제약조건을 없애고자 할때 다음과 같은 명령어를 작성합니다. [추가] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명); [삭제] ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명; 추가 부분에서는 'CREATE TABLE' 에서 제약조건 추가하는 두가지 방법 중에 하나와 동일한 형태입니다. 이 글에서는 따로 예제를 만들지 않았습니다. 더보기
[SQL] 컬럼의 이름을 바꾸어 보자, RENAME COLUMN! Structured Query Language - RENAME COLUMN - 이번에는 컬럼명을 바꾸는 방법에 대해서 알아볼까 합니다. 다음과 같이 명령어를 작성합니다. ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경될 이름; 별다른 설명이 필요한 예제가 아니기 때문에, 예제를 통해 글을 마치도록 합니다. 1. 변경할 테이블 2. COL3의 이름 변경을 시도합니다. 바꿀 이름은 'modifiedCol3'입니다. 3. 변경된 이름을 확인합니다. 더보기
[SQL] 테이블의 컬럼을 재정의 해보자, MODIFY COLUMN! Structured Query Language - MODIFY COLUMN - 이번 글에서는 테이블에 정의된 컬럼에 대해서 데이터 타입과, 기본값(Default), NOT NULL 제약에 대해서 변경할 수 있는 명령어에 대해서 알아볼까 합니다. 역시, ALTER TABLE을 통해서 작업을 하구요. 일단 어떻게 명령어를 작성하는지 알아봐야겠죠? ALTER TABLE 테이블명 MODIFY ( 컬럼1 데이터 타입 기본값 NOT NULL, 컬럼2 데이터 타입 ... ) MODIFY 다음부터는 'CREATE TABLE' 명령어를 사용해서 각 컬럼을 정의할 때와 동일합니다. 하지만, 첫 컬럼부터 마지막 컬럼까지 다 적을 필요는 없구요, 변경할려는 테이블에 관해서만 적으면 되겠습니다. 1. 변경할 테이블 입니다. 2.. 더보기
[SQL] 기존의 테이블에 컬럼을 삭제해보자, DROP COLUMN! Structured Query Language - DROP COLUMN - 우선, 기존의 테이블에 컬럼을 추가하는 방법은 다음 글을 참고하시면 되겠습니다. 2012/11/28 - [데이터베이스/SQL & PL/SQL] - [SQL] 기존의 테이블에 컬럼을 추가해보자, ADD COLUMN DROP COLUMN 명령어는 다음과 같이 작성됩니다. ALTER TABLE 테이블명 DROP COLUMN 삭제할 컬럼명; 다음의 테이블에 작업을 할겁니다.(desc 조회) 지난 글에서 추가했던 'COL4'를 다시 삭제해 보겠습니다. 다음과 같이 명령어를 작성합니다. 그리고, 다시 desc 명령어를 통해, 컬럼이 제대로 삭제되었는지 확인합니다. 이상 글을 마치겠습니다. 더보기
[SQL] 기존의 테이블에 컬럼을 추가해보자, ADD COLUMN! ㅁ Structured Query Language - ADD COLUMN - "만들어 놓았던 기존의 테이블에 컬럼을 추가할려면!? 테이블을 지우고 다시 만들것인가?!" 이렇게 고민한 적이 많은데요, 정말 그렇게 할려면, 눈물이 쏙.. ㅠㅠ 빠집니다. ADD COLUMN은 이런 걱정을 해결해 줄 희망의 빛 한줄기 입니다. ADD COLUMN은 명령어 "ALTER TABLE"에 속한 명령어의 한 부분입니다. 우선 ADD COLUMN은 다음과 같이 작성합니다. ALTER TABLE 테이블명 ADD 추가할 컬럼명 데이터타입; 그렇다면, 예제를 통해서 보도록 할게요. 다음과 같은 테이블이 존재합니다. (desc 테이블 조회) TEST_TABLE 에는 세개의 컬럼이 존재합니다. 그렇다면 4번째 컬럼을 넣어보도록 하.. 더보기
[SQL] 테이블을 복제하자, AS SELECT!! Structured Query Language - AS SELECT를 활용한 테이블 복제 - 이번 글에서는 테이블을 만드는 또하나의 방법인 AS SELECT 를 활용한 방법입니다. 우선 테이블을 만드는 방법은 다음 글을 참고하시면 되겠습니다. 2011/07/24 - [데이터베이스/SQL & PL/SQL] - [SQL] 테이블을 만들어보자, CREATE!! AS SELECT를 이용해서 테이블을 만들게 되면 기존의 테이블의 가져와서 똑같이 복제합니다. 그렇기 때문에, 테이블 생성시에 기존의 데이터 유형을 일일이 다시 재정의 하지 않아도 됩니다. 하지만 여기서 주의해야할 점!! NOT NULL을 제외한 나머지 제약(Constraint)-기본키, 외부키, Unique, 등등-이 적용되지 않습니다. 이런 제약을 .. 더보기
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -4 (TABLE LEVEL FLASHBACK, 휴지통(RECYCLE BIN)) 오라클 10g 버전 이후부터 도입하게 된 휴지통 기능은 윈도우의 그것과 비슷한 기능을 합니다. 비록 지웠다고는 하나, 다시 되살릴 수 있는 것이죠. 그래서 혹시나 모를 데이터의 손실도 방지합니다. 사용방법은 테이블 드롭을 하게 되면 휴지통(Recycle Bin)에 위치하게 되는데, 이때 이름만 바꿔서 위치하게 됩니다. 물론 그자리에 다른 테이블이나 객체가 그 용량만큼 다시 자리를 잡을 수 있지만, 그렇게 되면 앞으로 하게될 플래쉬백 복구 기능을 사용하지 못합니다. 휴지통 기능을 사용하는 방법은 다음과 같습니다. 전 글에서 썻던 ftest 테이블을 이용해서 진행하겠습니다. [실행화면] : 인덱스를 만듭니다. [실행화면] : 해당 테이블을 DROP시킵니다. [실행화면] : DROP후 테이블을 확인합니다. 보.. 더보기
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -3 (TABLE LEVEL FLASHBACK, Flashback Transaction Query) 이번에는 플래쉬백(Flashback) 복구 방법 중에 테이블 복구에 관한 것을 다룰까 합니다. 로우 레벨 플래쉬백 복구 방법과 다른 점은 로우 레벨 플래쉬백은 다른 로우(ROW)에 영향을 주지 않고 해당 로우의 데이터를 복구합니다. 하지만 테이블 레벨 플래쉬백 복구 방법은 테이블에 있는 전체 로우에 대해서 어느 한 시점으로 복구하는 것이기때문에, 해당 테이블의 모든 로우의 데이터가 영향을 받게 됩니다. 우선적으로 작업을 할려는 테이블에는 'ROW MOVEMENT'가 'ENABLE' 되어 있어야 합니다. 다음과 같이 설정 가능하겠습니다. SQL> ALTER TABLE 테이블명 ENABLE ROW MOVEMENT; [실행화면] 이제 신나게 업데이트를 해볼까요? 다음 테이블에 작업을 합니다. 저는 1년, 2년.. 더보기
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -2 (ROW LEVEL FLASHBACK, Flashback Transaction Query) 이번글에서 알아볼 Transaction Query는 우리가 이미 행한 트랜잭션에 대해서 Undo 데이터를 통한 Undo SQL 문장을 보여줍니다. 이 트랜잭션 쿼리를 이용하기 위해서는 우선 사용할 계정에 대해서 'select any transaction' 권한이 존재해야 합니다. 권한을 확인후 진행합니다. 없다면 다음과 같이 부여합시다. 관리자 권한으로 접속후 다음을 입력합니다. SQL> GRANT SELECT ANY TRANSACTION TO hr; 권한 관련 글을 다음 링크를 참고하시면 되겠습니다. 권한 설정 관련 글 확인하기 우선 상황을 만들기 위해서 다음과 같이 업데이트를 여러번 해줍니다. [실행화면] [실행화면] [실행화면] [실행화면] 같은 로우(ROW)에 대해서 여러번 업데이트를 진행하고 c.. 더보기