SQL 기초 - 검색

이재현·2024년 7월 18일

SQL 기초

목록 보기
1/4

SQL 기본구조

SQL(Structured Query Language)은 관계형 데이터베이스가 이해할 수 있는 구조화된 언어이다.
데이터베이스는 쉽게 말해 데이터가 저장되어 모여 있는 집합소를 의미한다.

관계형 데이터베이스: 행과 열로 구성된 테이블이 다른 테이블과의 관계를 맺고 모여 있는 집합체이다.
비관계형 데이터베이스: NoSQL 데이터 베이스, 특정 데이터 모델에 대해 특정 목적에 맞춰 구축되는 데이터베이스로 유연한 형태로 되어 있다.


1. 데이터 조회하기

SELECT는 데이터를 조회할 때 사용하는 예약어이고, FROM은 어느 데이터베이스로부터 데이터를 가져올지 입력하는 문법이다.
따라서 이 둘은 세트로 다닌다고 생각하면 된다.

SELECT ‘데이터 Column명’ FROM ‘데이터베이스 명’;

이때 데이터 Column명에 ‘*’을 입력하면 모든 열의 데이터를 가져온다.


2. 조건에 맞는 데이터로만 필터링하기

WHERE은 특정한 조건에 한해서 결과를 보여준다. 기본 조건은 ‘=’을 사용하여 줄 수 있다.

SELECT * FROM Profile WHERE name = ’김’;

이 예시를 보면 profile이라는 DB에서 모든 열을 가져오는데, 다만 name이 ‘김’인 사람의 이름만 출력한다는 것을 의미한다.
또한 WHERE문에서는 연산자의 사용이 가능하다. 연산자의 종류는 아래와 같다.

비교연산자의미예시
=같다age=21, gender=’female’
<>같지 않다, 다르다age<>21, gender<>’female’
>크다age > 21
>=크거나 같다age >= 21
<작다age < 21
<=작거나 같다age <= 21
SELECT * FROM Profile WHERE age < 20;

BETWEEN을 사용하면 범위를 지정해서 가져올 수 있다.

SLECET * FROM Profile WHERE age BETWEEN 21, 23

정수형의 경우 연산자를 사용하지만 문자형의 경우 다른 방식을 사용해주어야 한다.
IN을 사용해서 특정 문자를 조회할 수 있다. 이는 포함하는 조건을 주는 방식이다.

SELECT * FROM Profile WHERE name IN(’김’);
SLECET * FROM Profile WHERE age IN(21, 22, 24, 30)

만약 문자열 전체가 아닌, 일부 문자를 검색하고 싶다면 LIKE를 활용해서 조회할 수 있다.
%를 문자 뒤에 붙이면, 해당 문자 뒤에는 아무 문자나 와도 상관없다는 의미이다.
위치가 중요한데, 앞에 붙이면 앞 문자에 상관없이, 양 옆으로 붙이면 중간에 이 글자가 들어간 문자를 찾는다는 의미이다.
_는 모든 글자가 아닌 한 글자와 매치하기 위해 사용한다.

SELECT * FROM Profile WHERE name LIKE ’김%’;
SELECT * FROM Profile WHERE name LIKE ’_김’;



3. 여러 개의 조건으로 필터링하기

복수의 조건을 달아서 검색할 때는 논리 연산자를 이용해야 한다. 위의 조건들과 함께 사용하면 복수의 조건을 달아 자세한 데이터를 찾아올 수 있다.

논리연산자의미예시
AND그리고age >= 20 and gender=’female’;
OR또는age >= 20 or gender=’female’;
NOT아닌not gender=’female’;

0개의 댓글