ASP3.0 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 16. ASP사용자를 위한 SQL문
글번호: 23
작성자: 관리자
작성일: 2000/12/27 오전 11:24:00
조회수: 8487
SQL 문을 배워봅시다.

SQL 문을 배워봅시다.(2000/10/19)

SQL문 목차

SQL문이란???

DML(Data Manipulation Language,데이터 조작 언어) : DB에서 데이터를 검색, 삽입, 삭제 갱신 등의 기능을 하는 언어.
1. SELECT문(데이터 검색(선택))
2. UPDATE문(데이터 갱신)
3. INSERT문(데이터 삽입)
4. DELETE문(데이터 삭제)
※ 위 4가지 조작어는 복합적으로 사용된다.

DDL(Data Description Language,데이터 정의(기술) 언어) : DB에서 테이터의 형이나 구조, 상호 관계 등을 기술하기 위해 DB관리자에 의해 사용되는 언어.
5. CREATE문(기본 테이블의 생성)
6. DROP문(기본 테이블의 삭제)


● SQL이란???

SQL문은 Structure Query Language의 약자로, 우리말로 번역하면 "구조적 질의 언어"라고 번역이 됩니다. 이 SQL 문을 통해서 우리는 DB에 저장되어있는 자료를 원하는 모양으로 끄집어 낼 수 가 있습니다.

● SQL문에서 알아야 할 사항

SQL문에서 알아야 할 사항은 어떤 데이터베이스에서 원하는 레코드를 끄집어 내는 SELECT문과 데이터베이스에 레코드를 추가하는 INSERT문 그리고 DB에 있는 자료를 새로운 자료로 바꾸어주는(갱신하는) UPDATA문, DB에서 원하는 조건에 맞는 레코드를 삭제하는 DELETE문 등을 알아야 합니다.


이번 SQL문 강의에서 예시로 사용할 테이블(테이블명 : STUDENT)

NUMBER

NAME

YEAR

DEPT

AGE

53

박용준

4

산업공학

28

55

백윤정

4

전자계산

23

57

김태호

3

전기공학

30

63

남승훈

2

산업공학

22

68

고현숙

1

전자계산

20

71

한현미

3

산업공학

28

73

김정숙

2

전기공학

27

81

조형기

1

전자계산

21

※ 위 테이블은 특정인과는 무관한 가상자료입니다.


1. SELECT문(데이터의 검색(선택)) : 테이블로부터 원하는 데이터를 원하는 조건으로 뽑아내는 질의문

SELECT문의 기본 사용형식은 아래와 같다. (외우는게 좋아요...)

SELECT [ALL|DISTINCT] 열_리스트
FROM 테이블_리스트
[WHERE 조건]
[GROUP BY 열_리스트
[HAVING 조건]]
[ORDER BY 열_리스트 [ASC|DESC]];

※ "[ ]"로 묶여진 부분 : 생략 가능부분
"{ }"로 묶여진 부분 : 중복 가능 부분
"|" 로 나누어진 부분 : 선택 가능 부분

위 형식을 좀더 간단하게 표현해보면,

SELECT 열_리스트
FROM 테이블_리스트
WHERE 조건

으로 사용된다.

1.1 STUDENT 테이블의 모든 내용 불러오기
테이블의 모든 내용을 검색
SELECT * FROM STUDENT 또는
SELECT NUMBER, NAME, YEAR, DEPT, AGE FROM STUDENT

첫 번째는 "모든 것"을 뜻하는 와일드 문자인 *(애스터리스크 또는 스타라고 읽음)를 사용해서 테이블에 있는 모든 데이터를 뽑아오는 쿼리문이고, 두 번째는 이와 동일하지만, 테이블의 모든 레코드를 각각 선택해서 검색하는 구문이다.

1.2 검색한 내용의 필드명을 다른이름으로 변경(Alias이라고 함)
테이블의 모든 내용을 검색 후 NUMBER필드명을 "번호"로 수정하는구문
SELECT NUMBER AS 번호, NAME, YEAR, DEPT, AGE FROM STUDENT

1.3 STUDENT 테이블에서 중복되는 레코드 제거
테이블에서 학과만을 검색(중복 배제)
SELECT DISTINCT DEPT FROM STUDENT

1.4 조건에 맞는 테이블 검색
WHERE절을 사용해서 조건에 맞는 내용을 검색해 낼 수 있다.
예를 들면, STUDENT테이블에서 학년이 4학년인 학생의 모든 레코드를 뽑아내려한다면,
SELECT * FROM STUDENT WHERE YEAR = 4
위와 같이 하면 된다.

1.4 특정 레코드의 순서대로 검색
ORDER BY절을 사용하여 특정 레코드에 대해서 내림차순 또는 오름차순으로 정렬하여 검색하여 보여줄 수 있다.
STUDENT 테이블의 모든 레코드를 나이가 낮은순부터 높은순으로 정렬하여 검색하라.
SELECT * FROM STUDENT ORDER BY AGE ASC

1.5 함수의 사용으로 좀더 효과적인 검색(Aggregate 함수)
SQL문에는 좀더 효과적인 검색을 위하여 아래와 같은 함수를 제공한다.

