본문 바로가기
TIL

SQL - 데이터베이스와 SQL (22.12.03 TIL)

by winteringg 2022. 12. 3.

**MySQL 기반으로 한 내용**

1. 데이터베이스와 DBMS
1) 데이터의 집합. 정보가 저장되고 관리되는 곳.
2) DBMS (Database Management System) 정의
  - 대량의 데이터를 효율적으로 관리하고 운영하는 소프트웨어.
  - 대용량 데이터를 관리하거나 여러명의 사용자나 응용 프로그램과 공유할 수 있어야 하는 동시에 접근이 가능해야 함.
  - DBMS 에 데이터를 구축, 관리하고 활용하기 위해서 사용되는 언어가 SQL (구조화된 질의어, Structured Query Languange).
  - 대표적인 소프트웨어로 MySQL, 오라클(Oracle), SQL 서버, MariaDB 등이 있음.
3) RDBMS (관계형 DBMS, relational DBMS)
  - 테이블 이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 행과 열로 이루어져 있음.
  - 'apple', '지수', '010-1111-1111' 의 가로줄을 행(row) 라고 부르며, 'apple', 'orange' 의 세로줄을 열(column)이라고 함.

아이디 이름 연락처
apple 지수 010-1111-1111
orange 민호 010-2222-2222


2. DBMS에서 사용되는 언어 : SQL
1) 관계형 데이터베이스에서 사용되는 언어.
2) 데이터베이스를 구축, 관리하고 활용하기 위해서 사용되는 언어.
3) 일반적인 프로그래밍 언어(Java, C 등등) 와는 다름.
4) 데이터 언어 종류
  - 데이터 정의어 (DDL, Data Definition Language) : 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어
    - CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENT

  - 데이터 조작어 (DML :  Data Manipulation Language) : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어
    - SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE

  - 데이터 제어어 (DCL : Data Control Language) : 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어
    - GRANT, REVOKE

  - 트랜잭션 제어어 (TCL : Transaction Control Language) : 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어 
    - COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

3. 데이터베이스 모델링
1) 테이블의 구조를 미리 설계하는 개념으로 건축 설계도를 그리는 과정으로 생각하면 됨.
2) 프로젝트를 진행하기 위해서 대표적으로 폭포수 모델(Waterfall model)을 사용하며, 이 단계를 거치면 가장 중요한 데이터베이스 개체인 테이블 구조가 결정됨.
3) 폭포수 모델을 통한 소프트웨어 개발 단계
  -1. 프로젝트 계획
  -2. 업무 분석
  -3. 시스템 설계
  -4. 프로그램 구현
  -5. 테스트
  -6. 유지보수
4) 데이터베이스 모델링은 '시스템 설계' 구간에 들어간다고 볼 수 있음. 
5) 현실 세계에서 사용되는 사물이나 사람, 작업 등의 개체를 데이터베이스에 각각의 테이블이라는 개체로 변환함.
  - 어떤 사람의 신분을 증명하기 위한 이름, 주민등록번호, 주소등의 요소를 테이블의 행과 열의 형태로 표현.
  - 어떤 회사의 제품의 이름, 가격, 제조일자, 제조회사, 재고량 등의 요소를 테이블의 행과 열의 형태로 표현.

4. 테이블 설계
1) 테이블 설계한다는 것은 테이블의 열 이름과 데이터 형식 지정하는 것.
2) member 테이블 설계

열 이름 영문 이름 데이터 형식 최대 길이 Null 허용 여부
아이디(기본 키) member_id 문자(char) 8글자 not null
회원 이름 member_nm 문자(char) 5글자 not null
주소 member_adr 문자(char) 20글자 null

3) 테이블 설계한 대로 데이터 입력하기

member_id member_nm member_adr
dduru 김뚜루 인천 남구 주안동
boni 강보니 서울 용산구 후암동
jyujyu 최쥬쥬 서울 은평구 중산동
zzezze 최제제 경기 부천시 중동

4) SQL문 작성해보기

-- member 테이블에서 모든 항목(*)을 조회하라는 의미.
select * from member;

-- member 테이블에서 이름이(member_nm) 아이유인 사람의 모든 항목(*)을 조회하라는 의미.
select * from member where member_nm = '아이유';




 

 

 

참고 : 혼자 공부하는 SQL [한빛미디어]

댓글