본문 바로가기
학원에서 배운 것/DBMS MySQL

KDT 5th 웹개발자 입문 수업 28일차 - 1

by 쿠리의일상 2023. 3. 15.

MySQL 시작 - DB (SCHEMA - 저장소) 생성

CREATE SCHEMA `mydb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Table 생성

  • 대문자 사용
  • 단어와 단어 사이는 _ 로 구분
  • Primary Key 역할을 하는 단어가 최우선으로 온다
  • Primary Key -> _PK 를 추가
  • Foreign Key -> _FK 를 추가

 

테이블 생성 시 제약 사항

  1. AUTO_INCREMENT : 새 행 생성시마다 자동으로 1씩 증가 -> 실패하더라도 카운트가 올라가짐?
  2. PRIMARY KEY : 중복 입력 불가 + NULL 값 불가
  3. UNIQUE : 중복 입력 불가
  4. NOT NULL : NULL 값 불가
  5. UNSIGNED : 양수만 가능
  6. DEFAULT : 값 입력이 없을 시 기본값 설정
CREATE TABLE user (
	`ID_PK` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `NAME` VARCHAR(100) NOT NULL,
    `EMAIL` VARCHAR(100) NOT NULL UNIQUE,
    `PASSWORD` VARCHAR(100) NOT NULL,
    `ADDRESS` VARCHAR(100) NOT NULL,
    `AGE` TINYINT UNSIGNED,
    `MEMBERSHIP` TINYINT DEFAULT 0,
    `REGISTER_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `UPDATE_DATE` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

 

 

테이블에 data 삽입하기

NOT NULL 으로 정해준 컬럼과 값을 지정

INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES(값1, 값2, ...);

INSERT INTO user (NAME, EMAIL, PASSWORD, ADDRESS, AGE) VALUES('이름', '이메일', '1234', '서울', 30);

 

 

테이블 데이터 삭제와 수정

가장 먼저 Safe Updates ~ 해당 체크를 해제해줘야 한다.

 

 

데이터 삭제

DELETE FROM 테이블명 WHERE 조건;

데이터 수정

UPDATE 테이블명 SET 컬럼명 = 값 WHERE 조건;

 

-> SELECT 컬럼명 FROM 테이블명 으로 나온 테이블에서 더블클릭하여 직접 값을 변경해줄 수도 있다.

 

테이블 수정 및 삭제

// 테이블명 변경
ALTER TABLE 원래테이블명 RENAME TO 바꿔줄테이블명

// 테이블 삭제
DROP TABLE 테이블명

 

// 컬럼 자료형 변경
ALTER TABLE 테이블명 CHANGE COLUMN 컬럼명 컬럼명 자료형

// 컬럼명 변경
ALTER TABLE 테이블명 CHANGE COLUMN 원래컬럼명 바꿔줄컬럼명 자료형 

// 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명 

// 컬럼 추가
ALTER TABLE 테이블명 ADD COLUMN 컬럼명 자료형 AFTER 컬럼명2

 

 

 

MVC 패턴

Model

View

Controller

웹 설계에 대한 구조로, 웹 설계를 3가지 단계로 구분하여 구조적 장점을 가지기 위한 수단

 

Model

어플리케이션의 데이터를 처리하는 역할

사용자가 볼 수 없는 곳에서 DB로부터 데이터를 읽고 삽입하고 수정하고 삭제하는 역할을 한다.

Controller 와 소통하며 View 와는 소통하지 않는다.

DB에서 데이터를 읽고 삽입하고 수정하는 역할을 수행

 

Controller

Model과 View의 상호작용 컨트롤

Model로부터 전달 받은 데이터를 가공하여 View에게 전달 + View로부터 들어온 사용자 요청을 Model에 전달

사용자의 요청을 처리하는 곳

View 에서 삭제 버튼
-> 해당 내용을 Controller 에 전달
-> Controller 는 해당 내용을 Model 이 알아들을 수 있는 언어로 변경하여 Model에 전달
-> DB에서 해당 내용 삭제
-> 해당 내용은 다시 Controller 를 통하여 View 에 전달
-> 사용자가 보는 환경이 변경

 

View

Model 로부터 받은 정보를 Controller 가 받아서 전달하면 그려주는 역할

사용자가 보는 화면을 담당하며 사용자의 요청을 Controller 로 전달한다.

 

장점 단점
역할이 명확히 구분, 유지보수가 쉬움 MVC 구조에 대한 이해를 바탕으로 설계 필요
기능 추가 및 확장 명확하게 나누기 어려운 부분이 있어서 구조상으로 복잡해지는 경우가 많음
프론트-백이 서로 독립적으로 개발 가능