SQL - SELECT, FROM, WHERE

2

SQL

목록 보기
1/2
post-thumbnail

데이터베이스는 h2 데이터베이스를 사용하겠습니다. 데이터베이스마다 문법이 조금씩 다르지만 거의 비슷하니 무엇으로 하든 자신이 사용하는 데이터베이스 문법을 찾아보면서 공부하면 좋을것같습니다.

데이터베이스 생성(CREATE DATABASE)

mysql에서는 아래와 같은 코드로 테이블이 생성된다. h2 데이터베이스는 데이터베이스를 만들지않아도 되니 바로 테이블을 만들어보겠습니다.

CREATE DATABASE 데이터베이스 이름;

테이블 생성(CREATE TABLE)

아무 속성도 가지지 않은 백지 상태의 테이블을 생성합니다.

CREATE TABLE 테이블 이름;

MEMBER 테이블의 고유 번호인 PK(기본 키), MEMBER의 이름, 나이를 속성으로 가진 테이블을 생성합니다.

CREATE TABLE MEMBER(
	MEMBER_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
    NAME VARCHAR2(20) NOT NULL,
    AGE INT NOT NULL);


데이터 입력하기(INSERT)

테이블과 속성을 정의 했다면 이젠 데이터를 할당할 차례입니다. 데이터베이스 상에서의 할당, 즉 데이터 입력은 INSERT라는 문법을 사용합니다.

INSERT INTO MEMBER VALUES('test', '최', 18);

CHAR, VARCHAR, VARCHAR2, DATE형은 모두 ''(작은 따옴표)로 감싸서 입력합니다. 그를 제외한 INT형은 그냥 입력해주시면 됩니다.


데이터 조회하기(SELECT)

이제 입력한 데이터를 조회 해보겠습니다. 데이터베이스의 조회는 SELECT라는 문법을 사용합니다.

SELECT * FROM MEMBER;

SELECT *은 모든 속성 값을 조회한다는 뜻입니다.
그렇다면 위와 같은 SQL문은 멤버 테이블의 모든 속성값을 조회한다는 뜻과 동일합니다.

SELECT 문은 처음 사용하기엔 쉬워보이지만, 사실 상당히 복잡한 구조를 가지고 있습니다.

SELECT 열 이름
	FROM 테이블 이름
    WHERE 조건식
    GROUP BY 열 이름
    HAVING 조건식
    ORDER BY 열 이름
    LIMIT 숫자

일단 간단하고 쉬운 구조부터 알아보도록 하겠습니다.

SELECT 열 이름
	FROM 테이블 이름
    WHERE 조건식

SELECT와 FROM

SELECT * FROM MEMBER;
  • SELECT는 데이터를 조회할 때 사용하는 예약어입니다.

  • *은 위에서 말했든 모든 것을 의미합니다.

  • FROM 뒤에는 테이블 이름을 적어줍니다.

모든 속성(열)을 가져와 보았으니 이번엔 필요한 속성만 조회해 보도록 하겠습니다.

SELECT NAME FROM MEMBER;

*이 모든 것(모든 열)을 의미하였으니 당연히 그 자리에 원하는 속성을 넣으면 되겠죠 ?

특정 조건 조회(WHERE)

SELECT와 FROM은 대부분 WHERE와 함께 사용합니다. WHERE는 특정한 조건에 한해서 결과를 보는 기능을 가지고 있습니다.

저희가 만든 MEMBER 테이블 같이 크기가 작은 테이블이라면 WHERE절은 없어도 상관없을지 모릅니다.

하지만 대규모 회원을 보유한 자체 서비스 회사에서 WHERE절 없이 SELECT ~ FROM문으로 조회를 시도한다면 ?

한번에 엄청난 데이터를 출력하려면 컴퓨터에 부담이 될 수 밖에 없습니다.

이렇게 한번에 많은 데이터를 조회할때 WHERE(조건)문을 사용합니다.

예를 보여드리기 위해 멤버 테이블에 하나의 데이터를 더 추가하였습니다.

아래의 sql문을 실행한다면 어떠한 결과가 나올까요 ?

SELECT * FROM MEMBER WHERE name = '김';

여기서 NAME이 김인 사람의 이름만 출력하고 싶다면 ?

SELECT NAME FROM MEMBER WHERE NAME = '김';

이제 WHERE문이 어떤 느낌인지 감이 올거라고 생각합니다.

WHERE - 연산자

또한 WHERE문에서는 연산자의 사용이 가능합니다.

SELECT * FROM MEMBER WHERE AGE < 19;

WHERE - IN

정수형으로 선언된 속성들은 연산자를 사용할 수 있지만 문자로 선언된 속성들은 IN을 통해 조회할 수 있습니다.

SELECT * FROM MEMBER WHERE NAME IN('최');

WHERE - LIKE

문자열의 일부 문자를 검색하려면 LIKE를 사용합니다.

LIKE를 알아보기 전에 현재 테이블 상태입니다.

SELECT * FROM MEMBER WHERE NAME LIKE '경%';

%는 '경' 뒤의 모든 문자는 아무거나 들어와도 상관없다는 뜻입니다.

_(언더바)는 모든 글자가 아닌 한 글자와 매치하기 위해 사용합니다.

SELECT * FROM MEMBER WHERE NAME LIKE '_주';


지금까지 SQL의 간단한 SELECT, FROM, WHERE에 대해서 알아보았습니다.

0개의 댓글