데이터들의 저장소
-Data ? -> 정보, 통계, 이것도 데이터고 저것도 데이터라서
DB의 종류가 많다
DBMS(Database Management System) = 데이터베이스를 관리하는 시스템
-DBMS의 유형이 많다
-DBMS의 유형 : 계층형, 망형, 네트워크형, 관계형
관계형 데이터베이스(RDBMS)
-표의 형태(행과 열로 이루어진 자료)
-엑셀과 유사함 그래서 엑셀과 호환되는 경우가 많음
DB의 종류와 DBMS의 종류는 전혀 다르다
DB의 종류 : orascle, MySQL, MSSQL, PostgreSQL, tibero
-Oracle - 대중적으로 많이 사용하지만 유료, 기본용량이 큼, 규모가 큰 프로젝트에 적합
-MySQL - 무료, 기본용량이 작음, 상대적으로 규모가 작은 프로젝트에 적합
-PostgreSQL - 많이 떠오르는 중, 공간 정보 데이터의 처리
DB는 엄청 많은 종류를 가지고 있고 그 많은 종류를 우리가 실제로 써야 하는데 DBMS라는 시스템이 각 DB마다 따로 있다
시스템을 다루는 방법이 SQL을 기반으로 하기 때문에 매번 새로 배울 필요는 없음
MySQL 사용예정
-DB서버 / 클라이언트(DB 서버에 접속하는 것)
-DB서버 역할, 기본 DBMS 역할을 해줄 프로그램 설치 - xampp
-MySQL 서버를 켰다 껐다하는 기능
-lower_case_table_names
테이블을 다룰 때 대소문자에 대해 어떻게 판단할 것이냐
윈도우에서 대,소문자를 구별해서 테이블 이름을 짓겠다
-cmd창에서 mysql(dbms)를 통해 접속한 것은 DB서버 : mysql.exe -u root
우리가 사용할 데이터베이스(폴더)를 선택
DBMS
-서버 / 클라이언트
-MySQL
-mySQL
-기본 DBMS는 UI가 없어서 불편
-UI를 가지고 있는 DBMS를 편하게 쓸 수 있게 해주는 프로그램 - sqlyog, Deaveber,heidiSQL
Sqlyog
-Host Address : 주소
내가 접속할 DB서버 주소
개개인의 컴퓨터에 xampp설치
각자가 각자의 DB서버 구동
나 자신에게 접속
나 자신(localhost = 127.0.0.1(컴퓨터의 ip 주소))
127.0.0.1 = 컴퓨터의 ip 주소
-root : 최상위
자바, 파이썬, C와는 다른 거지만 자바, 파이썬, C처럼 할 수 있는 게 엄청 많아짐
DBMS마다 SQL이 조금씩 다름
표준SQL : DBMS마다 다른 SQL을 제외하고 나머지는 전부 다 동일한 SQL을 따름
서버
내가 보고자 하는 영상을 선택하여 클릭(요청)
서버한테 부탁하는 것
해당 영상을 재생해줌(응답)
클라이언트
요청을 보내는 사람
응답을 받는 사람
#,-- : 주석
1.DDL : 데이터 정의 언어, 데이터베이스 구조에 대한 명령[ex) DB생성, 테이블 생성, DB삭제, 테이블 삭제 등] CREATE, ALTER, DROP
2.DML : 데이터 조작 언어, 데이터를 조작하는 명령[ex) 데이터 추가, 수정, 삭제, 조회 등]
UPDATE,SELECT,DELETE,INSERT
3.DCL : 데이터 제어 언어, [ex) 계정관리, 권한관리 등]
REVOKE,GRANT
4.TCL : 트랜젝션 제어 언어
ROLLBACK,COMMIT
범위 : DB -> table -> data
최초의 테이블을 생성할 때 꽤나 많은 것들을 정해야 됨
스키마 일종 -> 컬럼(열) = 속성(어트리뷰트) = 필드
메타 데이터 : 데이터들의 데이터
행(row) = 레코드 = 튜플 : 하나의 데이터
테이블 생성(Article)
CREATE TABLE article(
);
데이터 타입
숫자 데이터 형식 : INT=INTEGER(정수), DOUBLE(실수)
웹에서는 실수를 꼭 써야만 해! 가 없다
문자 데이터 형식 : VARCHAR(M)-사이즈를 지정해서 써야됨, TEXT
M : 0 ~ 65,535
날짜 데이터 형식 : DATETIME - 날짜 시간 다 나옴
데이터 조회
*= 모든 것 = 모든 컬럼을 선택할 거야
article로부터 모든 것을 선택할 거야
고유한 식별값을 하는 컬럼은 앞으로 오는 게 좋음
select * from article;
테이블에 데이터를 추가(종류가 3가지 정도 있음)
INSERT INTO article
SET id = 1
, regDate = ''
, title = '제목1'
, content = '내용1';
INSERT INTO article (
id
, regDate
, title
, content
) VALUES (
3
, '2025-04-09 15:30:56'
, '제목3'
, '내용3'
)
데이터 수정
UPDATE article
SET id = 1
WHERE title = '제목1';
데이터 삭제
title이 갖고 있는 줄이 삭제됨
DELETE FROM article
WHERE title = '제목3';