
=============================================================
=============================================================
데이터란? - 정보,통계, .... 등**
너무 다양하기에 표현하기 어려우나 간단하게 말하면 '자료'다
-> 어떤 정보의 근거가 되는 자료
=============================================================
데이터 베이스(DATABASE)란?
데이터들의 저장소
=============================================================
DBMS란? -
데이터 베이스 관리 시스템(Datebase Management System)
데이터베이스를 관리하는 시스템
+) 기존에 쓰던 파일시스템 구조에 반대되는 성향을 가지고 있으며
[사용자] 는 데이터베이스의 구조를 정의하고 계정을 만들고,
성능을 모니터링하며 백업/복구 등을 조작할 수 있고
[DB_관리자]는 사용자의 권한을 제어하는 등 다양한 관리시스템을 제공한다
=============================================================
DB의 종류
Oracle - 유료, 기본용량이 크다, 규모가 큰 프로젝트에 적합
MySQL - 무료, 기본용량이 작다(상대적인 작음) , 규모가 작은 프로젝트에 적합
PostgreSQL - 현재 많이 떠오르는 중, 공간 정보 데이터의 처리
=============================================================
**DB 공부시 알아야 할점? / SQL의 장점
DB는 많은 종류를 가지고 있고 그 많은 종류를 실제로 써야 하는데
DBMS라는 시스템이 각 DB마다 따로 있다
다만 시스템을 다루는 방법이 SQL을 기반으로 하기 때문에
매번 새로 배울 필요는 x -> DVMS마다 SQL이 다른데 새로 배울 필요가 없는 이유?
-> DBMS마다 다른 SQL을 제외하고 나머지는 전부 다 동일한 SQL(표준 SQL)을 따른다
=============================================================
DBMS의 유형
링크텍스트 참고
그 중에 관계형 데이터베이스(RDBMS) 공부해야함
why? -> 웹과 밀접한 데이터베이스기에
RDBMS 개념
관계형 데이터베이스(RDBMS) 사용방식
표의 형태(행과 열로 이루어딘 자료)
관계형 데이터베이스와 엑셀은 기본 구조방식이 유사함 & 호환도 됨
=============================================================
mysqlyog 구성요소
host address - 내가 접속할 db 서버 주소
나 자신에게 접속
나 자신 - localhost = 127.0.0.1
(컴퓨터의 ip주소를 의미)
사용자 이름 (root - 고정)
root : 개발환경에서 최상위 의미
(모든 권한을 다 가짐) -> 그래서 위험하지만 일단 지금은 괜찮다
각자의 db 가지고 있기 때문에 + SQL 배우는 단계(실무가 아님)
포트 : 내가 설정한 포트(바뀌면 바꿔준다)
=============================================================
[서버]
[클라이언트]
-개발환경에서의 서버와 클라이언트
DDL, DML, DCL, TCL
DCL : 데이터 제어 언어 (사용자의 접근을 제어)
ex) 계정관리, 권한 관리 등
TCL : 트랜잭션 제어 언어
작업단위를 묶고 처리하는 명령(과정)
=============================================================
적어내는 명령어의 구문(쿼리)
쿼리란?
DB용 언어를 SQL이라고 하는데, query는 DB에서 원하는 조건에 맞는
데이터를 조작할 수 있는 SQL 문장의 집합을 말하며, 질의문이라 한다.
=============================================================
스키마란?
테이블을 만들기 위해서 필요한 구조나 제약사항을 명시한 것
- SQL 스키마
CREATE TABLE member ( id INT NOT NULL, name VARCHAR(50) NOT NULL );
=============================================================
SQL 기초문법& 지켜야 할 사항
SQL 자주 쓰는 데이터 타입
INT (숫자)
VARCHAR (문자/사이즈 지정해줘야 함)
tips - VARCHAR(n) 과 CHAR(n) 의 차이
CHAR는 CHAR(20)으로 적용하면 2btye만 적었어도 20byte를 모두 사용.
VARCHAR VARCHAR(20)으로 적용하고 2byte 사용 시 2byte만 사용
TEXT (문잔데 큰거)
DATETIME (날짜)
=============================================================
SQL 기초 문법
참고
=============================================================
테이블 작성 방법
CREATE TABLE article (
id INT
, regDate DATETIME
, title VARCHAR(100)
, content TEXT
)
=============================================================
테이블 작성 후 데이터 추가 방식
INSERT INTO article
SET id = 1
, regDate = NOW()
, title = '제목1'
, content = '내용1';
INSERT INTO article(
id
, regDate
, title
, content
) VALUE (
2
, NOW()
, '제목 2'
, '내용 2'
)
INSERT INTO article VALUE (
3
, NOW()
, '제목3'
, '내용3'
);
UPDATE 데이터명
SET 컬럼 번호 등등 = 바꿀 조건
WHERE 컬럼 = 조건에 대한 내용(어디에 바꿀건데)
ex)
UPDATE article
SET id = 6
WHERE id = 4;
--> id 6번 수정할래 id 4번인데로!
DELETE FROM 테이블명;
테이블 안에 있는 내용 다 사라짐
BUT 테이블 내용 새로 만들면 id(primary key)가
기억된채로 이어짐. (id -5 -> 삭제 .. 새로 만들시 id = 6...)
primary key : 행을 서로 구분하기 위해 만든 컬럼
그렇기에 이렇게 기억하게 하지 않으려면
TRUNCATE article;
-> 기억 없이 삭제
TRUNCATE 테이블명 입력하고 새로 입력시
id는 이어지지 않는다