SQL 더쉽게 더깊게 정리 - 1장 데이터베이스와 SQL
1장 데이터베이스와 SQL
주요 내용
- 데이터베이스라고 하는 시스템의 구조와 기본적인 개념
- 관계형 데이터베이스에서 데이터 저장역할을 하는 구조를 만들어보고, 삭제 및 변경하는 방법을 배운다
- SQL의 기본적인 작성 방법과 규칙
데이터베이스란 무엇인가?
학습 포인트
- 대량의 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것을 데이터베이스라고 한다.
- 데이터베이스를 관리하기 위한 컴퓨터 시스템을 DBMS라고 한다.
- DBMS를 사용함으로써 대량의 데이터를 다수의 사람이 안전하고 쉽게 다룰 수 있다.
- 데이터베이스에는 다양한 종류가 있으며, 이 책에서는 관계형 데이터베이스를 SQL 이라는 전용 언어를 사용해서 조작하는 방법을 배운다.
- 관계형 데이터베이스는 DBMS를 통해 관리하낟.
우리들 주변에 있는 데이터베이스
왜 DBMS가 필요한 걸까?
- 텍스트 파일이나 엑셀 같은 표 계산 소프트웨어라도 가능 조작방법이 쉽다 But, 단점은 아래와 같다.
- 다수의 사람이 데이터를 공유하기 어렵다
- 대량의 데이터를 다루기 어려운 형태
- 읽기/쓰기를 자동화하려면 프로그래밍 기술이 필요
- 만일의 사고에 대응하기 어렵다
DBMS는 이런 단점들을 해결하기 위한 기능을 가지고 있다. 즉, 대량으 ㅣ데이터를 다수의 사라이 안전하고 간단하게 다룰 수 있다
왜 다양한 종류의 DBMS가 존재하는 걸까?
- 각 데이터베이스 마다 특징과 용도가 다르다.
- 계층형 데이터베이스
- 관계형 데이터베이스
- 객체지향 데이터베이스
- XML 데이터베이스
- 키-밸류형 데이터스토어
데이터베이스 구성
학습 포인트
- 일반적으로 RDBMS는 클라이언트-서버 구성을 가진다
- 데이터베이스의 데이터 처리를 위해서는 서버인 RDBMS에 클라이언트가 SQL 문을 전송
- 관계형 데이터베이스에서는 테이블이라고하는 2차원 표를 사용해서 데이터를 관리
- 테이블은 데이터 항목을 나타내는 열과 한 건의 데이터를 나타내는 행으로 구성
- 열과 행이 교차하는 하나의 칸을 이 책에서는 ‘셀’ 이라고 부른다 하나의 셀에는 하나의 데이터만 저장된다.
RDBMS의 일반적인 시스템 구성
- 일반적으로 RDBMS는 클라이언트-서버 구성을 가진다.
테이블 구조
- SQL에 의해 클라이언트에 반환되는 데이터도 반드시 테이블과 같은 형식의 2차원 표 형태가 된다.
SQL 개요
학습 포인트
- SQL은 데이터베이스를 제어하기 위해 개발된 언어다
- SQL에서는 표준 규격이 존재하지만, 실제 RDBMS별로 차이가 있다
- 문장 끝에 세미콜론을 붙여야 한다
- 목적에 따라 DDL, DML, DCL로 분류 할 수 있다.
표준 SQL
SQL 문과 그 종류
- DDL(Data Definition Language)
- 데이터베이스나 테이블을 생성, 삭제하기 위한 것
- CREATE
- DROP
- ALTER
- 데이터베이스나 테이블을 생성, 삭제하기 위한 것
- DML(Data Manipulation Language)
- 테이블의 행을 검색하거나 변경하기 위한 것
- SELECT
- INSERT
- DELETE
- 테이블의 행을 검색하거나 변경하기 위한 것
- DCL(Data Control Language)
- 데이터베이스에서 처리한 변경 내용을 확정하거나 취소하기 위한 것
- 사용자에게 처리 권한을 부여하기도 한다.
- COMMIT
- ROLLBACK
- GRANT
- 사용자에게 처리 권한을 부여한다.
- REVOKE
- 사용자 처리 권한을 제거 한다.
SQL의 기본적인 작성
규칙
- SQL 마지막에 세미콜론을 붙인다
- 대문자, 소문자 구분이 없다.
- 상수 작성법에는 규칙이 있다
- 문자열
- ‘abc’
- 날짜
- ‘2010-01-26’ 등 다양한 형식 존재
- 숫자
- 1000
- 문자열
- 단어는 공백 문자나 줄바꿈 문자로 구분한다.
- CREATETABLE Goods (X)
- CREATE TABLE Goods (O)
테이블 작성
- 테이블은 CREATE TABLE 문으로 작성한다.
- 테이블에는 제약(주 키 제약, NOT NULL 제약 등)을 설정할 수 있다.
작성할 테이블 내용
데이터베이스 작성(CREATE DATABASE 문)
CREATE DATABASE <데이터베이스명>;
테이블 작성(CREATE TABLE 문)
CREATE TABLE <테이블명>
(<열명1> <데이터형> <이 열의 제약>,
<열명2> <데이터형> <이 열의 제약>,
<열명3> <데이터형> <이 열의 제약>,
<열명4> <데이터형> <이 열의 제약>,
<열명5> <데이터형> <이 열의 제약>,);
명명 규칙
- 데이터베이스나 테이블, 열 등의 이름에 사용할 문자는 영문자, 숫자, 언더바 만 가능하다
- 이름의 첫글자는 반드시 영문이다
- 같은 이름의 열을 두 개 이상 만들면 안된다.
데이터형 지정
- INTEGER
- CHAR
- 고정 문자열
- VARCHAR
- 가변 문자열
- DATE
제약 설정
- NOT NULL
- 반드시 데이터가 존재해야하는 해야 한다는 것을 의미
테이블 삭제와 변경
학습 포인트
- 테이블을 삭제하려면 DROP TABLE문을 사용한다.
- 테이블에 열을 추가하거나 삭제하려면 ALTER TABLE 문을 사용한다.
테이블 삭제(DROP TABLE 문)
DROP TABLE <테이블명>;
- 삭제한 데이터는 복구할 수 없다.
테이블 정의 변경(ALTER TABLE 문)
ALTER TABLE <테이블명> ADD COLUMN <열 정의>;
ALTER TABLE <테이블명> DROP COLUMN <열명>;
- ALTER TABLE 문도 DROP TABLE 문과 동일하게 실행 후에는 원래대로 복구할 수 없다.
Goods 테이블에 데이터 등록
문제
문제 | 정답 | 기타 |
---|---|---|
1. 데이터베이스는 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것이다. ( O / X) | ||
2. 데이터 베이스를 관리하기 위한 컴퓨터 시스템을 데이터베이스 관리 시스템(DBMS)라고 하고, 대량의 데이터를 다수의 사람이 안전하고 쉽게 다룰 수 있다. (O / X) | ||
3. 흔히 사용되는 관계형 데이터베이스를 조작할 때, 사용하는 언어는? | ||
4. 우리들 주변에 있는 데이터베이스 사용 예를 생각해보고, 말해보자. | ||
5. 엑셀 혹은 텍스트 파일을 이용하지 않고, 굳이 DBMS를 사용하는 이유는 무엇인가? |