* 추후에 제목이 수정될 수도 있습니다..
기본 데이터를 저장하기 위한 구조로 테이블을 사용합니다.
테이블은 표처럼 볼 수 있도록 로우(row)와 컬럼(column)으로 구성합니다.
2차원 행열 구조를 가지는 테이블을 나타내면 이와 같은 전체 구조를 가지게 됩니다.
(발그림은 양해를... ^^;;)
로우(row)는 파일 시스템에서 레코드에 해당되는 것으로서 개별적인 정보를 지니고 있으며,
컬럼(column)은 서로 구분되는 속성으로 위의 표에서 no, name, job에 해당하며, 각각을 컬럼(열)이라 합니다.
날짜의 기본적인 출력 형식은 YY/MM/DD 입니다. (한글판 기준)
기본적인 SELECT 문
- [] 안의 내용은 생략 가능한 표현이며, SQL 문은 대소문자를 가리지 않습니다.
지정된 테이블에서 원하는 데이터를 가져올 때 사용하는 쿼리문으로,
{} 안의 내용 중 하나를 선택하여 데이터를 조회할 수 있습니다.
모든 데이터의 조회를 원하는 경우 *(asterisk:에스테리스크) 를 사용하며,
특정 컬럼의 데이터만을 조회할 때에는 컬럼의 이름을 적습니다.
가령, ENAME, JOB 이라는 컬럼에 해당하는 데이터를 EMP 이라는 테이블에서 조회하려면,
앞쪽에 생략할 수 있는 표현인 [DISTINCT] 는 중복된 데이터의 출력을 생략하고자 할 때 붙여줍니다.
이 경우 "이름"에서 쌍따옴표("")를 생략하여도 같은 결과가 출력되지만,
별명에 공백이나 특수 문자, 대소문자를 가리고 싶을 경우에는 반드시 사용해주어야 합니다.
만약 찾고 자 하는 데이터에 와일드카드 문자(_, %)가 포함되어 있을 경우,
ESCAPE 문자를 사용하여 검색할 수 있습니다.
이는 숫자 뿐만 아니라 문자열, 날짜의 비교에 대해서도 사용이 가능합니다.
BETWEEN ... AND 연산자를 활용하면 이를 간단하게 나타낼 수 있습니다.
NOT을 사용하면 이 위의 모든 연산자의 결과를 부정할 수 있는데,
OR의 개념을 가진 IN 연산자에 한해 AND 의 개념으로 변경됩니다.
데이터베이스의 형태
오라클이나 My SQL 등은 관계형 데이터베이스를 기본으로 하며,기본 데이터를 저장하기 위한 구조로 테이블을 사용합니다.
테이블은 표처럼 볼 수 있도록 로우(row)와 컬럼(column)으로 구성합니다.
컬럼(column) ↓ |
|||
컬럼 이름 → |
no | name |
job |
로우(row) → |
1 |
smith | salesman |
2 |
john |
clerk |
|
3 | allen | clerk |
2차원 행열 구조를 가지는 테이블을 나타내면 이와 같은 전체 구조를 가지게 됩니다.
(발그림은 양해를... ^^;;)
로우(row)는 파일 시스템에서 레코드에 해당되는 것으로서 개별적인 정보를 지니고 있으며,
컬럼(column)은 서로 구분되는 속성으로 위의 표에서 no, name, job에 해당하며, 각각을 컬럼(열)이라 합니다.
데이터 형
NUMBER (전체 자릿수, 소수점 이하 자리 수)
숫자 데이터를 저장하기 위한 형식으로, 소수점 이하 자리수를 생략한 채 전체 자릿수만 설정하면 소수점 이하는 반올림되어 정수 값만 저장됩니다.
DATE
단어 그대로 날짜에 대한 데이터를 저장하기 위한 형식으로, 날짜 뿐만이 아닌 세기, 시간, 분, 초에 대한 정보도 담을 수 있습니다. 별 다른 설정을 하지 않는다면 년, 월, 일만을 출력하게 됩니다.날짜의 기본적인 출력 형식은 YY/MM/DD 입니다. (한글판 기준)
VARCHAR2
가변적인 길이의 문자열을 저장하기 위한 형식으로 저장 공간을 낭비하지 않습니다.기본적인 SELECT 문
SELECT [DISTINCT] {*, 컬럼의 이름, 그 외}
FROM 테이블명
[WHERE 조건];
FROM 테이블명
[WHERE 조건];
- [] 안의 내용은 생략 가능한 표현이며, SQL 문은 대소문자를 가리지 않습니다.
지정된 테이블에서 원하는 데이터를 가져올 때 사용하는 쿼리문으로,
{} 안의 내용 중 하나를 선택하여 데이터를 조회할 수 있습니다.
모든 데이터의 조회를 원하는 경우 *(asterisk:에스테리스크) 를 사용하며,
특정 컬럼의 데이터만을 조회할 때에는 컬럼의 이름을 적습니다.
가령, ENAME, JOB 이라는 컬럼에 해당하는 데이터를 EMP 이라는 테이블에서 조회하려면,
SELECT ENAME, JOB FROM EMP;
과 같이 기술하면 됩니다.앞쪽에 생략할 수 있는 표현인 [DISTINCT] 는 중복된 데이터의 출력을 생략하고자 할 때 붙여줍니다.
별칭
SQL 쿼리문의 결과가 출력될 때, 컬럼의 이름이 출력되는 부분에 별칭을 부여할 수 있습니다.
SELECT ENAME [AS] "이름" FROM EMP;
기본적으로 컬럼에 이어 바로 AS를 기술하는데, 이를 생략하여도 결과는 마찬가지입니다.이 경우 "이름"에서 쌍따옴표("")를 생략하여도 같은 결과가 출력되지만,
별명에 공백이나 특수 문자, 대소문자를 가리고 싶을 경우에는 반드시 사용해주어야 합니다.
SELECT 문에 조건 달기
SELECT 문에 WHERE절을 사용하여 조회 할 데이터의 조건을 설정할 수 있습니다.비교연산자
비교연산자는 일반적으로 널리 사용되는 =, >, <, >=, <=, <> 가 있으며, 컬럼의 이름과 함께 사용됩니다.
SELECT * FROM EMP WHERE ENAME="SMITH";
EMP 라는 테이블에서 ENAME 이라는 컬럼에 SMITH 와 일치하는 데이터를 가지고 있는 행(row)만을 출력합니다.
SELECT * FROM EMP WHERE HIREDATE >= '1985/01/01';
EMP 라는 테이블에서 HIREDATE 가 1985/01/01 이후인 데이터를 가지고 있는 행(row)만을 출력합니다.LIKE 연산자
LIKE 연산자는 임의의 문자 또는 문자열을 포함한 값을 찾으려 할 때에 사용할 수 있는 연산자입니다.
... WHERE '컬럼의 이름' LIKE '비교할 패턴'
기본적인 형태는 이러며, '비교할 패턴'에 들어갈 와일드카드 문자로는 0~N개를 대치하는 퍼센트(%)와 한 글자만을 대치하는 언더바(_)가 있습니다.
SELECT * FROM EMP WHERE ENAME LIKE '%A%';
EMP 라는 테이블에서 ENAME 이라는 컬럼에 A가 단 하나라도 들어가는 데이터는 모두 조회합니다.
SELECT * FROM EMP WHERE ENAME LIKE '_A%';
EMP 라는 테이블에서 ENAME 이라는 컬럼에 A가 두 번째로 사용된 데이터만 조회합니다.만약 찾고 자 하는 데이터에 와일드카드 문자(_, %)가 포함되어 있을 경우,
ESCAPE 문자를 사용하여 검색할 수 있습니다.
SELECT * FROM EMP WHERE ENAME LIKE '%\%%' ESCAPE '\';
ESCAPE 문자는 특별히 정해진 것이 없으며, 사용자가 직접 이를 정할 수 있습니다.IN 연산자
IN연산자는 컬럼=조건1 OR 컬럼=조건2 OR 컬럼=조건3 형식의 구문을 간략하게 표현할 수 있도록 해 줍니다.
... WHERE SAL = 300 OR SAL = 500 OR SAL = 1000;
이와 같은 구문을 IN연산자를 사용하면,
... WHERE SAL IN(300, 500, 1000);
과 같이 표현이 가능합니다.이는 숫자 뿐만 아니라 문자열, 날짜의 비교에 대해서도 사용이 가능합니다.
BETWEEN ... AND 연산자
특정 범위 내의 값을 논리 연산자 AND로만 기술하게 되면 상당히 길어지게 될 수도 있는데,BETWEEN ... AND 연산자를 활용하면 이를 간단하게 나타낼 수 있습니다.
... WHERE SAL > 300 AND SAL < 1000;
이와 같은 구문을
... WHERE SAL BETWEEN 300 AND 1000;
과 같이 표현 가능합니다.NOT 연산자
조건절의 앞에 써서 그 연산을 부정하는데 사용합니다.NOT을 사용하면 이 위의 모든 연산자의 결과를 부정할 수 있는데,
OR의 개념을 가진 IN 연산자에 한해 AND 의 개념으로 변경됩니다.
'컴퓨터' 카테고리의 다른 글
SSD 를 질렀습니다 (0) | 2011.03.26 |
---|---|
[Java] 배열 (0) | 2011.03.25 |
[프로그래밍 언어론] EBNF (0) | 2011.03.25 |
SQL 주요 함수 #1 (0) | 2011.03.23 |
파이어폭스4 정식 출시 (0) | 2011.03.23 |
[프로그래밍 언어론] 구문분석의 모호성 (0) | 2011.03.20 |
[프로그래밍 언어론] 구문 분석 방법 (2) | 2011.03.20 |
[프로그래밍 언어론] 파스트리(Parse tree)의 개요 (2) | 2011.03.20 |
[프로그래밍 언어론] BNF (Backus-Naur Form) 란? (0) | 2011.03.20 |
Base64 인코딩에 대한 잡설 (0) | 2011.03.20 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.