[DB] MySql ์ •๋ฆฌ๋ณธ ๐Ÿ“’

๋ฐ•์ •ํ˜„ยท2023๋…„ 10์›” 26์ผ
0

๐Ÿ’ฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ชฉ๋ก ๋ณด๊ธฐ
11/11
post-thumbnail

1. ์ฃผ์š” ์ฐจ์ด์ 

1) ๋ฐ์ดํ„ฐ ํƒ€์ž…

MySqlOracle
intnumber
varcharvarchar2

2) ์‹œํ€€์Šค

MySqlOracle
auto_incrementsequnece

auto_increment
(์ž๋™์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€)

2. MySql ํŠน์ง•

  1. ๊ณต๊ฐœํ˜• ๋ฌด๋ฃŒ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค
  2. ์‚ฌ์šฉ์— ํฐ ์ œํ•œ์ด ์—†๋‹ค.
  3. Java, PHP๋“ฑ ๊ฐœ๋ฐœ ์–ธ์–ด์™€ ์—ฐ๋™์ด ์‰ฝ๋‹ค.
  4. ๋‹ค์–‘ํ•œ OS์ง€์›

3. SQL์–ธ์–ด

DDL, DML ๋“ฑ์˜ ์–ธ์–ด๋Š” Oracle๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๊ณ  DBA๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1) DBA

  • ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑ, ์‚ญ์ œ

  • DB๋ฅผ ์ƒ์„ฑ, ์‚ญ์ œ

  • ์‚ฌ์šฉ์ž๊ฐ€ DB๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ ์„ค์ •

    [ DB ์ƒ์„ฑ ]

  • show databases; : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ

  • create database mysqltest; : DB์ƒ์„ฑ

  • use mysqltest; :DB์‚ฌ์šฉ

  • show tables; :DBํ…Œ์ด๋ธ” ์กฐํšŒ

show databases;
drop database mysql06;
create database mysql06;
use mysql06;
show tables;

๊ฐ„๋‹จํ•˜๊ฒŒ DB๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ํ•œ๊ธ€์ด ๊นจ์ง€์ง€ ์•Š๋„๋ก ์„ค์ •์„ ํ•ด์•ผ ํ•œ๋‹ค.

2)DML

-- insert
insert into member1(name, age) values ('m1', 11); -- Oracle๊ณผ ๋‹ค๋ฅด๊ฒŒ ์‹œํ€€์Šค๋ฅผ ๋„ฃ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
insert into member1(name, age) values ('m2', 22); 
insert into member1(name, age) values ('m3', 33); 
insert into member1(name, age) values ('m4', 44); 
insert into member1(name, age) values ('m5', 55); 
-- select
select * from member1;
-- update
update member1 set name='m1์ˆ˜์ •', age=12 where member_id=1;
-- delete 
delete from member1 where member_id=2;

3) DDL - ALTER: ํ…Œ์ด๋ธ” ์ˆ˜์ •

  • ์นผ๋Ÿผ๋ช…๋ณ€๊ฒฝ
    • alter table ํ…Œ์ด๋ธ”๋ช… chage ์นผ๋Ÿผ๋ช…1 ์นผ๋Ÿผ๋ช…2 ๋ฐ์ดํ„ฐํƒ€์ž…;
    • ์นผ๋Ÿผ๋ช…1โ†’์นผ๋Ÿผ๋ช…2 + ๋ฐ์ดํ„ฐํƒ€์ž…์œผ๋กœ ์นผ๋Ÿผ๋ช…์„ ๋ณ€๊ฒฝํ•œ๋‹ค.
  • ์นผ๋Ÿผ ์‚ญ์ œ
    • alter table ํ…Œ์ด๋ธ”๋ช… drop ์‚ญ์ œํ•˜๋ ค๋Š” ์นผ๋Ÿผ๋ช…;
  • ์นผ๋Ÿผ ์ถ”๊ฐ€
    • alter table ํ…Œ์ด๋ธ”๋ช… add ์นผ๋Ÿผ๋ช…2 ๋ฐ์ดํ„ฐํƒ€์ž…;
    • ์นผ๋Ÿผ๋ช…2์˜ ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐํƒ€์ž… ์ˆ˜์ •
    • alter table ํ…Œ์ด๋ธ”๋ช… modify ์นผ๋Ÿผ๋ช… ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐํƒ€์ž…;
  • ํ…Œ์ด๋ธ”๋ช… ์ˆ˜์ •
    • alter table ํ…Œ์ด๋ธ”๋ช…1 rename ํ…Œ์ด๋ธ”๋ช…2;
    • ํ…Œ์ด๋ธ”๋ช…1 โ†’ ํ…Œ์ด๋ธ”๋ช…2๋กœ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์ˆ˜์ •ํ•œ๋‹ค.

4. DB๊ถŒํ•œ ์„ค์ •

1) ์‚ฌ์šฉ์ž ์ƒ์„ฑ(๋“ฑ๋ก)

  • create user โ€˜์‚ฌ์šฉ์žโ€™@โ€™localhostโ€™ identified by โ€˜๋น„๋ฐ€๋ฒˆํ˜ธโ€™;
  • create user โ€˜user1โ€™@โ€™localhostโ€™ identified by โ€˜1111โ€™

