๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ๋ธŒ์ฝ”์Šค

DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹ค์Šต(GUI)

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์‹ค์Šตํ•ด๋ณด๊ธฐ 1

: MySQL  GUI ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

 

1๏ธโƒฃ ํ…Œ์ด๋ธ”  ์ƒ์„ฑ ๋ฐ ์—ด ์ƒ์„ฑ

Tables ์šฐํด๋ฆญ > Create Table ํด๋ฆญ

: ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์„ค์ •, ์—ด ์ƒ์„ฑ(์ด๋ฆ„, ๋ฐ์ดํ„ฐํƒ€์ž…, Primary key, Not Null ๊ณผ ๊ฐ™์€ ์†์„ฑ ์ถ”๊ฐ€ ) ์„ ํ•˜๊ณ  Apply ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ…Œ์ด๋ธ” ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…

๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ฐ ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  apply ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋œ๋‹ค. 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์‹ค์Šตํ•ด๋ณด๊ธฐ 2

MYSQL ์›Œํฌ ๋ฒค์น˜ users ํ…Œ์ด๋ธ”

connection.query(
  'SELECT * FROM `users`',
  function (err, results, fields) {
    let {id,email,name, created_at} = results[0]
    console.log(id) 
    console.log(email) 
    console.log(name) 
    console.log(created_at)
  }
);

 

โžก๏ธ MySQL ์€ timestamp() ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์„ธ๊ณ„ ํ‘œ์ค€์‹œ๋กœ ์‹œ๊ฐ„์ด ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ ํ˜„์žฌ ์‹œ๊ฐ„๊ณผ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  MySQL ์„ ์—ฐ๊ฒฐํ•œ vscode ์—์„œ๋„ created_at ์„ ์ถœ๋ ฅํ•˜๋ฉด ์›Œํฌ๋ฒค์น˜์˜ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ์‹œ๊ฐ„๊ณผ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. 

 

๐Ÿ”ฅํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. MySQL: timezone ์„ค์ •ํ•˜๊ธฐ

SET GLOBAL time_zone = 'Asia/Seoul';

MySQL ์›Œํฌ๋ฒค์น˜์— ์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. 

global.time_zone ์˜ ๊ฐ’์€ ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ, session.time_zone ์€ ์„ค์ •ํ•œ๋Œ€๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

SET time_zone = 'Asia/Seoul';

GLOBAL ์„ ๋นผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด session ์˜ time_zone ๋„ Asia/Seoul ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

โžก๏ธ์„ค์ •์„ ์™„๋ฃŒํ•œ ํ›„ users ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•ด๋ณด๋ฉด, ์ด์ œ created_at ์—ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ธ๊ณ„ํ‘œ์ค€์‹œ๊ฐ€ ์•„๋‹Œ ์„œ์šธ ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

2. MySQL ๊ณผ ์—ฐ๋™๋œ vscode timezone ์„ค์ •ํ•˜๊ธฐ 

// Get the client
const mysql = require('mysql2');

// Create the connection to database
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'Youtube',
  port: '3307' ,// mariadb ํฌํŠธ ๋ฒˆํ˜ธ 3307๋กœ ๋ณ€๊ฒฝํ–ˆ์Œ
  dateStrings: true
});

// A simple SELECT query
connection.query(
  'SELECT * FROM `users`',
  function (err, results, fields) {
    let {id,email,name, created_at} = results[0]
    console.log(id) 
    console.log(email) 
    console.log(name) 
    console.log(created_at)
  }
);

connection์„ ์„ค์ •ํ•˜๋Š” ๊ณณ์—์„œ dateStrings:true ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์ด ์†์„ฑ์€ DB๋กœ ๋ถ€ํ„ฐ Date ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ๋•Œ, ์‹œ์Šคํ…œ์˜ Local Timezone ์ด ๋ฐ˜์˜๋œ๋‹ค. 

 

โžก๏ธ MySQL ์˜ created_at ์—ด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 


๐ŸŒŸ ๋ฐฐ์šด ์ 

์ด์ „์— ํ•™๊ต์—์„œ MySQL ์„ 3306 ํฌํŠธ๋กœ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ์–ด์„œ 3306 ํฌํŠธ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ, mariadb ๋กœ ์ œ์ž‘ํ–ˆ๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์ด ๋‚˜์˜ค์ง€ ์•Š๊ณ  mariadb ์™€ MySQL์ด ์—ฐ๊ฒฐ์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. mariadb ์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ 3307 ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , MySQL ์˜ ํฌํŠธ๋ฒˆํ˜ธ๋„ 3307 ๋ฒˆ์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ˜ผ์ž ๊ตฌ๊ธ€๋ง์„ ์—ด์‹ฌํžˆ ํ•ด๋ณด๋ฉด์„œ ์ข€ ์„ฑ์žฅ์„ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์•ž์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒจ๋„ ๋„ˆ๋ฌด ๋ฌด์„œ์›Œํ•˜์ง€ ๋ง๊ณ  ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.  

'๋ฐ๋ธŒ์ฝ”์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ  (1) 2024.09.24
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ํ•˜๊ธฐ  (0) 2024.09.23
DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹ค์Šต  (1) 2024.09.12
RDBMS  (2) 2024.09.11
Express ๊ตฌ์กฐ  (0) 2024.09.10