1) 데이터베이스의 개념
1. 통합된 데이터(integrated data) : 여러 곳에 사용하던 데이터를 통합하여 하나로 저장한 데이터(데이터 중복 최소화)
2. 저장된 데이터(stored data) : 컴퓨터가 접근할 수 있는 저장 매체(디스크)에 저장된 자료
3. 운영데이터(operational data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료(조직과 관련없이 저장되는 데이터나 임시로 저장된 데이터는 운영데이터에 속하지 않음)
4. 공용데이터(shared data) : 개인 또는 국한된 업무를 위해 사용하는 데이터가 아니라 공동으로 사용되는 데이터. 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터
2) 데이터베이스의 특징
1. 실시간 접근성(Real-Time Accessibillity) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
2. 계속적인 변화(Continuous Change) : 데이터베이스의 상태는 동적. 즉 데이터의 삽입, 수정, 삭제 등의 작업 수행 시 항상 최신의 데이터 유지
3. 동시공용(Concurrent Sharing) : 서로 다른 업무 또는 여러 사용자가 동시에 같은 데이터를 이용할 수 있다. 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 여러 개가 있다.
4. 내용에 의한 참조(Reference by Content) : 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 참조
3) 데이터베이스의 키워드
1. 스키마 : 데이터베이스, 테이블의 구조와 속성에 대한 정보
2. 테이블(릴레이션) : 특정한 형태의 데이터로 이루어진 구조화(행과 열)된 목록
3. 열(column, attribute) : 저장하려는 데이터를 대표하는 이름과 특성(모든 테이블에 한 개 이상의 열로 구성)
4. 행(row, tuple, record) : 테이블에 삽입되는 단일 구조 데이터 항목
5. 식별자(key) : 하나의 테이블에 구성되어 있는 여러개의 속성 중 테이블을 대표할 수 있는 속성
6. 도메인 : 각 속성이 가질 수 있는 값의 범위(ex :성적 = 0~100). 도메인은 원자값(더 이상 쪼개질 수 없는 속성)을 가짐. 동일한 도메인을 여러 속성에서 사용 가능(ex : 금액 도메인 지정 -> 상품테이블, 주문테이블 사용)
7. Degree(차수) : 테이블이 가지고 있는 열(column)의 수
8. Cadinality(카디널리티) : 테이블이 가지고 있는 행(row, tuple)의 수

4) 데이터베이스 관리시스템(DBMS : DataBase Management System)
- 데이터베이스를 관리하며 응용프로그램들이 데이터 베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어
5) 관계형 DBMS
- 관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스
- 테이블, 행, 열의 정보를 구조화한 데이터베이스 유형
- 대표 DBMS : Oracle, MySQL, MS SQL Server, PostgreSQL, MariaDB
6) 데이터베이스를 통합으로 관리하는 시스템(클라이언트-서버시스템)
- 클라이언트(client) : 외부에서 데이터를 요청하는 쪽(데이터 요청자)
- 서버(server) : 데이터를 소유하고 있는 쪽(데이터 제공자)

7) DBMS 필수 기능
1. 정의 기능(Data Definition)
-모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 타입과 구조에 대한 정의, 이용방식, 제약조건 등을 명시하는 기능
2. 조작 기능(Data Manipulation)
- 데이터 검색, 삽입, 갱신, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
3. 제어 기능(Data Control)
- 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지
- 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안을 유지하고 권한을 검사
- 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리결과가 항상 정확성을 유지하도록 병행제어(Concurrency Control)을 할 수 있어야 한다.
8) cmd에서 mysql 접속
mysql - u root -p
root password 입력
데이터베이스 확인 : show databases;

