SQL 개념

김예인·2023년 5월 29일

백엔드 공부일지

목록 보기
29/43
post-thumbnail

SQL ( Structured Query Language )

MySQL, Oracle, SQLite, PostgreSQL 등 다양한 관계형 데이터베이스에서 사용하는 데이터베이스 용 프로그래밍 언어. SQL을 사용하기 위해서는 데이터가 구조가 고정되어 있어야 합니다.

NoSQL :

데이터의 구조가 고정되어 있지 않은 데이터베이스, 테이블을 사용하지 않고 데이터를 다른 형태로 저장. (MongoDB 와 같은 문서 지향 데이터베이스)


기본 쿼리문

SELECT : 결과로 가져올 데이터를 선택하는 데 사용
FROM : 특정 테이블을 지정할 경우 사용
WHERE : 필터 역할 (선택적)

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

ORDER BY : 데이터 정렬 기준을 결정

ORDER BY 특성_1 : 기본 정렬은 오름차순
ORDER BY 특성_1 DESC : 내림차순

GROUP BY : 동일한 값을 가진 행을 그룹화, 집계 함수( COUNT(), MAX(), MIN(), SUM(), AVG())와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화

GROUP BY column_name(s)

LIMIT : 결과로 출력할 데이터의 개수를 결정 (쿼리문의 가장 마지막에)

LIMIT 200

SELECT DISTINCT : 유니크한 값을 받고 싶을 때 사용 (특성을 기준으로 중복되지 않는 값)

SELECT DISTINCT 특성_1
FROM 테이블_이름

JOIN

SELECT column_name
FROM table1
JOIN table2 ON table1.column_name = table2.column_name;

| 트랜잭션

여러 개의 작업을 하나로 묶은 실행 유닛으로, 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료(성공).

ACID

데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질

  • Atomicity(원자성) : 하나의 트랜잭션에 속해있는 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측하고 기존 데이터를 보호하는 성질

  • Consistency(일관성) : 하나의 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효해야 한다는 성질. 즉, 데이터베이스의 제약이나 규칙을 여전히 만족해야 한다.

  • Isolation(격리성, 고립성) : 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 하며 다른 트랜젝션의 작업 내용을 알 수 없으므로 연속으로 실행된 것과 동일한 결과를 나타내야 한다.

  • Durability(지속성): 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하며, 만약 런타임 오류나 시스템 오류가 발생하더라도, 해당 기록은 영구적이어야 한다.

profile
백엔드 개발자 김예인입니다.

0개의 댓글