DB
[DB] SQL (1)
타자씨
2022. 10. 13. 20:13
말로만 듣던 SQL을 드디어 배우다니... 두근 나도 이제 데베시 천재..?
1. SQL 이란?
구조전 쿼리 언어 (SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다. SQL을 사용하여 Data definition와 Data manipulation을 둘 다 다룰 수 있다.
2. SQL 장점과 단점
장점
- Declarative - productive calculus에 기반해서 선언적이다.
- Implemented widely - 특히 manipulation 쪽으로 활용도가 높다.
- General purpose and feature rich - 다년간 추가된 기능이 많고, 다른 언어 혹은 데이터 소스에 대해 확장할 수 있다.
단점
- Constrained - Turing-complete tasks를 대상으로 하지 않는다.
3. 관련 용어
- Relation ( = Table)
- 아래 그림과 같이 row와 column을 가진 하나의 표(data)를 의미한다.
- Schema와 Instance를 가진다.
- Schema
- Database 내에서 어떤 구조로 데이터가 저장되는지는 나타내는 묘사 (대충 아래 표 초록색 인듯)
- Schema는 고정되어 있다. 속성 이름과 타입이 바뀔 수 없다.
- 속성이름은 unique해야한다. (같을 수 없다는 의미)
- ex. folks (ssn interger, first text, last text)
- Instance
- schema를 만족하는 데이터의 set (대충 아래 표 보라색이라고 보면 됨.)
- In other words, a muliset of rows
- Scheme와 다르게 자주 바뀔 수 있다.
- ex. { (123456789, 'wei', 'jones') , (945465 ... ) ... }
- Schema
- Attribute ( = Column, Field)
- 위 표의 각 column을 의미한다. ER - model의 column과 비슷한 의미이다.
- Tuple ( = Row, Record)
- 위 표의 각 row를 의미한다. 데이터베이스를 이루는 수많은 데이터 중 1개의 데이터 묶음를 의미한다.
- Database : Set of named Relations
- 다음 그림과 같이 table을 모아놓은 꾸러미를 database라고 부른다.
4. SQL 명령
SQL 명령이란 개발자가 데이터베이스에 저장된 데이터를 조작하는 데 사용되는 특정 키워드 또는 SQL 문이다. 크게 2개의 하위언어가 있다.
- DDL (Data Definition Language) - 데이터 정의 언어로 데비터베이스를 정의하고, schema를 수정한다.
- DML (Data Manipulation Language) - 데이터 조작언어로 쿼리를 직관적으로 쓸 수 있게 한다. 새 정보를 쓰거나 기존 정보를 수정한다.
- RDBMS - 쿼리를 선언할 때 알고리즘을 골라서 실행할 수 있기 때문에, 쿼리 답에는 영향을 미치지 않지만, 효율적이다.