하루 10분씩 핵심만 골라 마스터하는 SQL (1)

Day 1

데이터 베이스란 무엇인가?

SQL과 관련된 입장에서 보면 구조적인 방식으로 저장된 데이터의 모음을 말한다.

테이블

파을 케비닛에 정보를 저장할 때 그냥 던져 넣지 않고 서로 연관된 정보를 묶어 파일로 구분하고, 저장할 정보가 어떤 파일에 속하는지찾아 파일을 꺼낸 다음, 그 파일에 끼워넣을 것이다. 즉, 테이블은 특정한 방식으로 데이터를 저장할 수 있는 구조적 파일이다.

스키마

데이터 베이스, 테이블 레이아웃 및 속성에 대한 정보

기본 키

테이블 내에서 각 행을 고유하게 구분하는 데 사용되는 열

SQL이란 무엇인가?

Structured Query Language의 약자로 데이터 베이스와의 통신을 위해 고안된 언어이다.


Day 2

SELECT 문


SELECT 문의 목적은 하나 이상의 테이블에서 정보를 가져오는 것이다.

SELECT 열의 이름,열의 이름.. FROM 테이블 이름 ;

SQL언어에서는 명령어의 끝은 세미콜론( ; )으로 마무리한다.

여러 열을 가져올 시, 콤마( , )를 이용해 여러 열을 가져올 수 있다.
모든 열을 가져올 시, 와일드 카드 ( * )를 이용해 모든 열을 가져올 수 있다.

하지만, 와이들카드( * )는 되도록 사용하지 않는 것이 좋다. 왜냐하면 불필요한 열을
많이 가져오게 되면 응용 프로그램의 속도가 느려기지 때문이다.


Day 3

ORDER BY 절

알파벳 순으로 정렬하라고 지시하는 것이다.

SELECT 열의 이름 FROM 테이블 이름 ODER BY 열의 이름,열의 이름..;

ORDER BY 절을 지정할 때는 SELECT 문의 마지막 절이 되도록 해야한다. 그렇지 않으면 오류가 난다.

여러 열을 이용해 정렬할 시, 콤마( , )를 이용해 정렬한다.
또한 열의 위치를 기준으로 정렬이 가능하다.
예를 들어,
SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2,3;
라면, SELECT 목록에 있는 두 번째 열로 정렬한 다음 두번 째 열의 값이 같은 항목에 대해서만 세 번째 열로 정렬하라는 의미이다.

내림차순으로 정렬 시 ORDER BY 1 DESC; 으로 처리 가능하다.


Day 4

WHERE 절 

데이터를 검색할 때 검색 조건을 WHERE을 통해 지정한다.
WHERE 절은 FROM 절에 있는 테이블 이름 바로 뒤에 써야한다.

SELECT 열의 이름 FROM 테이블 이름 WHERE 검색 조건;

WHERE 절의 연산자는 C언어의 연산자와 유사하나,
"BETWEEN : 지정된 두 값 사이에 있음
IS NULL : NULL 값임" 이 존재한다.

작음따옴표( ' ' )는 문자열 값을 나타낼 떄 사용된다.


Day 5

WHERE 절의 조합

WHERE 절에서 여러 연산자들을 이용해 더욱 상세하게 만들 수 있다.

AND 연산자 :  AND 연산자와 연결된 여러가지 검색 조건을 만족하는 데이터만 보여준다.
OR 연산자 : 여러가지 조건들 중 하나 이상의 조건에 부합되면 만족시킨 데이터를 보여준다.

여기서 주의할 점은 WHERE 절에서 AND와 OR을 섞어서 쓸 수 있는데

SELECT prod_name, prod_price FROM Products WHERE vend_id='DLL01'  OR vend_id='BRS01' AND prod_price>=10;

AND 연산자가 OR 연산자보다 우선순위가 높기 때문에 ('DLL01' 제품 혹은 'BRS01' 제품) 중 가격이 10달러 이상인 값을 원했지만, 'DLL01' 제품 혹은 ('BRS01' 중 10달러 이상인 제품)인 데이터를 나타낸다. 그러므로 

SELECT prod_name, prod_price FROM Products WHERE (vend_id='DLL01'  OR vend_id='BRS01') AND prod_price>=10;

로 명령어를 작성해야한다.

IN 연산자 : IN 연산자는 조건의 범위를 지정하는 데 사용된다. 
값은 콤마( , )로 구분하여 괄호 내에 묶으며, 이 값 중에서 하나 이상과 일치하면 조건에 맞는 것으로 평가된다.

SELECT 열의 이름 FROM 테이블 이름 WHERE 검색하고자 하는 열 IN (검색하고자 하는 열의 행 값,검색하고자 하는 열의 행 값..);

NOT 연산자 : 바로 뒤에 오는 조건을 부정하는 역할을 하며, 때문에 혼자서는 사용되지 않는다.

SELECT 열의 이름 FROM 테이블 이름 WHERE NOT 검색하고자 하는 열 IN (검색하고자 하는 열의 행 값,검색하고자 하는 열의 행 값..);

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리