9) SQL : 관계형 데이터베이스 관리시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수목적의 프로그래밍 언어
1. DDL(Data Definition Language, 데이터 정의어)
- 데이터베이스 객체(테이블, 뷰, 스키마 등)의 구조를 정의하고 관리하는 명령어
- CREATE, ALTER, DROP, TRUNCATE
1-1. CREATE : 데이터베이스 오브젝트 생성
CREATE [데이터베이스객체종류] [객체의이름] [옵션];
ex:) CREATE DATABASE KSMARTDB DEFAULT CHARACTER SET UTF8
1-2. ALTER : 데이터베이스 오브젝트 변경
ALTER [데이터베이스객체종류] [객체의이름] [옵션];
ex:) ALTER TABLE MEMBERS CHANGE COLUMN m_name mbr_nm varchar(20);
1-3. DROP : 데이터베이스 오브젝트 삭제
DROP [데이터베이스객체종류] [객체의이름];
ex:) DROP DATABASE KSMARTDB;
1-4. TRUNCATE : 데이터베이스 오브젝트 내용 삭제
TRUNCATE [데이터베이스객체종류] [객체의이름];
ex:) TRUNCATE TABLE MEMBERS;
2. DML(Data Manipulation Language, 데이터 조작어)
- 데이터베이스 테이블에 데이터를 조회, 삽입, 수정, 삭제하는데 사용되는 명령어
- SELECT, INSERT, UPDATE, DELETE
2-1. SELECT : 테이블의 내용을 조회
SELECT [조회할 컬럼] FROM [테이블] WHERE [조건] GROUP BY [그룹] HAVING [조건]
ex:) SELECT * FROM MEMBERS WHERE mbr_id = 'id001';
2-2. INSERT : 테이블에 신규 데이터 삽입
INSERT INTO [테이블] (컬럼1, ...컬럼n) VALUES (데이터1, ....데이터n)
ex:) INSERT INTO MEMBERS (mbr_id, mbr_nm) VALUES('id001', '홍01');
2-3. UPDATE : 테이블의 데이터 수정
UPDATE [테이블] SET [컬럼=수정값] WHERE [조건]
ex:) UPDATE MEMBERS SET mbr_nm = '홍1' WHERE mbr_id = 'id001';
2-4. DELETE : 테이블의 데이터 삭제
DELETE FROM [테이블] WHERE [조건]
ex:) DELETE FROM MEMBERS WHERE mbr_id='id001';
3. DCL(Data Control Language, 데이터 제어어)
- 데이터베이스 객체 및 테이터의 사용권한을 관리하는데 사용되는 명령어
- GRANT, REVOKE
3-1. GRANT : 데이터베이스 사용자 권한 부여
GRANT [권한] ON [객체의이름] TO [사용자];
ex:) GRANT ALL PRIVILEGES ON KSMARTDB.* TO 'KSMARTID'@'%';
3-2. REVOKE : 데이터베이스 사용자 권한 회수
REVOKE [권한] ON [객체의 이름] FROM [사용자];
ex:) REVOKE ALL ON KSMARTDB.* FROM KSMARTID;
10) 주석
-- 한줄 주석
/* 여러줄 주석 */
11)
1.database 생성
create [데이터베이스 객체] [객체이름] [옵션];
create database ksmart52db default character set utf8;
2. database를 접근하는 사용자 계정을 추가(생성)한다.
계정아이디@'%' -> 계정일치하는 모든 아이피
identified by 비밀번호
CREATE user 'ksmart52id'@'%' IDENTIFIED BY 'ksmart52pw';
3. 생성된 사용자 계정 조회
USE mysql;
SELECT * FROM user;
4. 특정 데이터베이스 권한부여(사용자계정)
DCL GRANT [권한] ON [데이터베이스객체] TO [사용자계정];
GRANT ALL PRIVILEGES ON ksmart52db.* TO 'ksmart52id'@'%';
5. 권한 설정 후 MySQL 메모리 반영
FLUSH PRIVILEGES;
*옵션. 사용자 권한 회수
DCL REVOKE [권한] ON [데이터베이스객체] FROM [사용자계정];
REVOKE ALL ON ksmart52db.* FROM ksmart52id;
6. DDL 테이블 삭제
drop [데이터베이스객체] [테이블명]
DROP TABLE members;
7. DDL truncate 테이블의 내용을 삭제
TRUNCATE table members;
8. 데이터 삽입
INSERT INTO members(mbr_id, mbr_nm, mbr_addr, mbr_daddr, mbr_zip, mbr_telno, mbr_email, mbr_reg_date)
VALUES
('id001','홍01','전북 전주시 기린대로 499', '3층 한국스마트정보교육원', '54888','010-0001-0001','홍01@ksmart.or.kr', CURDATE()),
('id002','홍02','전북 전주시 기린대로 499', '3층 한국스마트정보교육원', '54888','010-0002-0002','홍02@ksmart.or.kr', CURDATE());
9. alter 회원테이블의 특정 컬럼 식별자 등록
ALTER TABLE members ADD PRIMARY KEY (mbr_id);
10. DML 테이블 조회
select 순서 : from -> where -> select -> order by
order by 오름차순(기본값) : asc(오름차순), desc(내림차순)
SELECT
mbr_id AS memberId, mbr_nm AS memberName, m.mbr_addr AS memberAddress, m.mbr_daddr AS memberDAddr, m.mbr_zip AS memberZip, m.mbr_telno AS memberTelNo, m.mbr_email AS memberEmail,
m.mbr_reg_date AS memberRegDate
FROM members m WHERE m.mbr_addr = '전북 전주시 기린대로 499' ORDER BY memberId DESC;
'DB' 카테고리의 다른 글
| DB - WITH절(CTE), VIEW(가상테이블), Stored Program, Procedure(프로시저) (0) | 2024.08.12 |
|---|---|
| SQL 실습문제(join) (0) | 2024.08.02 |
| DB - 정규화, 서브쿼리 (0) | 2024.08.02 |
| DB - MySQL (1) | 2024.07.19 |
| DB - sql, 데이터 모델링, 키워드, 릴레이션, 키, 무결성 제약조건, 데이터타입, 비교연산자, 논리연산자, like (0) | 2024.07.12 |