SQL 기본 개념
-Structured Query Language
-현업에서 쓰이는 relational DBMS의 표준 언어
(relational database를 만든다고 하면 SQL을 통해서 database를 정의하고 데이터를 수정, 삭제, 조회 활용을 한다.)
-종합적인 database 언어 : DDL+DML+VDL
(SQL은 위의 기능을 종합적으로 제공한다.)
(SQL에서 사용하는 용어들이 따로 있으나 완전히 구분지어 사용하지는 않는다.)
SQL에서 relation이란?
-multiset(=bag) of tuples@SQL
-중복된 tuple을 허용
(relational data model에서의 개념과 조금 다른데 set과 달리 중복을 허용한다. 즉 table에서는 각 tuple이 중복 가능하다.)
SQL & RDBMS
SQL은 RDBMS의 표준 언어이나 실제 구현에 강제가 없기 때문에 RDBMS가 제공하는 SQL의 스펙이 조금씩 다르다.> ex)MySQL과 Oracle에서 제공하는 문법이 조금씩 다름
예제 : IT회사 관련 RDB 만들기
-부서, 사원, 프로젝트 관련 정보들을 저장할 수 있는 RDB
-사용할 RDBMS는 MySQL(InnoDB: MySQL에서 가장 많이 사용하는 엔진)
DATABASE vs SCHEMA
-MySQL에서는 DATABASE와 SCHEMA가 같은 뜻을 의미
(같은 역할을 하기 때문이다.)
-CREATE DATABASE company = CREATE SCHEMA company
-다른 RDBMS에서는 다른 의미
-i.g. PostgreSQL에서는 SCHEMA가 DATABASE의 namespace를 의미
(하나의 DB가 여러 SCHEMA를 가질 수 있고 table은 SCHEMA에 소속된다.)
(다른 RDBMS를 쓸 때에는 SCHEMA의 개념을 알아야 한다. SCHEMA가 정의되고 SCHEMA안에서 table이 정의된다. *MySQL은 DB안에서 table정의)