티스토리 뷰

Product Manager

Database DB

하루10분 2007. 10. 9. 22:02
반응형

DB(dataBase)란?
여러 사람에 의해 공유되어 사용될 목적으로 통한 관리되는 정보의 집합.
(데이터를 효율적으로 처리, 같은 데이터가 중복되는 문제해결, 다양한 목적의 데이터 재사용)
->테이블이나 뷰, 인텍스 등으로 생성됨.
데이터 저장시에는 테이블을 사용, 데이터 조회나 조작시에는 인덱스를 사용한다.


DBMS (DataBase Management System: 데이터베이스 관리시스템)
- 컴퓨터에 수록한 수많은 데이터들을 쉽고 빠르게 처리하고, 보관 및 관리할 수 있도록 해주는

  소프트웨어.

- 데이터베이스에 담긴 데이터의 추가, 변경, 삭제, 검색 등의 기능을 집대성한 시스템 소프트웨어

- DBMS 의 주 역할
    DBMS는 컴퓨터의 데이터를 안전하게 보관 
    응용 프로그램의 개발을 용이하게 해주는 것

- 다수의 컴퓨터 사용자들이 데이터베이스 안에 데이터를 기록하거나 접근할 수 있도록 지원

  -> 일관성 있는 데이터 처리(트랜젝션 처리)

* DBMS 서버
- Oracle, DB2, Infomix, MS-SQL, MySQL, 티베로, 알티베이스
  하이브리드………………


*테이블(Table), 레코드(Record), 필드(Field)

여러 개의 필드가 모여서 하나의 레코드를 구성하고, 또 여러개의 레코드가 모여서 하나의 테이블을 만든다.
테이블이란 행과 열로 구성되는 단위로서 행을 레코드(Record), 열을 필드(Field) 또는 컬럼이라고 한다.
필드가 모여 하나의 레코드가 이루어지고 레코드가 모여 테이블이 된다.


테이블과 데이터베이스

한 개의 테이블로 이루어진 데이터베이스도 있으나, 대부분 여러 개의 테이블이 모여 하나의 데이터베이스를 만든다.


테이블을 만들기 위한 조건 -모델링
① 동일한 데이터의 중복을 피한다.
   * not null지정을 해줄 수 있다.
② 다양하고 많은 자료들을 각각의 자료의 특성에 맞게 조정
* 데이터의 유형 지정이 가능 하다.
③ 데이터 입력 오류를 줄일 수 있도록 특정한 항목별로 테이블
   만들어 한번만 저장한다.  
 

SQL 요약
SQL : ANSI에서 정해 놓은 데이터베이스의 표준
데이터 정의어(DDL)와 데이터 조작어(DML)를 포함한 데이터베이스용 질의언어(query language)로서 특정한 데이터베이스 시스템에 한정되지 않아 널리 사용된다. 초기에는 IBM의 관계형 데이터베이스 시스템에서만 사용되었으나 지금은 다른 데이터베이스에서도 널리 사용한다.


- SQL 은 표준화되어 있기 때문에 플랫폼과 다른 제품간의 이식성이 매우 높아 데이터베이스를 관리하는 표준적인 언어로 쓰이고 있다. (SQL 은 명령이라고도 한다.)

*데이터처리를 하는 언어
- Java, C 그리고 Visual Basic… 구현 언어는 상이해도 데이터베이스를 제어하는 것은 SQL 로 모두 처리된다. 
1970년대에 미국 IBM사가 개발했는데 그 후 많은 표준화 기관에서 표준화했다. IBM은 Structured Query Language의 약자로서 SQL이라고 했으나, 국제 표준화 기구(ISO)에서는 약어가 아닌 SQL이라는 고유 명사를 사용하여 국제 표준화하고 있다.


SQL 의 종류
  DDL(data definition language) 데이터 정의어
  DML(data manipulation language) 데이터 조작어
  조회(select)


DDL : 데이터베이스를 생성할 목적으로 사용하는 언어

  create table : 테이블 생성
  drop table : 테이블 삭제
  alter table : 테이블 수정

DML : 데이터베이스에 저장된 자료를 검색, 삽입, 삭제, 갱신,
      재구성 하기 위해 사용되는 언어
      insert, delete, update

조회 : 데이터베이스에 저장된 자료들을 추출하는데 사용되는
       언어. 조건을 지정할 수 있다.select

존재하는 테이블 점검
select * from tab;

Tab : 오라클이 내장하고 있는 테이블정보를 담고 있는 테이블이름.
      DB에 저장되어 있는 테이블을 조회


테이블 생성 

테이블 생성은 CREATE TABLE 문으로 가능하다.

CREATE TABLE table_name (
     col_name   col_type [, col_name   col_type,...]
 );

