728x90

ํด๋ž˜์Šค์™€ ๋‹คํ˜•์„ฑ์— ๋Œ€ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”๊ฐ€ ์„ค๋ช…ํ•ด๋‹ฌ๋ผ

 

์•Œ๊ณ  ์žˆ๋Š” ๋””์ž์ธํŒจํ„ด์— ๋Œ€ํ•ด ๋งํ•ด๋ด๋ผ

1) ์‹ฑ๊ธ€ํ†ค

 

์‹ฑ๊ธ€ํ†ค๊ณผ ์ „์—ญ๋ณ€์ˆ˜์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

 

ํ•ด์‹œ๋งต(hash_map)์ด ๋ฌด์—‡์ธ๊ฐ€?

- ํ•ด์‹œ๋งต์€ ์ €์žฅ์€ ๋Š๋ฆฌ์ง€๋งŒ ๋‹ค๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ๋งต ์ธํ„ฐํŽ˜์ด์Šค๊ณ„์—ด์˜ ๋Œ€ํ‘œ์ ์ธ ํด๋ž˜์Šค

- ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง

- ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ map, set์— ๋น„ํ•ด ๋น ๋ฆ„

  โ— map,set์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ : ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์ž๋ฃŒ ์ €์žฅ์„ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  โ— hash_map, hash_set์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ : ์ •๋ ฌ์ด ํ•„์š” ์—†์œผ๋ฉฐ ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ์›ํ•  ๋•Œ

- ๋นˆ๋ฒˆํ•œ ์ž๋ฃŒ ์‚ฝ์ž…, ์‚ญ์ œ์˜ ๊ฒฝ์šฐ์™€ ์ €์žฅํ•œ ์ž๋ฃŒ๊ฐ€ ์ ์„ ๋•Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„์™€ ๊ฒ€์ƒ‰ ์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Œ

 

์ •์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋™์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด์ ์€?

- ์ •์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹คํ–‰ํ•  ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๋Š” ๋ฐ˜๋ฉด ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ๋“œ๋˜๋Š” ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์„ ์•„๋‚„ ์ˆ˜ ์žˆ์Œ

- ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งค๋ฒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฃผ์†Œ์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌํ•ด ์ˆ˜ํ–‰ ์‹œ๊ฐ„์€ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค ๋Š๋ฆผ

 

๊ฐ’ ์ „๋‹ฌ ๋ฐฉ์‹์— ์–ด๋– ํ•œ ์ฐจ์ด์ ์ด ์žˆ๋Š”๊ฐ€

value๋กœ ์ „๋‹ฌ

- ์–•์€ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง

reference๋กœ ์ „๋‹ฌ

- ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง

 

์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๋งํ•ด๋ณด๋ผ

 

์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์™€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด๋ผ

 

ํ˜•๋ณ€ํ™˜์„ ์“ฐ๋Š” ์ด์œ ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด๋ผ

 

๋ฐ˜์‘ํ˜•
728x90

github ๋ธ”๋กœ๊ทธ๋ฅผ ์ œ์ž‘ํ•  ๋•Œ push๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํ™•์ธํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋กœ์ปฌ์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ๋งค๋ฒˆ ๊ตฌ๊ธ€๋ง ํ•˜๋ฉด์„œ ํ—ท๊ฐˆ๋ ค์„œ ํฌ์ŠคํŒ…์œผ๋กœ ์ •๋ฆฌํ•ด๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค.

ํ•„์ž๋Š” github ๋ธ”๋กœ๊ทธ๋ฅผ ํ˜„์žฌ ํฌํŠธํด๋ฆฌ์˜ค ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค.

 

ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ €

Ruby๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.

 

https://rubyinstaller.org/downloads/

 

๋‚˜๋Š” ์ œ์ผ ์ตœ์‹ ๋ฒ„์ „์„ ๋‹ค์šด ๋ฐ›์•˜๋‹ค.

 

Ruby๋ฅผ ๋‹ค์šด๋ฐ›์€ ํ›„ cmd์ฐฝ์„ ์ผœ์„œ jekyll ๋ฒˆ๋“ค์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

gem install jekyll bundler

๋ธ”๋กœ๊ทธ๋ฅผ clone ํ•ด์„œ ๊ฐ€์ ธ์˜จ๋‹ค.(์ƒ๋žต)

 

๊ทธ๋Ÿฐ๋‹ค์Œ cmd ์ฐฝ์—์„œ ํ•ด๋‹น repository๊นŒ์ง€ ๋“ค์–ด๊ฐ€์ค€๋‹ค.

