**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 [한빛미디어]
'TIL' 카테고리의 다른 글
레벨 테스트 작업 로그 #7 - 모킹에 모킹을 더해서 (22.12.05 TIL) (0) | 2022.12.05 |
---|---|
레벨 테스트 작업 로그 #6 - 로그인 프론트 작업 중 (22.12.04 TIL) (0) | 2022.12.04 |
레벨 테스트 작업 로그 #5 - 상품 상세 페이지 구현 (22.12.02 TIL) (1) | 2022.12.02 |
레벨 테스트 작업 로그 #4 - 상품 목록 화면 구현 (22.12.01 TIL) (0) | 2022.12.01 |
레벨 테스트 작업 로그 #3 - 데이터 크롤링, MSW 라이브러리, Backdoor api (22.11.30 TIL) (0) | 2022.11.30 |
댓글