insert [into] 테이블[(열1,열2, …)] VALUES (값1, 값,2, …)
테이블 생성 예시 2
Database - 무슨 리버스엔진?? 들어가니까 나왔음.
SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
RDBMS에서
자료의 검색
자료의 관리
데이터베이스 스키마 생성과 수정
스키마란?
데이터베이스에서 데이터 구조와 관련된 전반적인 설계와 구조를 정의하는 개념
⇒ 간단하게! 표들을 그룹화하는 일종의 폴더
⇒자세하게! 구성요소는 아래와 같이 이루어져있다.
- 속성 (개체의 특성을 나타냄.)
- 개체 (속성들의 집합)
- 관계 (개체 사이의 관계)
- 제약조건
스키마의 특징
1.
데이터 사전(Data Dictionary)
에 저장된다.2.특정 데이터 모델을 이용해서 만들어진다. (현실 세계의 특정한 부분의 표현)
3.시간에 따라 불변인 특성을 가진다.
4.데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
스키마의 3계층
- 외부스키마 (사용자 뷰)
- 개별 사용자들의 입장에서 데이터 베이스의 논리적 구조를 정의한 것
- 개념스키마(전체 뷰)
- 데이터베이스의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않음
- 내부스키마(저장 스키마)
- 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것
스키마의 특징
데이터 독립성
- 데이터베이스 내의 데이터, 데이터를 사용하는 사용자 및 응용 프로그램, 데이터베이스의 저장 구조가 서로 영향을 받지 않는 성질
**논리적 독립성**
- 개념 스키마가 변경되어도, 외부 스키마에 영향을 주지 않는다.
물리적 독립성
- • 내부 스키마가 변경되어도, 개념 스키마 / 외부 스키마에 영향을 주지 않는다.
SQL → Syntax Check → Semantic Check → Library Cache Check → Optimization → Raw Source Generation → Execution
- SQL: 쿼리 실행
- Syntax Check: 문법 체크
- Semantic Check: 객체(Object) 및 권한 유무 체크
- Library Cache Check: Cache에서 쿼리 저장 유무 검사 → 저장되어 있다면 Sofrt Parse로, Library Cache에 저장된 쿼리 바로 사용 → 저장되어 있지 않으면 Hard Parse로 다음 단계로 넘어간다.
- Optimization: 최적화한 쿼리 실행 계획을 만드는 단계
- Raw Source Generation: 위 Optimization 단계에서 생성된 실행 계획을 실제 실행할 수 있게 Formatting
- Execution: 실행
테이블 = 릴레이션
행 = 레코드 = 튜플
열 = 필드 = 속성
<특징>
속성의 무순서성
개체란?
⇒ 데이터로 표현하려고 하는 객체. ER다이어그램에서는 네모로 표현.
- 테이블과 컬럼을 정의하는 명령어로 생성, 수정, 삭제 등의 데이터 전체 골격을 결정하는 역할을 담당한다.
명령어를 입력하는 순간 작업이
즉시 반영(Auto Commit)
되기 때문에 사용할 때 주의가 필요하다.DDL사용 전에 DML을 사용하면, DDL 사용과 동시에 DML은 DB에 반영(Commit)되는 현상이 생김
이러한 명령은 권한이 주어져야 실행 가능함(권한 부여는 DCL로 함)
- CREATE
- ALTER
- DROP
- Truncate : 모든 제약조건과 데이터를 삭제(기본키, 외래키에 대한 정보도 삭제됨.)
내부 데이터를 관리하기 위한 언어
- 명령을 실행하고 commit을 실행해야 데이터베이스에 적용된다.
- 데이터를 조회, 추가, 변경, 삭제 등의 작업을 수행하기 위해 사용
- DDL과 달리 DML은 적는
즉시 반영(Auto Commit)
이 되기 않는다. 다시 말해, DML에 의한 데이터 변동은 영구적인 변경이 아니기 때문에ROLLBACK
으로 다시 되돌릴 수 있다.- SELECT (조회이기때문에 commit과는 상관없음)
- INSERT : 테이블에 레코드(튜플)을 삽입하라는 명령
- DELETE : 테이블에 레코드(튜플)을 삭제하라는 명령
- UPDATE : 테이블에 레코드(튜플)을 수정할 때 사용하는 명령
트랜잭션
을 제어할때 사용트랜잭션
별로 제어트랜잭션이란?
데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
📎 트랜잭션(Transaction) 단위의 예시
게시판을 예로 들어보자
1) 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다.
2) 그러면 글 올리기가 처리되고 자동으로 다시 게시판에 돌아오게 된다.
3) 게시판에서 자신의 글이 포함된 업데이트된 게시글들을 볼 수 있다.
여기서 작업의 단위는 insert문과 select문 둘다 를 합친것이다.
이러한 작업단위를 하나의 트랜잭션이라 한다.
관리자나 개발자가 하나의 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점이 있다.