[SQL] 01. 데이터베이스와 SQL, 데이터 조회

학습 내용

  • 데이터베이스와 SQL이 무엇인지 안다.
  • SELECT, FROM 문을 이용하여 데이터를 조회할 수 있다.
  • WHERE 절을 이용하여 데이터를 필터링할 수 있다.

01. 데이터와 데이터베이스

데이터(Data)란?

  • 데이터는 ‘저장이나 처리에 효율적인 형태로 변환된 정보(information)’

데이터의 유형

데이터는 크게 세 가지의 유형을 나눌 수 있음.

  1. 정형 데이터(Structured Data)
    • 행(Row)과 열(Column)로 구성된 표(Table) 형태의 연산이 가능한 데이터
    • 정해진 구조와 스키마(Schema)가 있기 때문에 검색, 필터, 정렬 등의 처리가 빠르고 쉬움
    • ex) CSV, 엑셀, 스프레드시트, 관계형 데이터베이스
  2. 비정형 데이터(Unstructured Data)
    • 일정한 구조가 없는 자유로운 형태로 연상이 불가능한 데이터
    • 구조가 없기 때문에 분석이나 처리에는 추가적인 전처리 작업이 필요
    • ex) NoSQL, 이미지, 소리, 영상 등
  3. 반정형 데이터(Semi-structured Data)
    • 일정한 구조는 있으나 엄격한 스키마는 없고 연산이 불가능한 데이터
    • 태그나 key-value 쌍과 같은 일관된 표현 규칙은 존재하지만, 각 데이터 항목마다 구조가 조금씩 달라질 수 있음
    • ex) HTML, XML, JSON 등

데이터베이스(Database)란?

“A database is an organized collection of data”

  • 데이터베이스란(Database)는 데이터를 효율적이고 체계적으로 저장하고 관리할 수 있도록 만든 시스템
  • 데이터베이스는 잘 조직화된 데이터의 모음이 저장된 폴더 같은 느낌
  • 가장 대표적인 형태는 관계형 데이터베이스(Relational Database)로, 데이터를 표(Table) 형태로 저장

DBMS(Database Management System)

Database management systems (DBMSs) are specially designed software applications that interact with the user, other applications, and the database itself to capture and analyze data

  • DBMS는 사용자, 다른 프로그램 또는 데이터베이스와 소통하며 데이터를 관리하고 분석하는 특별하게 고안된 소프트웨어
  • Database 조작하는 프로그램
  • 대표적으로 MySQL, PostgreSQL, Oracle DB, SQlite 등이 있음

02. SQL(Structured Query Language)

SQL이란?

  • SQL은 데이터베이스에서 데이터를 생성, 조회, 수정, 삭제하기 위해 사용하는 표준 언어
  • SQL을 통해 데이터베이스에 원하는 작업을 요청할 수 있는데, 이 때 데이터베이스에 보내는 요청문 또는 명령어를 ‘쿼리(Query)’ 라고 함

    SQL은 ‘코드’가 아니라 데이터베이스에 필요한 작업을 요청하는 것이기 때문에, 작성 전에 어떤 요청을 할 지 잘 생각해야함

03. SQL 데이터 조회하기

SELECT, FROM 문

  • SELECT: 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query에 사용
  • FROM: 데이터를 가져올 테이블을 특정해주는 문법
  1. 구조
    • 원하는 데이터를 보기 위해서는 SELECT에 보고 싶은 칼럼명과 FROM에는 데이터를 가져올 테이블을 명시하면 됨.
SELECT 칼럼명
FROM 테이블명;
-- people 테이블에서 모든 칼럼의 데이터 가져오기
SELECT * FROM people;

-- people 테이블에서 name 칼럼의 데이터 가져오기
SELECT name FROM people;

2. 칼럼에 별명(alias) 주기

  • 원하는 칼럼을 조회했지만, 칼럼명이 평소에 사용하는 명칭이나 내가 원하는 칼럼명이랑 다를 수 있음.
  • 별명(alias)를 지정하여 칼럼명을 변경할 수 있음
  • 주의사항
구분영어, 언더바한글, 특수문자
방법별명만 적음큰 따옴표
예시ord_id“주문번호”
SELECT 칼럼명 AS 새로운 칼럼명
FROM 테이블;
-- 방법1. 칼럼명 AS 별명
SELECT order AS "주문번호" FROM orders;

-- 방법2. 칼럼명 별명
SELECT order "주문번호" FROM orders;

-- 영문
SELECT order ord_no FROM orders;

04. 원하는 조건으로 필터링

WHERE 절

  • WHERE는 특정 조건을 만족하는 데이터를 조회할 때 사용하는 구문
  • SELECT와 함께 사용하여 조건에 맞는 데이터만 필터링 할 수 있음.
  1. 구조
    SELECT 칼럼명
    FROM 테이블명
    WHERE 필터링 조건;
    

2. 숫자, 문자열 조건 필터링

-- 나이가 21인 사람들의 데이터 조회
SELECT *
FROM people
WHERE age=21;

-- 성별이 남성이 사람들의 데이터 조회
SELECT *
FROM people
WHERE gender = 'male';

3. 비교 연산자

연산자의미예시
=같다age = 25
!= 또는 <>같지 않다age != 25 또는 age <> 25
>크다age > 30
<작다age < 30
>=크거나 같다age >= 18
<=작거나 같다age <= 65
-- 나이가 22살 이상인 사람들의 데이터 조회
SELECT *
FROM people
WHERE age >= 22;

4. 여러 개의 조건으로 필터링 (논리 연산)

논리연산자의미예시
AND그리고age>20 and gender=’female’
OR또는age>20 or gender=’female’
NOT크다not gender=’female’
-- 나이가 20 이상이고, 성별이 'male'이 아닌 데이터 조회
SELECT * FROM people
WHERE age >= 20 AND NOT gender = 'male';

-- 나이가 20살이거나 이름이 'Bob'인 데이터 조회
SELECT * FROM people
WHERE age = 20 OR name = 'Bob';

5. 다양한 조건 (BETWEEN, IN, LIKE)

  • BETWEEN: 값이 특정 범위 내에 있는지 확인할 때 사용
-- 나이가 20세 이상 30세 이하인 사람 조회
SELECT * FROM people
WHERE age BETWEEN 20 AND 30;
  • IN: 특정 값 여러 개 중 하나에 해당하는지 확인할 때 사용
-- 나이가 20, 30, 40 중 하나인 사람 조회
SELECT * FROM people
WHERE age IN (20, 30, 40);

  • LIKE: 문자열의 패턴매칭에 사용
와일드카드의미
%0개 이상의 문자
_정확히 1개의 문자
-- 이름이 A로 시작하는 사람
SELECT * FROM people
WHERE name LIKE 'A%';

-- 이름에 'li'가 포함된 사람
SELECT * FROM people
WHERE name LIKE '%li%';

-- 이름이 정확히 세 글자이고, 두 번째 글자가 'a'인 경우 (예: 'Max')
SELECT * FROM people
WHERE name LIKE '_a_';

© 2024. All rights reserved.

Powered by Hydejack v9.2.1