* ๋ชจ๋ ์คํ์ MariaDB 5.5 ์์ ์๋ํ๋ ์์ ์
๋๋ค
mariadb ๋ฅผ ๋ค ์ค์นํ์
จ์ผ๋ฉด ํ๋ฒ ์คํํด๋ณผ๊น์? ๋จผ์ Ubuntu ํ๋ฉด์์ terminal ์ ์คํ์ํต๋๋ค.
์ด๋ฌํ ์คํ์ฐฝ์ด ๋ด๋ค๋ฉด ์ฑ๊ณตํ์ ๊ฒ๋๋ค. ๊ทธ ๋ค์์ผ๋ก๋ mariadb ๋ฅผ ์คํ์์ผ๋ณด๊ธฐ ์ํด ๋ช
๋ น์ด๋ฅผ ์ ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ mariadb ๋ฅผ ์คํํ๊ธฐ ์ํด mariadb –u root –p ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์๋๋ ์ฐพ์ ์๊ฐ ์๋ค๊ณ ํฉ๋๋ค.
mysql –u root –p ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋์ค๊ณ ์ด๊ธฐ์ ์ค์ ํ์๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๊ฒ ๋๋ฉด 'Welcome to the MariaDB monitor' ๋ผ๋ ๋ฌธ๊ตฌ์ ํจ๊ป mairaDB ๊ฐ ๊ตฌ๋๋๊ฒ ๋ฉ๋๋ค.
.
mariaDB ๋ ์ ๊ตฌ๋๋๋ ์ง๊ธ๋ถํฐ ๋๋ง์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ํ๋ ๋ง๋ค์ด๋ด
์๋ค. ํ์ ๊ด๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ๋ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ 'membership' ์ผ๋ก ํ๊ฒ ์ต๋๋ค.
mariadb ์์๋ mysql ์์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์ธ ์ ์์ต๋๋ค.
MariaDB[(none)]> create database ( ๋ง๋ค๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ);
create ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ๊ฐ๋ฅผ ๋ง๋ค ์ ์๋ค.
MariaDB[(none)]> show databases;
show ๋ช
๋ น์ด๋ฅผ ์ฐ๋ฉด ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ณด๋ฉด db1 ์ด๋ผ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ membership ์ด๋ผ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค 2 ๊ฐ๊ฐ ์์์ ์ ์ ์๋ค.
MariaDB[(none)]> drop database ( ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ);
drop ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ db1 ๊ณผ membership ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ด ๋ชจ์ต์ด๋ค.
MariaDB[( ์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค)]> use ( ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ)
use ๋ฅผ ์ด์ฉํด์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ธ ๊ฒ์ธ์ง๋ฅผ ์ ํฉ๋๋ค.
ํ
์ด๋ธ์ ๋ด์ฉ์ ์กฐํํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋์๋ ๋ฐ๋์ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ๊ณผ ํ
์ด๋ธ์ ์ด๋ฆ์ด ๋ช
์๋์ด์ผํ๋ค.
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
ํ
์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ insert ๋ฌธ์ฅ์ ์ฌ์ฉํ๋ค. insert ๋ฌธ์ฅ์ด ์คํ๋๊ธฐ ์ํด์๋ ๋ฐ๋์ ๋จผ์ ํ
์ด๋ธ์ด ์กด์ฌ ํด์ผ ํ๋ค.
* ํ
์ด๋ธ ์์ฑํ๊ธฐ
๋ง์ฝ ์ด๋ฌํ ๋ฐ์ดํฐ ํ
์ด๋ธ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์ด๋ ๊ฒ ์
๋ ฅํ๋ฉด ๋๋ค.
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 ( ๋ฐ๋๋ ๊ฐ)
INSERT ๋ฅผ ์ด์ฉํด์ ๋ ์ฝ๋ ๊ฐ์ ์ง๊ณ show ๋ฅผ ์ด์ฉํ์ฌ ๋ด์ฉ์ ๋ณด๊ณ ์ถ์์ง๋ง ๋ณด์ด์ง๊ฐ ์๋๋ค.
ํ
์ด๋ธ์ ์ ์ฅ๋ ๋ ์ฝ๋๋ฅผ ์กฐํํ๊ธฐ ์ํด์๋ select ๋ฌธ์ฅ์ ์ฌ์ฉํ๋ค.
MariaDB[ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฆ]> select *from ( ํ
์ด๋ธ ์ด๋ฆ)
๊ทธ๋ฌ๋ฉด ์๊น ๋ง๋ค์ด๋ดค๋ membership ํ
์ด๋ธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋๋ก ํ์.
๊ทธ๋ฐ๋ฐ ์ด ๋ฐ์ดํฐ๊ฐ ๋ง์์ ๋ค์ง ์๋ ๋ค๋ฉด ๋ฐ๊ฟ์ผ ํ ๋ ์ฐ๋ ๊ฒ์ด UPDATE ๋ฌธ์ฅ์ด๋ค.
INSERT ๋ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ์ง ์๊ณ , ๋ ์ฝ๋์ ์ผ๋ถ ์นผ๋ผ์ ๋ณ๊ฒฝํ๊ธฐ ์ํ SQL ๋ฌธ์ฅ์ด๋ค.
name ์ GAHYEON ์ผ๋ก ๋ฐ๊พธ์ด๋ณด๊ฒ ๋ค.
MariaDB [ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ]> update ( ํ
์ด๋ธ ์ด๋ฆ) set name='GAHYEON' where id=5297734;
*UPDATE ๋ฌธ์ฅ ์ฌ์ฉ์ ์ฃผ์ํด์ผ ํ ์
WHERE ์กฐ๊ฑด์ ์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ํ
์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋์ ๋ํด์ ์นผ๋ผ ๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ๋๋ค.
๋ ์ฝ๋๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด 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 ... ๋ฌธ์ฅ์ ์ฐ๋๋ก ํ์.
ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ ๋ DELETE ๋ฌธ์ฅ์ ์ฌ์ฉํ๋ค.
MariaDB[ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ]> delete from ( ํ
์ด๋ธ ์ด๋ฆ) where table_id=5297734;
WHERE ์กฐ๊ฑด์ ์ด ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ ์กฐ๊ฑด์ ๋ถํฉ๋๋ ๋ ์ฝ๋๋ง์ ์ญ์ ํ์ง๋ง WHERE ์กฐ๊ฑด์ ์ด ์๋ ๊ฒฝ์ฐ์๋ ํ
์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋ค.