프로그래머스 풀스택 22
posted on 13 Sep 2024 under category programmers in series programmers
백엔드 심화: 인증과 비동기처리(3)
💫 workbench 시작
💫 select
💫 MySQL Workbench 폰트 크기 변경방법
💫 유튜브 users 테이블 생성
💫 channels 테이블 생성
<테이블 생성 부분>
<외래키 부분>
<적용시 나타나는 sql문>
CREATE TABLE `Youtube`.`channels` ( -- 테이블 생성
`id` INT NOT NULL AUTO_INCREMENT, -- 열 정의 시작
`name` VARCHAR(100) NOT NULL,
`sub_num` INT NOT NULL DEFAULT 0,
`video_count` INT NULL DEFAULT 0,
`user_id` INT NULL, -- 열 정의 끝
PRIMARY KEY (`id`), -- 기본 키 설정 / id 열을 기본 키로 설정하여 각 행을 고유하게 식별
INDEX `user_id_idx` (`user_id` ASC) VISIBLE, -- 인덱스 생성
CONSTRAINT `user_id` -- 외래키 제약조건 시작
FOREIGN KEY (`user_id`)
REFERENCES `Youtube`.`users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION); - -- 외래키 제약조건 끝
인덱스 생성 : user_id 열에 대해 오름차순으로 인덱스를 생성. VISIBLE은 인덱스가 사용 가능한 상태임을 뜻함.
외래키 제약조건 :
💫 FK 오류
npm install --save mysql2
// Get the client
const mysql = require('mysql2');
// Create the connection to database
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test',
});
// A simple SELECT query
connection.query(
'SELECT * FROM `table` WHERE `name` = "Page" AND `age` > 45',
function (err, results, fields) {
console.log(results); // results contains rows returned by server
console.log(fields); // fields contains extra meta data about results, if available
}
);
💫 DB 결과 jason array 비구조화
💫 users created_at 추가
<적용>
SET GLOBAL time_zone = 'Asia/Seoul'
SELECT @@global.time_zone, @@session.time_zone;
SET time_zone = 'Asia/Seoul';
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password : 'root',
database: 'Youtube',
dateStrings : true
});
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
MySQL Workbench 제약조건과 속성 / DB연동 / timezone 설정
W 배운 점과 시사점 :
MySQL Workbench 제약조건과 속성을 통해 테이블을 만들 때 구분할 수 있게 됨
timezone 설정을 자세하게 배워서 DB연동을 했을 때 시간대와 출력형식을 원하는대로 조절 가능함
T 응용하여 배운 것을 어디에 어떻게 적용할지:
DB연동을 했을 때 시간대와 출력형식을 원하는대로 조절 가능한 걸 배웠으므로
게시글 작성 시간대가 필요할 때 잘 사용할 수 있을 것임