아래 내용은 SQL 첫걸음(아사이 아츠시 저)과 위키백과를 참고했다 🤓
데이터베이스 객체는 스키마라는 그릇 안에 만들어진다. 그래서 데이터 베이스 객체는 스키마 객체라고도 불린다. 데이터베이스에 테이블을 작성해서 구축해나가는 작업을 스키마 설계
라고 부른다. 스키마는 SQL 명령의 DDL을 이용해서 정의한다.
데이터베이스 제품에 따라 스키마가 무엇인지는 차이가 있다. MySQL에서는 CREATE DATABASE 명령으로 작성한 데이터베이스가 스키마
가 된다. 오라클 등에서는 데이터베이스, 데이터베이스 사용자가 계층적 스키마가 된다.
테이블과 스키마는 무언가를 담는 그릇 역할을 한다는 점에서 비슷하다. 테이블 안에서는 열을 정의하고, 스키마 안에서는 테이블을 정의할 수 있다. 객체의 이름이 같아도 스키마가 서로 다르면 상관 없기 때문에, 그릇 안에서는 중복하지 않도록 이름을 지정하기 때문에 네임스페이스라고도 부른다.
Data Definition Language. 데이터 정의어로써 테이블과 같은 데이터 구조를 정의하는데 사용된다. 또한 데이터 구조를 정의함에 있어서 발생할 수 있는 이슈로 생성, 변경, 삭제, 이름 변경의 명령어도 함께 포함하고 있다.
ex. CREATE, DROP, ALTER, TRUNCATE
select 명령에 대한 데이터 질의로, 상부가 아닌 하부의 부수적인 질의를 의미한다. 즉, SQL 명령문(select구, from구, where구 등) 안에 지정하는 하부 명령으로 괄호로 묶어 지정한다.
# sample table에서 a열의 최소값 찾기
SELECT MIN(a) FROM sample;
# sample table의 a열 최소값을 삭제하기
DELETE FROM sample WHERE a = (SELECT MIN(a) FROM sample);
SQL은 순차형 언어처럼 변수가 존재하지 않지만, 변수를 다음과 같이 사용할 수는 있다.
변수 = (SELECT MIN(a) FROM sample);
DELETE FROM sample WHERE a = 변수;
SELECT 명령이 하나의 값만 반환하는 것. 서브 쿼리의 패턴은 총 네 가지이다. 이 중에서 하나의 값만을 반환하는 것을 스칼라 값
이라고 하고, 서브쿼리로 사용하기 쉽다는 장점을 갖기 때문에 중요하다. 연산자를 사용해서 비교할 때는 스칼라 값끼리 비교한다.
명령을 실행한 결과를 기록하는 데이터베이스 객체. 일반적으로 SELECT 명령을 실행해서 어떤 값들을 도출하면 그 값들은 일시적으로 보여질 뿐이지만, 만약 view를 사용한다면 SELECT 명령으로 구성된 객체가 되고, 실체는 없지만 테이블처럼 취급할
수 있다.
CREATE VIEW name AS SELECT 명령
#생성 예시
CREATE VIEW sample_view_6 AS SELECT * FROM sample54
#삭제 예시
DROP VIEW sample_view_67;