여러 개의 열이 올 수 있으며 저장하고자 하는 데이터의 종류에 따라서 적절한 타입을 지정한다. 다음은 테이블을 생성하는예이다.
CREATE TABLE sample(  //테이블명 sample
   stname varchar(10),  //10개의 문자저장
   stnum int            //int형의 값을 저장
);

SQL은 대소문자 구분을 하지않는다.
열의 개수만큼 나열형으로 사용이 가능하다.


Char => 고정길이 정해진 만큼 메모리를 잡아준다. 사이즈 변경이 안 된다.
Varchar => 가변길이 실제 저장되는 데이터의 길이만큼 메모리를 잡아준다.


테이블 삭제

테이블의 삭제를 위해 SQL 에서는 DROP TABLE 문을 지원한다.

 DROP TABLE table_name;
*데이터 유무와 관계 없이 무조건 삭제된다.


테이블 수정

이미 만들어져 있는 테이블의 컬럼을 추가, 수정, 삭제할 때 사용
- 컬럼 추가
  CREATE TABLE table_name ADD (col_name col_type );
- 컬럼 삭제
  CREATE TABLE table_name DROP COLUMN col_name;
- 컬럼 수정
  CREATE TABLE table_name MODIFY (col_name col_type );


행의 삽입

행의 삽입은 INSERT INTO 문으로 처리한다.
다음은 INSERT INTO 의 일반적인 형식이다. *순차적으로 입력시에는 column은 생략할 수 있다.
INSERT INTO table_name (column [, column])
 VALUES (value [, value]);

VALUES 에 명시되어 각 열에 삽입되는 값들은 해당 열의 데이터 타입과 일치해야 한다. 다음은 행을 삽입하는 SQL 문의 예이다.
 INSERT INTO sample VALUES ('홍길동', 1);
 INSERT INTO sample VALUES ('장동건', 10);
 INSERT INTO sample VALUES ('김자바', 5);
 INSERT INTO sample VALUES ('최지우', 11);

문자를 표현할 때 단일 인용부호를 준다. ''


행의 삭제

특정 행을 삭제하기 위해 사용되는 SQL 문은 DELETE FROM 문으로서 형식은 다음과 같다:

 DELETE FROM table_name //전체삭제
 WHERE column OPERATOR value  //조건절
 [AND | OR column OPERATOR value];

WHERE 절은 데이터를 추출하는데 있어서 조건을 줄 수 있는 절로서 여기에서는 삭제되는 행에 대한 조건을 지정할 수 있다.
조건 연산자는 <, >, =,  >=, <>, LIKE 를 사용할 수 있으며 LIKE 에 사용되는 와일드 문자는 '_' 와 '%' 로서 각각 한 문자와 모든 문자를 표시한다. 다음은 DELETE FROM 의 예제이다:
DELETE FROM sample WHERE stnum = 10;

where절이 없는 경우는 지정한 테이블의 데이터가 전체삭제

*<> not의 의미


조회

데이터베이스로부터 정보를 추출하기 위해 사용되는 명령은 SELECT 문이다. SELECT문은 행의 범위를 정하거나 특정 행을 지정하기 위해 사용되며 DELETE, UPDATE, INSERT 등의 명령들과 함께 결합되어 사용될 수 있다. 또한 WHERE 절을 사용하여 조건에 맞는 행들만을 추출하여 동작을 처리할 수 있다. 다음은 SELECT 문의 일반 형식이다. 여러 테이블을 조인해서 사용도 가능하다.

SELECT [table.]column [, [table.]column] FROM table [,table]
  [WHERE [table].column OPERATOR VALUE
  [AND|OR [table.]column OPERATOR VALUE]]
  [ORDER BY [table.]column [DESC][,[table.]column [DESC]]

Default - AESC(오름차순)

각 조건은 AND, OR로 연결 가능하며, ORDER BY로서 SORT 기준열을 지정해둘 수 있다. DESC 는 역순으로 SORT 됨을 의미한다. 다음은 간단한 SELECT 문의 예제이다:
SELECT * FROM sample;  //테이블전체 조회
SELECT * FROM sample ORDER BY stnum;
SELECT stnum FROM sample; //지정해준 필드를 추출
SELECT stname FROM sample WHERE stnum = 1;
SELECT stnum FROM sample WHERE stname = '최지우';

 
데이터의 수정

특정 데이터의 수정은 UPDATE 문으로 가능하다.
다음은 UPDATE문의 일반적인 형식이다:

  UPDATE table_name SET column=value [, column=value]
 WHERE column OPERATOR value
 [AND | OR column OPERATOR value]

UPDATE sample SET stname='유니코' WHERE stnum = 5;


테이블의 필드 점검
desc  테이블명
 

테이블명 수정
RENAME OLD테이블명 TO NEW테이블명;

반응형
댓글