MySQL 시작 - DB (SCHEMA - 저장소) 생성
CREATE SCHEMA `mydb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Table 생성
- 대문자 사용
- 단어와 단어 사이는 _ 로 구분
- Primary Key 역할을 하는 단어가 최우선으로 온다
- Primary Key -> _PK 를 추가
- Foreign Key -> _FK 를 추가
테이블 생성 시 제약 사항
- AUTO_INCREMENT : 새 행 생성시마다 자동으로 1씩 증가 -> 실패하더라도 카운트가 올라가짐?
- PRIMARY KEY : 중복 입력 불가 + NULL 값 불가
- UNIQUE : 중복 입력 불가
- NOT NULL : NULL 값 불가
- UNSIGNED : 양수만 가능
- 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 구조에 대한 이해를 바탕으로 설계 필요 |
기능 추가 및 확장 | 명확하게 나누기 어려운 부분이 있어서 구조상으로 복잡해지는 경우가 많음 |
프론트-백이 서로 독립적으로 개발 가능 |
'학원에서 배운 것 > DBMS MySQL' 카테고리의 다른 글
KDT 5th 웹개발자 입문 수업 29일차 (0) | 2023.03.16 |
---|---|
MySQL 기초 리마인드 정리 (0) | 2023.03.15 |
KDT 5th 웹개발자 입문 수업 27일차 (1) | 2023.03.14 |