2) ์‚ฌ์šฉ์ž ๊ถŒํ•œ

  • grant all privilleges on . to โ€˜์‚ฌ์šฉ์žโ€™@โ€™localhostโ€™; โ†’ ๋ชจ๋“  DB์— ๊ถŒํ•œ(๊ด€๋ฆฌ์ž(root)์™€ ๋˜‘๊ฐ™์Œ)
  • grant all privilleges on DB์ด๋ฆ„.* to โ€˜์‚ฌ์šฉ์žโ€™@โ€™localhostโ€™; โ†’ํŠน์ • DB์— ๊ถŒํ•œ
-- ์‚ฌ์šฉ์ž ๊ณ„์ • ์ถ”๊ฐ€
create user 'user1'@'localhost' identified by '1111';
-- ์‚ฌ์šฉ์ž ๊ถŒํ•œ ์„ค์ •
grant all privileges on mysql06.* to 'user1'@'localhost';

user1๋กœ ์ ‘์†ํ•˜๋ฉด mysql06 ํ…Œ์ด๋ธ”๋งŒ ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ์‚ฌ์šฉ์ž ์‚ญ์ œ

  • drop user โ€˜์‚ฌ์šฉ์žโ€™@โ€™localhostโ€™;
    • mysql DB์˜ ์‚ฌ์šฉ์ž ์ •๋ณด, DB์ •๋ณด

      -- ์‚ฌ์šฉ์ž ๊ณ„์ • ์‚ญ์ œ
      drop user 'user1'@'localhost';

.

  • use mysqltest; :DB์‚ฌ์šฉ
  • show tables; :DBํ…Œ์ด๋ธ” ์กฐํšŒ
  • select user from user; โ†’ userํ…Œ์ด๋ธ” ์กฐํšŒ

5. Mysql ๋ฐ์ดํ„ฐ ํƒ€์ž…

1) ์ˆซ์žํ˜•

  • int(Integer) ์ •์ˆ˜ํ˜•(4) โ€”Oracle number
    • bigint: ํƒ€์ž…์ด ํฐ intํ˜• (Long)โ†’ ์ž๋™์œผ๋กœ ํƒ€์ž…์„ ์„ค์ •ํ•ด์ค€๋‹ค.(auto_increment)
  • float
  • double

2) ๋‚ ์งœํ˜•

  • date: ๋‚ ์งœ๋งŒ
  • datetime: ๋‚ ์งœ์™€ ์‹œ๊ฐ„ โ†’ LocalDateTimeโญโญโญโญโญ์œผ๋กœ ์ž๋™์œผ๋กœ ์„ค์ •๊ฐ€๋Šฅ
  • timestamp: 1970/1/1 0์‹œ ์ดํ›„๋ถ€ํ„ฐ

3) ๋ฌธ์žํ˜•

  • char: ๊ณ ์ •๊ธธ์ด char(10)
  • varchar: ๋ณ€๋™ํ˜• varchar(10) โ†’ Oracle์˜ varchar2()์™€ ์œ ์‚ฌํ•จ

4) ํ…์ŠคํŠธ(์žฅ๋ฌธ)

  • blog, text ๊ฒŒ์‹œ๊ธ€, ๋ฐฉ๋ช…๋ก

6. ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

CREATE TABLE `mysql06`.`board1` (
  `board_id` BIGINT(10) NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(100) NOT NULL,
  `content` VARCHAR(255) NOT NULL,
  `writer` VARCHAR(100) NOT NULL,
  `create_date` DATE NULL DEFAULT current_date,
  PRIMARY KEY (`board_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

desc board1;์„ ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

7. ๊ธฐ๋ณธ๋‚ ์งœ

๋‚ ์งœ, ์‹œ๊ฐ„์€ JPA์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ, ์ˆ˜์ • ๋‚ ์งœ์‹œ๊ฐ„์„ ์ฒ˜๋ฆฌ ํ•˜๋„๋ก ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ๋Œ€ํ•ด์„œ ํฌ๊ฒŒ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

  • datedefault (current_date)
  • datedefault (current_time)
  • datedefault (current_timestamp)
  • datedefault now(): ๋‚ ์งœ + ์‹œ๊ฐ„

8. ์™ธ๋ž˜ํ‚ค ์„ค์ •

1) ํ…Œ์ด๋ธ”์ด ๋งŒ๋“ค์–ด ์ง„ ์ดํ›„์— ํ…Œ์ด๋ธ” ๊ฐ„์— ์„ค์ •

alter table ํ…Œ์ด๋ธ”1

add foreign key(์™ธ๋ž˜ํ‚ค) refferences ์ฐธ์กฐํ…Œ์ด๋ธ”(์ฐธ์กฐํ‚ค);

alter table board0626 add foreign key(board_writer) references member0626(email);

databaseโ†’reverse engineeging ERD๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

2) ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋  ๋•Œ ์„ค์ •

create table ํ…Œ์ด๋ธ”1(

์™ธ๋ž˜ํ‚ค,

foreign key(์™ธ๋ž˜ํ‚ค) refferences ์ฐธ์กฐํ…Œ์ด๋ธ”(์ฐธ์กฐํ‚ค);

profile
๊ฐœ๋ฐœ์„ ๊ฐœ๋ฐœ๊ดด๋ฐœํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€