2022/03/31

1) 학습한 내용

데이터베이스

데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.

데이터베이스의 특징

1. 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.
  1. 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.

  2. 사용자들이 원하는 데이터를 동시에 공유할 수 있다.

  3. 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 할 수 있다.

  4. 응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작된다.

추가로 데이터 베이스는 주로 관계형 데이터 베이스가 많이 쓰여진다.

SQL

Structured Query Language의 약자로, RDBMS에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어이다. SQL 문법은 영어와 유사하게 만들어져서 쉽게 읽고 쓰고 해석할 수 있다. ‘에스큐엘’ 혹은 ‘시퀄’로 발음한다.

SQL 명령어

SQL 명령어는 크게 4가지의 그룹으로 나뉜다.
  1. DDL - 데이터베이스 스키마와 설명을 처리하는 정의하는 언어이다. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 여기에 포함된다.
  2. DML - 데이터 검색, 삽입, 변경, 삭제를 수행하여 조작하는 언어이다. 실질적으로 저장된 데이터에 처리할 때 사용한다.
  3. DCL - 데이터에 접근할 수 있는 권한을 관리하는 언어이다.
  4. TCL - 트랜잭션을 다루는 언어이다.
종류 명령어
DDL CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME
DML SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE
DCL GRANT, REVOKE
TCL COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

데이터 타입
SQL에서 사용할 수 있는 데이터 타입의 종류는 많지만, 그 중에 자주 쓰일 법한 데이터 타입을 정리해보았다. - Data Type 참고

문법 최대 크기 설명
VARCHAR(size) 255자 255자의 문자를 저장한다. 문자열의 길이는 가변적이다.
INT(m) 표준 integer 값. -2147483648 ~ 2147483647. m은 정수의 크기가 아닌 자릿수 개수이다.
BIGINT(m) 큰 integer 값. -9223372036854775808 ~ 9223372036854775807 m은 정수의 크기가 아닌 자릿수 개수이다.
FLOAT(m,d) 단일 정밀 부동 소수점 숫자 m은 정수 자릿수, d는 소수점 아래 자릿수 개수이다.
DATE ‘1000-01-01’ ~ ‘9999-12-31’ ‘YYYY-MM-DD’로 표기된다.
TIME ‘-838:59:59’ ~ ‘838:59:59’ ‘HH:MM:SS’로 표기된다.

SQL의 기본 개념

  1. SQL 명령어 종류
    SQL 명령어는 아래 3가지로 분류됩니다.
  • DDL - Data Definition Language (데이터 정의 언어)

  • DML - Data Manipulation Language (데이터 조작 언어)

  • DCL - Data Control Language (데이터 제어 언어)

DDL의 명령어와 예문

CREATE 데이터베이스 내 개체 (테이블, 인덱스 제약조건, 프로시저, 펑션 등)을 생성 할 때
DROP 데이터베이스내 개체를 삭제할 때
ALTER 데이터베이스 내 개체의 속성 및 정의를 변경할 때
RENAME 데이터베이스내 개체의 이름을 변경 할 때
TRUNCATE 테이블 내 모든 데이터를 빠르게 삭제할 때

DLL 명령문의 예문들

#CREATE 예문
CREATE TABLE My_table(
my_field1 INT,
my_field2 VARCHAR(50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)
);

#ALTER 예문
ALTER TABLE My_table ADD my_field4 NUMBER(3) NOT NULL;

#DROP 예문

DROP TABLE My_table;

#TRUNCATE 예문
TRUNCATE TABLE My_table;

#RENAME 예문
ALTER TABLE WEX001H RENAME TO TMP_WEX001H_20171029175532;

DML의 명령어와 예문

INSERT 특정 테이블에 데이터를 신규로 삽입할 때
UPDATE 특정 테이블 내 데이터의 전체, 또는 일부를 새로운 값으로 갱신 할 때
DELETE 특정 테이블 내 데이터의 전체, 또는 일부를 삭제할 때
SELECT 특정 테이블 내 데이터의 전체 또는 일부를 획득할 때

DML 명령문의 예문

#INSERT 예문1 (특정 컬럼을 선택하여 입력시)
INSERT INTO 테이블명(COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST);

#INSERT 예문2(테이블내 모든 컬럼에 값을 입력)
INSERT INTO 테이블명 VALUES (COLUMN에 넣을 VALUE_LIST);

#UPDATE 예문
UPDATE 테이블명 SET 컬럼명 = '갱신할 값' WHERE... ; 

#DELETE 예문
DELETE FROM 테이블명 WHERE... ;

#SELECT 예문
SELECT 컬럼리스트 FROM 테이블명 WHERE... ;

DCL의 명령어와 예문

GRANT 데이터베이스 사용자에게 특정 작업의 수행 권한을 부여할 때
REVOKE 데티어베이스 사용자에게 부여권 수행 권한을 박탈할 때
SET TRANSACTION 트랜잭션 모드로 설정 할 때
BEGIN 트랜잭션의 시작을 의미
COMMIT 트랜잭션을 실행 할 때
ROLLBACK 트랜잭션을 취소 할 때
SAVEPOINT 롤백 지점을 설정 할 때
LOCK 테이블 자원을 점유 할 때

DCL명령문의 예문

#GRANT 예문
GRANT SELECT ON SCOTT.EMP TO EXPERT

#REVOKE 예문
REVOKE 뻇을권한 ON 객체이름 FROM 누구

출처: https://stricky.tistory.com/202 [The DataBase that i am good at]

https://opentutorials.org/course/3161

데이터 베이스
출처 : DBMS와 SQL이란

2) 학습내용 중 어려웠던 점

이번 수업은 말 그대로 데이터베이스와 파이썬의 연동을 하는 것이라 파이썬을 제대로 알고 있다면 무난하게 진행이 가능하다. 하지만, 백엔드를 처음 들어봤었기 때문에 어려움이 있을 수 밖에 없다. 그리고, 이번 수업에 있었던 SQL수업도 있었는데 데이터베이스를 직접 다룬다는 것은 이번이 처음이었다.

3) 해결방법

어제의 방법과 똑같이 진행했었다. 그 이외에는 별 다른 건 없었다.

4) 학습소감

오늘은 데이터베이스와 SQL에 관한 수업을 들었다. 오전에 들었던 수업은 하다가 중간에 끊겨서 내가 너무 강사에게만 의존하려고 드는 것이 아닌가 생각이 들었다. 그나마, 데이터베이스를 듣는건 수업 후반부에 듣게 되었는데 내용은 이런 식으로 다룬다는 기초적인 정도에 그쳤었다. 아무래도, 주말에는 SQL에 관한 서적이나 자료를 알아봐야겠다.

좋은 웹페이지 즐겨찾기