티스토리 뷰
SQL
SQL은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어다. 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특성을 띤다고 할 수 있다.
SQL은 데이터베이스 관리 시스템에 직접 접근하여 대화식으로 질의를 작성해 사용할 수도 있고, C나 C++ 또는 Java 같은 언어로 작성한 응용 프로그램에 삽입하여 사용할 수도 있다.
🖨 SQL의 분류
- 데이터 정의어 (DDL)
테이블을 생성하고 변경, 제거하는 기능을 제공 - 데이터 조작어 (DML)
테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공 - 데이터 제어어 (DCL)
보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공
1️⃣ 데이터 정의
SQL의 데이터 정의 기능은 테이블 생성, 생성된 테이블 구조의 변경, 테이블 삭제로 분류할 수 있다.
💨 테이블 생성
테이블을 생성하는 SQL 명령어 : CREATE TABLE
🔦 []의 내용은 생략이 가능하다.
🔦 세미콜론(;)으로 문장의 끝을 표시한다.
🔦 대소문자를 구분하지 않는다.
🖨 속성
대표적인 데이터 타입이다.
- NOT NULL
속성이 널 값을 허용하지 않음을 의미하는 키워드
- DEFAULT
속성의 기본 값을 지정하는 키워드
🔑 키
기본키, 대체키, 외래키를 지정할 수 있다.
- PRIMARY KEY
기본키를 지정하는 키워드
- UNIQUE KEY
대체키를 지정하는 키워드, 유일성, 널 값 허용
- FOREIGN KEY
외래키를 지정하는 키워드
➕ CHECK
테이블에 정확하고 유효한 데이터를 유지하기 위해 특정 속성에 대한 제약조건을 지정
💨 테이블 변경
테이블을 변경하는 SQL 명령어 : ALTER TABLE
🔦 ADD를 사용하여 새로운 속성을 추가할 수 있다.
🔦 DROP COLUMN을 사용하여 기존 속성을 삭제할 수 있다.
🔦 ADD CONSTRAINT를 사용하여 새로운 제약조건을 추가할 수 있다.
🔦 DROP CONSTRAINT를 사용하여 기존 제약조건을 삭제할 수 있다.
💨 테이블 삭제
테이블을 삭제하는 SQL 명령어 : DROP TABLE
만약, 삭제할 테이블을 참조하는 테이블이 있다면 삭제되지 않는다.
2️⃣ 데이터 조작
SQL의 데이터 조작 기능은 원하는 데이터 검색, 새로운 데이터 삽입, 데이터 수정, 데이터 삭제로 분류할 수 있다.
💨 데이터 검색
데이터를 검색하는 SQL 명령어 : SELECT
🔦 FROM 키워드와 함께 검색하고 싶은 속성이 있는 테이블의 이름을 나열
🔦 검색 결과 -> 테이블 형태로 반환
🔦 ALL을 사용하여 결과 테이블이 투플의 중복을 허용하도록 지정, 생략 가능
🔦 DISTINCT를 사용하여 결과 테이블이 투플의 중복을 허용하지 않도록 지정
🔦 AS 키워드를 사용하여 결과 테이블에서 속성의 이름을 바꾸어 출력 가능, 생략 가능
🔦 산술식을 이용하여 출력 가능, 실제 값이 바뀌는 건 아니다.
🔦 WHERE 키워드를 사용 시 조건 검색이 가능하다.
🔦 LIKE 키워드를 이용해 부분적으로 일치하는 데이터를 검색
🔦 IS NULL을 사용하여 특정 속성의 값이 널 값인지를 비교할 수 있다. (IS NOT NULL도 가능)
🔦 ORDER BY 키워드를 이용해 결과 테이블 내용을 사용자가 원하는 순서로 출력할 수 있다.
🔦 집계 함수를 이용하면 특정 속성 값을 통계적으로 계산한 결과를 검색할 수 있다.
🔦 GROUP BY를 이용하면 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색할 수 있다.
💨 데이터 삽입
데이터를 삽입하는 SQL 명령어 : INSERT
🔦 INTO 키워드와 함께 투플을 삽입할 테이블의 이름과 속성의 이름을 나열한다.
🔦 VALUES 키워드와 함께 삽입할 속성 값들을 나열한다.
🔦 INTO, VALUES는 일대일 대응
🔦 부속 질의문을 이용하여 데이터를 삽입할 수 있다.
💨 데이터 수정
데이터를 수정하는 SQL 명령어 : UPDATE
🔦 SET 키워드 다음에 속성 값을 어떻게 수정할 것인지를 지정할 수 있다.
🔦 WHERE 절에 제시된 조건을 만족하는 투플에 대해서만 속성 값을 수정할 수 있다.
💨 데이터 삭제
데이터를 삭제하는 SQL 명령어 : DELETE
🔦 WHERE 절에 제시한 조건을 만족하는 투플만 삭제, 만약 생략 시 테이블의 모든 투플 삭제
뷰
뷰는 다른 테이블을 기반으로 만들어진 가상 테이블이다.
- 데이터를 실제로 저장하고 있지 않음 (논리적으로만 존재)
- 그렇지만 일반 테이블과 동일한 방법으로 사용할 수 있다.
뷰를 만드는 데 기반이 되는 물리적인 테이블을 기본 테이블이라 한다.
일반적으로 기본 테이블로 뷰를 만들지만 다른 뷰로도 새로운 뷰를 만들 수 있다.
💨 뷰 생성
뷰를 생성하는 SQL 명령어 : CREATE VIEW
🔦 AS 키워드와 함께 기본 테이블에 대한 SELECT 문 작성
🔦 WITH CHECK OPTION
뷰에 삽입이나 수정 연산을 할 때 SELECT 문에서 제시한 뷰의 정의 조건을
위반하면 수행되지 않도록 하는 제약조건을 지정
💨 뷰 장점
- 질의문을 좀 더 쉽게 작성할 수 있다.
- 데이터 보안 유지가 더 원활해진다.
- 데이터 관리가 편해진다.
삽입 SQL
삽입 SQL은 프로그래밍 언어로 작성된 응용 프로그램 안에 삽입하여 사용하는 SQL문이다.
💨 삽입 SQL 특징
- 일반 명령문이 들어갈 수 있는 곳 어디든 삽입 가능
- EXEC SQL을 붙임
- 콜론을 붙여서 구분함
💫 커서(cursor)
커서는 수행 결과로 반환된 여러 행을 한 번에 하나씩 가리키는 포인터
좋아요는 로그인하지 않아도 누를 수 있습니다!
'데이터베이스' 카테고리의 다른 글
[데이터베이스 개론] 8장 : 데이터베이스 설계 [DB] (0) | 2021.11.01 |
---|---|
[데이터베이스 개론] 7장 연습문제(기출문제) 정답 [DB] (6) | 2021.10.15 |
[데이터베이스 개론] 6장 연습문제(기출문제) 정답 [DB] (3) | 2021.10.05 |
[데이터베이스개론] 6장 : 관계 데이터 연산 [DB] (0) | 2021.10.05 |
[데이터베이스 개론] 5장 연습문제(기출문제) 정답 [DB] (0) | 2021.10.05 |
- Total
- Today
- Yesterday
- 연습문제
- 풀이
- Python
- 프로그래머스
- 백준
- OS
- 쉽게 배우는 자바 프로그래밍
- 답
- 그리디
- py
- 자바스크립트
- 쉽게배우는
- 정답
- 해답
- 구현
- 쉽게배우는자바프로그래밍
- 알고리즘
- CPP
- 정렬
- C++
- java
- 문자열
- Web
- 파이썬
- 우종정
- 운영체제
- 자바
- BFS
- JS
- 정리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |