image.png

Goal

  • sql 문법을 이용해서 데이터베이스 테이블을 검색할 수 있다.
  • 조건문을 활용해서 테이블에서 원하는 데이터를 검색할 수 있다.

1. SELECT 명령으로 테이블 읽어오기

'SELECT * FROM [테이블명]'

SELECT는 DML에 속하는 명령으로 SQL에서 자주 사용 됩니다. SELECT 명령으로 데이터베이스의 데이터를 읽어올 수 있습니다. SELECT 명령은 질의나 쿼리로 불리기도 합니다.

SELECT *FROM test;
------------------------
no  name      birthday
------------------------
1   홍길동   1994-03-24
2   김재진   NULL

맨 앞의 SELECT는 SQL명령의 한 종류로 'SELECT 명령을 실행하세요' 라는 의미 입니다. 그 다음의 '*'는 모든열을 의미하는 메타문자 입니다. FROM은 처리 대상 테이블을 지정하는 키워드 입니다.

SQL 명령은 키워드에 의해서 '구'로 나눌 수 있습니다. 위에서 작성한 명령문은 SELECT구와 FROM구로 나눌 수 있습니다.

2. DESC 명령으로 테이블 구조 참조

위에서, SELECT명령으로 테이블 전체를 읽어왔습니다. 테이블은 한개 이상의 열로 구성되는데, 조건을 이용해서 특정 열의 값을 읽어올 수 있습니다. DESC 명령어를 이용하여서 테이블의 구조를 참조할 수 있습니다.

DESC test;
--------------------------
Field     Type          Null Key Default Extra
no        int(11)       YES      NULL
name      varchar(20)   YES      NULL
birthday  date          YES      NULL

3. 자료형

테이블은 하나 이상의 열로 구성되며 DESC명령으로 테이블 구조를 참조할 수 있다는 것을 알았습니다. 열에는 몇가지 속성을 지정할 수 있는데, 가장 중요한 속성이 <b>자료형</b> 입니다.

  • INTIGER
    정수값을 저장할 수 있는 자료형 입니다. 소수점은 포함할 수 없습니다.
  • CHAR
    문자열을 저장할 수 있는 자료형입니다. 열의 최대길이를 지정할 수 있습니다.
  • VARCHAR
    문자열을 저장할 수 있는 자료형 입니다. 최대길이를 지정하는 점은 CHAR형과 같습니다. 단 CHAR형과는 달리 데이터 크기에 맞춰 저장공간의 크기도 변경 됩니다.
  • DATE
    날짜값을 저장할 수 있는 자료형입니다.
  • TIME
    시간을 저장할 수 있는 자료형입니다.

4. WHERE 명령으로 검색조건 지정하기

SELECT 열1,열2 FROM 테이블명 WHERE 조건식

제 데이터베이스에는 많은 행이 존재 합니다. 한번에 볼 수 있는 데이터양은 한정되어 있습니다. 화면에 표시할 때는 행이나 열을 선택하여 데이터베이스를 읽어오는 '검색'이 빈번하게 일어 납니다. 행을 선택할때는 'WHERE'구를 사용, 열을 선택할 때는 'SELECT'구를 사용 합니다.

4.1 SELECT 구에서 열 지정하기

먼저, SELECT명령어를 이용해서 열을 선택하는 방법에 대해서 알아보겠습니다.

SELECT 열1,열2... FROM 테이블명
SELECT *FROM test;
------------------------
no  name      birthday
------------------------
1   홍길동   1994-03-24
2   김재진   NULL
SELECT no,name FROM test;
-------------
no  name     
-------------
1   홍길동   
2   김재진   

4.2 WHEREE 구에서 행 지정하기

WHERE 구는 FROM구의 뒤에 표기합니다. '='은 좌측값과 우측값이 일치하는 행을 검색합니다. '<>' 연산자는 좌측값,우측값의 값이 서로다른 경우를 검색하는 연산자 입니다.

SELECT 열 FROM 테이블명 WHERE 조건식
  • 전체테이블 읽어오기
SELECT *FROM test;
------------------------
no  name      birthday
------------------------
1   홍길동   1994-03-24
2   김재진   NULL
  • '=' 연산자 사용
SELECT *FROM test WHERE no=2;
----------------------
no  name     birthday
---------------------- 
2   김재진   NULL
  • '<>' 연산자 사용
SELECT *FROM test WHERE NO <> 2;
----------------------
no  name     birthday
---------------------- 
1   홍길동   1994-03-24

※ 문자열, 날짜시간형을 조건식으로 사용할때는, '' 로 문자열을 둘러싸 표기 해야 합니다.
※ '=' 연산자로 NULL을 검색할 수는 없습니다. 하지만, <br>IS NULL</br>을 사용하여서 NULL값을 검색할 수 있습니다.

SELECT *FROM test WHERE BIRTHDAY IS NULL;
----------------------
no  name     birthday
---------------------- 
2   김재진   NULL

4.3 WHERE 구에서 사용되는 연산자

  • '=' 연산자
    좌변과 우변의 값이 같을 경우 참이 된다.

  • '<>' 연산자
    좌변과 우변의 값이 같지 않을 경우 참이 된다.

  • ' <br>·</br> >'
    좌변의 값이 우변의 값보다 클 경우 참이 된다. 같거나 작을 경우는 거짓이 된다.

  • '>=' 연산자
    좌변의 값이 우변의 값보다 크거나 같을경우 참이 된다.

  • ' <br>·</br> <'
    좌변의 값이 우변의 값보다 작을 경우 참이 된다. 같거나 클 경우는 거짓이 된다.

  • '<=' 연산자
    좌변의 값이 우변의 값보다 작거나 같을 경우 참이 된다.