[SQL] 관계형 데이터베이스, SQL 기본 구문

Song·2022년 3월 29일
0

bootcamp

목록 보기
9/11
post-thumbnail

데이터베이스의 필요성

데이터를 저장하고 사용하는데는 다양한 방법이 존재한다. In-Memory방식으로 javascript에서 프로그램이 실행될때만 저장되는 방식과, 엑셀 시트나 csv파일 형태로 저장하는 방식이 있다. In-Memory 방식의 경우 프로그램이 종료되면 사용했던 데이터도 모두 사라지기 때문에 예기치 못한 상황에서 데이터를 보호하기가 어렵다. 파일을 읽는 방식으로 작동하는 경우도 데이터가 필요할 때마다 전체 파일을 읽어와야하므로 크기가 크면 작업이 버거워지는 한계가 있다.

하지만 관계형 데이터베이스를 사용할 경우 데이터가 프로그램의 수명에 의존하지 않아도 될 뿐더러, 하나의 파일에 해당하는 데이터를 한 개의 테이블로 저장하고 여러개의 테이블을 가질 수 있다.

결국 인메모리 방식이나 데이터 파일을 불러와 사용하는 방식 모두 한계가 있어 이를 보완하고자 데이터 베이스를 사용한다.데이터 베이스를 사용하는 이유를 축약하면 다음과 같다.

('데이터베이스를 지탱하는 기술' 참고)

  • 필요한 데이터를 빠르게 반환 가능
  • 대용량 데이터는 메모리 외에서 관리 필요
    : 메모리의 크기 제한, 데이터 손실의 경우 등의 한계 극복
  • 무결성 관리를 위해 필요
  • 병렬성 제어
    : 배타 제어(한사람이 데이터를 수정할때 다른 사람은 수정하지 못하도록 하는 제어)로 일관성을 지킴과 동시에 실용성을 높이기 위해 병렬적으로 제어 가능하도록 한다.

SQL(Structured Query Language)

관계형 데이터베이스에서 사용하는 데이터베이스 용 프로그래밍 언어로 MySQL, Oracl, SQLite 등에서 SQL 구문을 사용할 수 있다. 관계형 데이터베이스는 데이터가 구조화된 테이블로 이루어져 있다. NoSQL은 반대로 테이블을 사용하지 않는 문서 지향 데이터베이스다. SQL은 데이터가 구조화된 데이터베이스에서만 사용가능한 언어이다.

* Query? 쿼리는 '질의문'이라는 뜻으로 저장되어 있는 데이터를 필터하기 위한 질의문이다. 검색할 때 입력하는 검색어로 데이터를 필터링해주는데 이때 작성하게 되는 검색어가 일종의 쿼리라고 볼 수 있다.

SQL 주요 문법

기본적으로 데이터의 조회, 삽입, 갱신, 삭제 등을 다룰 수 있어야 한다.

SQL의 기본 문법을 작성하는데 필요한 튜토리얼은 https://www.w3schools.com/quiztest/quiztest.asp?qtest=SQL 여기서 점검해보기 좋다.

모든 sql 문법을 다 적기보다는 자주 쓰이거나 쓰다가 헷갈렸던 구문들을 몇개 정리해보려고 한다.

INSERT INTO

새로운 레코드를 테이블에 추가한다.

컬럼 추가와 다른점
: 해당 칼럼에 ALTER TABLE 테이블명 ADD 컬럼명 쿼리문

SELECT WHERE

LIKE

Functions

  • max(컬럼명)
  • min(컬럼명)
  • avg(컬럼명)
  • count(컬럼명)
  • sum(컬럼명)

GROUP BY

그룹별 정보를 조회해보고 싶을 때 사용한다. 반드시 집계함수, 그룹함수와 함께 사용해야 한다.

ORDER BY

ALIAS

IN

DROP TABLE / TRUNCATE TABLE

둘 다 테이블을 제거하는 쿼리문이다. 차이가 있다면 DROP TABLE은 테이블 자체를 삭제하지만, TRUNCATE TABLE은 테이블의 구조는 남아있으나 테이블 안의 데이터를 전부 삭제한다는 차이가 있다.

스키마 디자인

앱에 필요한 테이블과 필드, 그리고 관계를 부여할 수 있다.
1:N, N:N 관계를 이해하고, 데이터베이스에서 테이블을 조작할 수 있다.
Foreign Key, Primary Key에 대해 이해할 수 있다.

0개의 댓글