<SQL - 0002> select, where

개발일지·2023년 3월 1일
0

SQL

목록 보기
2/5
post-thumbnail


SELECT

데이터베이스에서 데이터를 찾기 위해 가장 많이 사용되는 명령어 중 하나인 SELECT 는 테이블 내의 데이터를 선택하는 데 사용되며, 특정 테이블에서 데이터를 선택하는 것뿐만 아니라 다양한 검색 조건을 지정하고, 검색 결과를 정렬하며, 필요한 열만 선택하는 등 매우 유연한 작업을 할 수 있다.


SELECT 의 기본 문법

SELECT column1, column2, ...
FROM table_name
WHERE condition;

위의 구문에서 column1, column2 등은 검색하고자 하는 열의 이름을 지정한다
이때 * 를 사용하면 모든 필드를 선택할 수 있다.
FROM 은 테이블 이름을 나타내고, 필드 이름을 선택할 때는 해당 필드 이름을 쉼표로 구분하여 나열한다.
WHERE 은 선택적으로 사용할 수 있으며, 검색 조건(condition) 을 지정하고, 생략하면 모든 행이 선택된다.
SQL 문의 끝은 보통 세미콜론(;) 으로 표시한다.

DISTINCTSELECT 문에서 중복을 제거하여 고유한 값만 검색하는 데 사용된다.

SELECT DISTINCT column_name 
FROM table_name;
또한, 여러 열의 조합에 대해 고유한 값을 찾을 수도 있다.

그리고 LIMIT, COUNT 등의 다양한 함수를 사용하여 데이터를 검색하거나 계산할 수 있다. 이러한 함수를 적절히 활용하면 데이터를 보다 쉽게 처리할 수 있다.

  • LIMIT : 검색 결과를 제한하는 데 사용한다.
SELECT column1, column2, ...
FROM table_name
LIMIT 10;
대용량 데이터 처리에서 특히 유용하며, 검색 속도를 높일 수 있다. 그러나 검색 대상의 전체 데이터가 아니라 일부만 검색할 때에만 사용되므로, 필요한 결과를 검색하기 위해 어떤 범위를 사용할지 결정하는 것이 중요하다.

  • COUNT : 특정 열이나 테이블의 전체 행 수를 계산하는 데 사용된다.
SELECT COUNT(column_name) 
FROM table_name;
SQL 에서 가장 많이 사용되는 집계 함수 중 하나이다. 데이터의 갯수를 쉽게 계산할 수 있어서 많은 분야에서 사용된다.
SELECT COUNT(*)
FROM table_name
WHERE condition;
또, 특정 조건을 충족하는 행의 수를 계산할 수 있다.

  • 응용하면, COUNTDISTINCT 를 함께 사용하여 중복을 제거하고 특정 열의 고유한 값 수를 계산할 수 있다.
SELECT COUNT(DISTINCT column_name) FROM table_name;

이처럼 SELECT 문을 적절히 활용하여 데이터를 검색하면 데이터베이스에서 원하는 데이터를 효율적으로 검색할 수 있다. 이 작업을 수행할 때는 검색 조건을 명확하게 설정하고, 필요한 열만을 선택하여 불필요한 데이터를 제거하는 등의 작업을 통해 최적화된 검색을 수행하는 것이 좋다.



WHERE

데이터베이스에서 검색하려는 특정 조건을 지정하는 데 사용하며,
이 절은 SELECT, UPDATE, DELETE 등의 SQL 문에서 사용된다.


WHERE 절은 WHERE 키워드 뒤에 조건식을 지정하여 사용된다.
조건식은 일반적으로 데이터베이스의 테이블 열과 비교되는 값을 나타내며, 이를 통해 특정 행이나 데이터를 검색할 수 있다.

예를 들어, 아래의 SQL 문은 customers 테이블에서 customers_name'raon' 인 고객을 검색한다.

SELECT * FROM customers
WHERE customers_name = 'raon';

WHERE 절에서는 다양한 조건을 사용할 수 있다. 그 중에서도 가장 많이 사용하는 것은
=, >, >=, != 등과 같은 비교 연산자다.

SELECT * FROM products
WHERE price > 100;

이외에도 범위(BETWEEN), 포함(IN), 패턴(LIKE) 등 다양한 조건을 사용할 수 있다.

SELECT * FROM products
WHERE price BETWEEN 100 AND 200;
SELECT * FROM products
WHERE product_name IN ('apple', 'banana');

또한 AND, OR, NOT 과 같은 논리 연산자를 사용하여 여러 조건식을 결합할 수도 있다.

SELCET * FROM orders
WHERE order_date > '2023-03-01' AND total_amount > 1000;

특히, 패턴 검색을 위해 LIKE 를 사용하는 경우, 필드값이 특정 문자열로 시작하거나 끝나는 데이터를 선택하는 데 많이 사용하거나, 문자열 패턴과 일치하는 값을 검색할 수 있다. 이를 통해 데이터베이스에서 원하는 정보를 더욱 쉽게 찾을 수 있다.

LIKE 는 다음과 같은 와일드카드 문자를 사용할 수 있다.

  • % : 0개 이상의 임의의 모든 문자열을 나타낸다.
예를 들어, 'apple%''apple', 'applepie', 'applejuice' 등과 일치한다.
SELECT * FROM products
WHERE produnt_name LIKE 'apple%';
`%string%' 은 양쪽에 와일드카드 문자가 있는 문자열을 검색한다.
예를 들어, '%apple%''pineapple', 'apples', 'crabapples' 등과 일치한다.

  • _ : 정확히 하나의 임의의 문자와 일치한다.
SELECT * FROM products
WHERE produnt_name LIKE '__ple';
_는 언더스코어 대신에 하나의 문자를 나타낸다. 예를 들어, '__ple''apple', 'ample', 'maple' 등과 일치하지만, 'pineapple' 과는 일치하지 않는다.

또한 이 외에도 다양한 와일드카드 문자가 있으나, 각각의 와일드카드 문자 유형은 데이터베이스 관리 시스템에 따라 다를 수 있으므로, 사용하는 데이터베이스에 따라 문법을 확인해야 한다.


  • NOT LIKELIKE와 반대로 작동한다. 즉, 지정된 패턴과 일치하지 않는 행을 선택한다.
    예를 들어, 'apple%' 이 아닌 모든 문자열을 선택하려면 NOT LIKE 'apple%'을 사용할 수 있다.
SELECT * FROM products
WHERE produnt_name NOT LIKE 'apple%';

위와 같이 와일드카드 문자는 매우 유용하게 사용된다. 이를 활용하여 다양한 패턴의 문자열을 검색하거나 선택할 수 있다.

더불어, WHERE 절을 이용해 데이터베이스에서 원하는 정보를 찾은 후에는, 그 정보를 활용하여 다양한 분석을 수행할 수 있다. 예를 들어, 데이터베이스에서 선택한 정보를 바탕으로 그래프를 작성하거나, 테이블을 생성하여 분석할 수 있다. 이러한 분석을 통해 데이터베이스에서 얻은 정보를 더욱 활용하여 다양한 결과를 도출할 수 있다.



profile
아닐지

0개의 댓글