๋‚˜๋Š” D์— repository๋ฅผ ๋„ฃ์–ด๋†”์„œ ์ด๋ ‡๊ฒŒ ๋“ค์–ด๊ฐ”๋‹ค.

repository์˜ ํด๋” ์ด๋ฆ„๋„ github๋ž‘ ๊ฐ™๊ฒŒ ํ–ˆ๊ธฐ๋•Œ๋ฌธ์— ์ €๋ ‡๊ฒŒ ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด๋‹ค.

๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ํด๋”๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋œ๋‹ค.

 

Could not find gem 'html-proofer (~> 3.15)' in locally installed gems

๊ฐ€ ๋– ์„œ ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ ์ด๋Ÿฌํ•œ ์ ˆ์ฐจ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋ผ๊ณ  ํ•ด์„œ ํ•ด๋ดค๋‹ค.

gem cleanup
bundle update
bundle install

์ด๋ ‡๊ฒŒ ์ˆœ์„œ๋Œ€๋กœ ์น˜๋‹ˆ๊นŒ ๋ญ”๊ฐ€๊ฐ€ ์—„์ฒญ ๋‹ค์šด๋˜์—ˆ์ง€๋งŒ

jekyll serve

๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค..

cannot load such file -- webrick (LoadError)

๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์ฐพ์•„๋ดค๋”๋‹ˆ

bundle add webrick

์œผ๋กœ webrick์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ผ๊ณ  ํ•œ๋‹ค. (ruby 3.0.0๋ถ€ํ„ฐ gem์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์žˆ๋˜ webrick์ด ๋น ์กŒ๋‹ค๊ณ  ํ•จ)

 

์ด๋ ‡๊ฒŒ ํ–ˆ๋”๋‹ˆ ์ œ๋Œ€๋กœ ์ž‘๋™๋œ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ

http://127.0.0.1:4000/

๋กœ ์ ‘์†ํ•ด์„œ ๋กœ์ปฌํ™”๋ฉด์„ ๋ณด๋ฉด ๋œ๋‹ค.

 

๋‚ด๊ฐ€ ์ ์šฉํ•ด๋†“์€ jekyll ํ…Œ๋งˆ๊ฐ€ ๋œฌ๋‹ค!

์—ฐ๊ฒฐํ•ด๋†“์€ ๋ธ”๋กœ๊ทธ๋Š” Ctrl+C๋ฅผ ํ†ตํ•ด์„œ ๋Œ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ํŽธํ•˜๊ฒŒ ๋กœ์ปฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค๐Ÿ˜‚

 

 

์ถ”๊ฐ€ ์‚ฌํ•ญ