함수명

COUNT

SUM

AVG

MAX

MIN

처리내용

레코드의 개수

특정 필드의

특정 필드의
평균값

최대값

최소값

사용예 : SQL = "SELECT 음반명, SUM(경기지역) AS 경기지역판매액, SUM(영남지역) AS 영남지역판매액, SUM(충청지역) as 충청지역판매액, SUM(판매수량) AS 판매량 FROM DATATABLE

1.6 특정 열(필드)를 묶어주는 GROUP BY절
SQL = "SELECT 음반명, SUM(경기지역판매액) AS 판매액 FROM DATA GROUP BY 음반명
위 검색문은 음반명으로 묶어준 후 음반명 및 음반명으로 묶어준 경기지역의 합을 판매액의 이름으로 검색해주는 구문이다.


2. UPDATE문(데이터의 갱신) : 데이터를 포함하고 있는 테이블의 데이터를 원하는 데이터로 갱신 시키는 질의

UPDATE문의 기본사용형식은 아래와 같다.(이것 또한 외우는게 좋아요...)

UPDATE 테이블
SET {열_이름 = 산술식}'
+
[WHERE 조건];

※ +는 1번 이상, *는 0번 이상 중복을 나타냄
,는 반복되는 요소들이 ,로 분리된다는 것을 나타냄.

2.1 레코드의 변경
STUDENT 테이블의 박용준의 나이를 27로 변경하려면,
UPDATE STUDENT SET AGE = 27 WHERE NAME = '박용준';
으로 하면 된다.


3. INSERT문(데이터의 추가) : 새로운 데이터를 테이블에 삽입하는 질의문

INSERT문의 기본사용형식은 아래와 같다.(무조건 외우는게 좋아요...)

INSERT
INTO 테이블[(열_이름-리스트)]
VALUE (열값_리스트);
또는
INSERT
INTO 테이블테이블[(열_이름-리스트)]
SELECT문;


3.1 데이터의 삽입
STUDENT 테이블에 NUMBER : 93, NAME : 김진태, YEAR : 1, DEPT : 전자계산, AGE : 20 인 학생의 데이터를 삽입하는 구문
INSERT
INTO STUDENT(NUMBER, NAME, YEAR, DEPT, AGE) VALUES (93, '김진태', 1, '전자계산', 20);
여기서 중요한 것 한가지는 문자열을 삽입하려면 반드시 " ' "(작은따옴표)로 묶어주어야 하고,
숫자형은 작은따옴표로 묶어주지 않는다.

3.2 부속질의어를 사용한 데이터의 삽입
STUDENT테이블과 동일한 구조를 갖는 MEMBER테이블에 STUDENT테이블에서 산업공학과 학생의 모든 레코드를 검색하여 MEMBER테이블에 삽입하는 구문
INSERT
INTO MEMBER(NUMBER, NAME, YEAR, DEPT, AGE)
SELECT NUMBER, NAME, YEAR, DEPT, AGE
FROM STUDENT
WHERE DEPT = '산업공학';


4. DELETE문(데이터의 삭제) : 테이블의 데이터를 삭제하는 질의문

DELETE문의 기본사용형식은 아래와 같다.(당연히 외우는게 좋아요...)

DELETE
FROM 테이블
[WHERE 조건];


4.1 특정 레코드의 삭제
STUDENT 테이블에서 나이가 25세 이상인 사람의 레코드를 삭제하는 구문
DELETE * FROM STUDENT WHERE AGE >= 25


5. CREATE문(기본 테이블의 생성)

CREATE문의 기본사용형식

CREATE TABLE 테이블명
({열이름 데이터타입 [NOT NULL] [DEFAULT 값],}+
[PRIMARY KEY (열이름_리스트),]
{[UNIQUE (열이름_리스트),]}*
{[FOREIGN KEY(열이름_리스트)
REFERENCES 테이블명[()]
[ON DELETE 옵션]
[ON UPDATE 옵션]]},
*[CHECK(조건식)]);


6. DROP문(기본 테이블의 제거)

CREATE문의 기본사용형식

DROP TABLE 테이블명 [CASCADE|RESTRICT];


7. ALTER문(기본 테이블의 변경)

ALTER TABLE 테이블명
{ADD {열이름 데이터타입|DROP 열이름 데이터타입}};


이상으로 SQL문에 대해서 간단하게 알아보았습니다.
물론, SQL문의 모든걸 다뤄보지는 않았지만, 기초적으로 꼭 알아야 할 사항에 대해서는 빠지지 않았으리라 봅니다.

※ 참고문헌
- 데이터베이스론, 이석호 저.
- J. D. Ullman and J. Widom, A First Course in Database Systems, Prentice Hall

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 17. ADO(ActivX Data Object) : 데이터베이스(DataBase) ... - 관리자 2000-12-27 6733
현재글 16. ASP사용자를 위한 SQL문 - 관리자 2000-12-27 8487
다음글 15. 알고리즘 - 관리자 2000-12-27 5850
 
손님 사용자 Anonymous (손님)
로그인 Home