구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다. 데이터를 다룰 때 필수적으로 요구되는 기술이기 때문에 데이터 관련 직종을 갖고자 하는 분들에게는 필수적이라고 할 수 있다. 오늘은 SQL에 대해서 알아보자 !
관계형 데이터베이스와 비-관계형 데이터베이스의 차이점
구분 | 관계형 데이터베이스 RDBMS | 비-관계형 데이터베이스 NoSQL |
사용 목적 | - 정형 데이터: 테이블 행/열 로 이루어진 형태 - Transaction 처리: 데이터의 일관성과 무결성이 중요한 서비스에서 사용 예) 은행의 금융 서비스, 쇼핑몰 주문 & 정산 |
- 비정형/반정형 데이터: JSON, XML 등 다양한 형태 - 대량의 데이터와 빠른 읽기/쓰기: 대규모/분산 데이터 처리가 필요한 서비스에서 사용 |
데이터 일관성 | -ACID 특성을 준수하여 데이터 일관성을 보장 | - DB마다 다르고, aCID 특성을 보장하지 않는 경우도 있음. - 중복이 발생 |
스키마 | - 고정된 스키마 사용, 데이터 구조 변경이 어려울 수 있 스키마: 데이터 저장 형식 |
- 스키마 없는 데이터 모델을 사용하여 데이터 구조를 자유롭게 변경할 수 있음 |
쿼리 언어 | - SQL을 사용하여 데이터를 가져오고 관리 | - DB마다 고유한 쿼리 언어 또는 API를 제공하며, SQL과는 다른 방식으로 데이터를 질의 |
수평 확장 | - 수평 확장이 복잡하고 어려움 | - 수평 확장이 상대적으로 용이 |
비교연산자와 논리연산자
비교 연산자 종류: >, <, >=, <=, <>, !=
예)
SELECT producti_id, name # 결과값을 원하는 컬럼 선택
FROM prodicts # 테이블 선택
WHERE 1=1
AND price < 10000 # 가격 컬럼이 10000이하인 값만 추출
AND category != '주방용품' # 카테고리 컬럼이 '주방용품'이 아닌 데이터만 추출
논리 연산자 종류: OR, IN, NOT, NOT IN, LIKE, BETWEEN, IS NULL
정렬과 집계: ORDER BY, GROUP BY, HAVING
SQL 기초 함수: SUM(), AVE(), CONCAT(), LEFT(), RIGHT(), SUBSTRING(), UPPER(), LOWER(), ROUND(), CEIL(), FLOOR(), TRUNCATE(), ABS(), MOD(), COALESCE()