C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/bundler-2.3.17/lib/bundler/runtime.rb:309:in `check_for_activated_spec!': You have already activated i18n 1.10.0, but your Gemfile requires i18n 0.9.5. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)

์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉด

bundle exec jekyll serve

๋ฅผ ์ณ์ฃผ๋ฉด ์‹คํ–‰์ด ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•
728x90

- BIOS์—์„œ SVM ํ™œ์„ฑํ™”ํ•˜๊ธฐ

- ๊ทธ ํ›„ Windows ๊ธฐ๋Šฅ ์ผœ๊ธฐ/๋„๊ธฐ -> Windows ํ•˜์ดํผ๋ฐ”์ด์ € ํ”Œ๋žซํผ ์ฒดํฌ -> ์žฌ๋ถ€ํŒ…

์ˆœ์„œ๋กœ ํ•˜๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!

 

๋ฐ˜์‘ํ˜•
728x90

Chapter 1. Ubuntu์—์„œ mariadb ์‹คํ–‰์„ ํ•˜์—ฌ๋ณด์ž.

*๋ชจ๋“  ์‹คํ–‰์€ MariaDB 5.5์—์„œ ์ž‘๋™ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค

mariadb๋ฅผ ๋‹ค ์„ค์น˜ํ•˜์…จ์œผ๋ฉด ํ•œ๋ฒˆ ์‹คํ–‰ํ•ด๋ณผ๊นŒ์š”? ๋จผ์ € Ubuntu ํ™”๋ฉด์—์„œ terminal์„ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

 

 

 

 

 

์ด๋Ÿฌํ•œ ์‹คํ–‰์ฐฝ์ด ๋–ด๋‹ค๋ฉด ์„ฑ๊ณตํ•˜์‹ ๊ฒ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์œผ๋กœ๋Š” mariadb๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๊ธฐ ์œ„ํ•ด ๋ช…๋ น์–ด๋ฅผ ์ ์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ mariadb๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด mariadb –u root –p ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์˜€๋”๋‹ˆ ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

mysql –u root –p ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์˜€๋”๋‹ˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๊ณ  ์ดˆ๊ธฐ์— ์„ค์ •ํ•˜์˜€๋˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด 'Welcome to the MariaDB monitor' ๋ผ๋Š” ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ mairaDB๊ฐ€ ๊ตฌ๋™๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

.

 

Chapter 2. ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

 

mariaDB๋„ ์ž˜ ๊ตฌ๋™๋˜๋‹ˆ ์ง€๊ธˆ๋ถ€ํ„ฐ ๋‚˜๋งŒ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค. ํšŒ์› ๊ด€๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์€ 'membership' ์œผ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

mariadb์—์„œ๋Š” mysql์—์„œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2.1 CREATE

MariaDB[(none)]> create database (๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„);

 

 

create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•œ ๊ฐœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

2.2 SHOW

MariaDB[(none)]> show databases;

 

 

 

show ๋ช…๋ น์–ด๋ฅผ ์“ฐ๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

๋ณด๋ฉด db1์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ membership์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค 2๊ฐœ๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

2.3 DROP

MariaDB[(none)]> drop database (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„);

 

 

drop ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ db1๊ณผ membership ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šด ๋ชจ์Šต์ด๋‹ค.

 

2.4 USE

MariaDB[(์„ ํƒ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)]> use (์„ ํƒํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„)

 

 

 

use๋ฅผ ์ด์šฉํ•ด์„œ ์–ด๋Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์“ธ ๊ฒƒ์ธ์ง€๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„๊ณผ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ด ๋ช…์‹œ๋˜์–ด์•ผํ•œ๋‹ค.

 

2.5 ALTER

 

ALTER๋ฌธ์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋‚˜ ํ˜•์‹๋“ฑ์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์•„๋ž˜์˜ ๋ฌธ์žฅ์€ ํ…Œ์ด๋ธ” ์•ˆ์— ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฌธ์žฅ์ด๋‹ค.

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> alter table (ํ…Œ์ด๋ธ” ์ด๋ฆ„) add (์นผ๋Ÿผ ์ด๋ฆ„) datetime null;

 

 

datetime not null์„ ํ•˜๊ฒŒ ๋˜๋ฉด

 

 

*์นผ๋Ÿผ ์ถ”๊ฐ€

-๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€: alter table ํ…Œ์ด๋ธ”๋ช… add column ์นผ๋Ÿผ์ด๋ฆ„ ์นผ๋Ÿผํƒ€์ž…

-์ง€์ • ์นผ๋Ÿผ ๋’ค์—: alter table ํ…Œ์ด๋ธ”๋ช… add column ์นผ๋Ÿผ์ด๋ฆ„ ์นผ๋Ÿผํƒ€์ž… after ์นผ๋Ÿผ์ด๋ฆ„

-์ œ์ผ ์•ž์—: alter table ํ…Œ์ด๋ธ”๋ช… add column ์นผ๋Ÿผ์ด๋ฆ„ ์นผ๋Ÿผํƒ€์ž… first

 

*์นผ๋Ÿผ ์‚ญ์ œ

alter table ํ…Œ์ด๋ธ”๋ช… drop column ์นผ๋Ÿผ์ด๋ฆ„

 

*์นผ๋Ÿผ ๋ณ€๊ฒฝ

alter table ํ…Œ์ด๋ธ”๋ช… modify ์นผ๋Ÿผ์ด๋ฆ„ ์ƒˆ์นผ๋Ÿผํƒ€์ž…

alter table ํ…Œ์ด๋ธ”๋ช… change ์นผ๋Ÿผ์ด๋ฆ„ ์ƒˆ์นผ๋Ÿผ์ด๋ฆ„ ์ƒˆ์นผ๋Ÿผํƒ€์ž…

 

 

 

*์ธ๋ฑ์Šค์— ์ƒˆํ•ญ๋ชฉ ์ถ”๊ฐ€

alter table ํ…Œ์ด๋ธ”๋ช… add index(์นผ๋Ÿผ์ด๋ฆ„)

 

 

 

*์ธ๋ฑ์Šค ์‚ญ์ œ

alter table ํ…Œ์ด๋ธ”๋ช… drop index ์นผ๋Ÿผ์ด๋ฆ„

drop index ์ธ๋ฑ์Šค์ด๋ฆ„ on ํ…Œ์ด๋ธ”๋ช…

 

*Primary key ์ง€์ •ํ•˜๊ธฐ

alter table ํ…Œ์ด๋ธ”๋ช… add constraint 'primary key์ด๋ฆ„' primary key(์นผ๋Ÿผ์ด๋ฆ„)

 

*Primary key ์‚ญ์ œ

alter table ํ…Œ์ด๋ธ”๋ช… drop primary key

 

 

Chapter 3. ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ๋ณด์ž

 

3.1 INSERT

 

ํ…Œ์ด๋ธ”์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ insert ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. insert ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๋จผ์ € ํ…Œ์ด๋ธ”์ด ์กด์žฌ ํ•ด์•ผ ํ•œ๋‹ค.

 

*ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ

 

id

name

age

 

 

 

 

๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

MaiaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> create table (ํ…Œ์ด๋ธ” ์ด๋ฆ„)(

->id varchar(์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ธธ์ด),

->name varchar(์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ธธ์ด),

->age varchar(์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ธธ์ด)

->);

 

ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉด INSERT๋ฅผ ์ด์šฉํ•˜์—ฌ์„œ ํ…Œ์ด๋ธ”์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜์—ฌ๋ณด์ž.

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> insert into (ํ…Œ์ด๋ธ” ์ด๋ฆ„) (id,name,age) values(๋„ฃ์„ ๊ฐ’,๋„ฃ์„ ๊ฐ’,๋„ฃ์„ ๊ฐ’);

 

5297734 KIM 22 ์„ ๋„ฃ์–ด๋ณด๋„๋ก ํ•˜์ž

 

 

INSERT INTO ... ON DUPLICATE KEY UPDATE ,,, ๋ผ๋Š” ํ˜•ํƒœ์˜ ๊ตฌ๋ฌธ์ด ์‚ฌ์šฉ๋˜๋ฉด ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ 

์ด๋ฏธ ์กด์žฌํ•  ๋•Œ์—๋Š” UPDATE๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ์—๋Š” INSERT๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

 

 

์ด ๊ตฌ๋ฌธ์—์„œ UPDATE๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  INSERT๊ฐ€ ์‹คํ–‰๋œ ์ด์œ ๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ๋•Œ PRIMARY KEY๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์•„์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋งŒ๋“  ๋’ค ON DUPLICATE KEY UPDATE๋ผ๋Š” ์˜ต์…˜์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ์ง‘์–ด ๋„ฃ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๋‹น์—ฐํžˆ ์˜ค๋ฅ˜ ๋ฌธ๊ตฌ๋ฅผ ๋„์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> insert into ํ…Œ์ด๋ธ”์ด๋ฆ„ (...) values(...)

->onduplicate key update (๋ฐ”๋€Œ๋Š” ๊ฐ’)

 

 

 

3.2 SELECT

 

INSERT๋ฅผ ์ด์šฉํ•ด์„œ ๋ ˆ์ฝ”๋“œ ๊ฐ’์„ ์ง‘๊ณ  show๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด์šฉ์„ ๋ณด๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๋ณด์ด์ง€๊ฐ€ ์•Š๋Š”๋‹ค

ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” select ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„]> select *from (ํ…Œ์ด๋ธ” ์ด๋ฆ„)

 

๊ทธ๋Ÿฌ๋ฉด ์•„๊นŒ ๋งŒ๋“ค์–ด๋ดค๋˜ membershipํ…Œ์ด๋ธ”์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋„๋ก ํ•˜์ž.

 

 

3.3 UPDATE

 

๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๋ฐ”๊ฟ”์•ผ ํ•  ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด UPDATE ๋ฌธ์žฅ์ด๋‹ค

INSERT๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ , ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ถ€ ์นผ๋Ÿผ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ SQL๋ฌธ์žฅ์ด๋‹ค.

 

name์„ GAHYEON ์œผ๋กœ ๋ฐ”๊พธ์–ด๋ณด๊ฒ ๋‹ค.

 

MariaDB [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> update (ํ…Œ์ด๋ธ” ์ด๋ฆ„) set name='GAHYEON' where id=5297734;

 

 

*UPDATE ๋ฌธ์žฅ ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ 

WHERE ์กฐ๊ฑด์ ˆ์ด ์—†๋Š” ๊ฒฝ์šฐ ๊ทธ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์นผ๋Ÿผ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋œ๋‹ค.

 

3.4 REPLACE

 

๋ ˆ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด INSERT๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” update๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.

 

MariaDB [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„]> replace (ํ…Œ์ด๋ธ” ์ด๋ฆ„) set age=20, id=5297734;

 

 

๊ทธ๋Ÿฌ๋‚˜ ์ด ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ ์“ฐ๋ ค๊ณ  ๋ดค๋”๋‹ˆ ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๋Œ€๋กœ ๋‚˜์˜ค์ง€๊ฐ€ ์•Š์•˜๋‹ค

์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ INSERTํ•˜๊ฒŒ ๋œ๋‹ค๊ณ  ํ•˜์˜€๋Š”๋ฐ ๋ ˆ์ฝ”๋“œ๊ฐ€ 3๊ฐœ์ธ ํ…Œ์ด๋ธ”์—์„œ๋Š” ์ค‘๊ฐ„ ๊ฐ’์ด null๋กœ ๋“ค์–ด๊ฐ€๊ณ  ์•ž์˜ ์นผ๋Ÿผ์ด ์‚ญ์ œ ๋˜์ง€ ์•Š์€ ์ฑ„๋กœ INSERT๊ฐ€ ๋˜์—ˆ๋‹ค

๊ทธ๋ž˜์„œ ์ธ์ž ๊ฐ’์ด ๋ชจ์ž๋ผ์„œ ๊ทธ๋ ‡๊ฒŒ ๋œ ๊ฒƒ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค.

 

 

์„ธ ๊ฐœ์˜ ์ธ์ž ๊ฐ’์„ ์จ์„œ REPLACE ๋ฌธ์žฅ์„ ์จ๋ณด์•˜๋Š”๋ฐ ์ด๋ฒˆ์—๋„ INSERT ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜์—ˆ๋‹ค

๊ทธ๋ž˜์„œ ๊ตฌ๋ฌธ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๊ฐ€? ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์žฅ์„ ์ด์šฉํ•ด๋ณด์•˜๋‹ค.

 

MariaDB [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> replace into membership values(...);

 

 

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฒˆ์—๋„ ๋˜‘๊ฐ™์ด ์ถ”๊ฐ€๊ฐ€ ๋˜๋Š” ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค

๋ฌด์—‡์ธ๊ฐ€ ์ด์ƒํ•˜์—ฌ์„œ ์ฐพ์•„๋ณด์•˜๋”๋‹ˆ(https://mariadb.com/kb/en/mariadb/replace ์ฐธ๊ณ , 'Real MariaDB' ์ฑ…์—๋„ ์žˆ๋Š” ๋‚ด์šฉ) 'REPLACE๋Š” INSERT์™€ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘๋œ๋‹ค

primary key๋‚˜ uniqueํ‚ค๊ฐ€ ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋จผ์ € ๊ทธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ ˆ์ฝ”๋“œ๋กœ insert๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.' ๋ผ๋Š” ์ „์ œ์กฐ๊ฑด์ด ์žˆ์—ˆ๋‹ค

๊ทธ๋Ÿฌ๋ฉด primary key๊ฐ€ ํฌํ•จ๋œ table์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ replace๋ฌธ์„ ์‹คํ–‰์‹œ์ผœ ๋ณด๋„๋ก ํ•˜์ž.

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> create table (ํ…Œ์ด๋ธ” ์ด๋ฆ„) (

                      -> ๋ณ€์ˆ˜๋ช… varchar(ํฌ๊ธฐ),

                      -> constraint ๋ณ€์ˆ˜๋ช… primary key(๋ณ€์ˆ˜๋ช…),

                      -> ๋ณ€์ˆ˜๋ช… varchar(ํฌ๊ธฐ)

                      -> );

 

 

INSERT๋ฌธ์žฅ์„ ์ด์šฉํ•˜์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์•„๊นŒ ์ „์˜ REPLACE ๋ฌธ์žฅ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด์ž.

 

 

์ƒ๊ฐํ•œ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค! REPLACE ๋ฌธ์žฅ์€ ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ INSERTํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ INSERT INTO ... ON DUPLICATE KEY UPDATE ... ๋ฌธ์žฅ๋ณด๋‹ค๋Š” ๋ถ€ํ•˜๋„ ๋†’๊ณ  ์‹œ์Šคํ…œ์˜ ์ž์›์„ ๋งŽ์ด ์†Œ๋ชจํ•˜๊ฒŒ ๋œ๋‹ค

๊ฐ€๋Šฅํ•œ๋Œ€๋กœ REPLACE๋ฌธ์žฅ ๋ณด๋‹ค๋Š” INSERT INTO ... ON DUPLICATE KEY UPDATE ... ๋ฌธ์žฅ์„ ์“ฐ๋„๋ก ํ•˜์ž.

 

3.5 DELETE

 

ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•  ๋•Œ DELETE๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

MariaDB[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]> delete from (ํ…Œ์ด๋ธ” ์ด๋ฆ„) where table_id=5297734;

 

 

 

WHERE ์กฐ๊ฑด์ ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ์„ ์‚ญ์ œํ•˜์ง€๋งŒ WHERE ์กฐ๊ฑด์ ˆ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

+ Recent posts