๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
17
๋ฆฌ๋
์ค ํ๊ฒฝ์์ mysqlํ๊ธฐ ํ์ผ
๋ณดํธ๋์ด ์๋ ๊ธ์
๋๋ค.
2023.12.17
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql๋ก ๊ตฌํํ ๊ฐ์ธ ๊ณผ์
๋ณดํธ๋์ด ์๋ ๊ธ์
๋๋ค.
2023.12.07
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
[MySQL] C ํ์ผ๊ณผ ์ฐ๋ํด ์คํ์ํค๊ธฐ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํค๋ํ์ผ ๋ณด๊ธฐ mysql_config --libs include์ ํค๋ ํ์ผ๋ค, ์ปดํ์ผ๋ฌ ํ๋๊ทธ ๋ฐ ์ ์๊ฐ ํ์ธ mysql_config --cflags C ์ปดํ์ผํ๊ธฐ ์ํด ํค๋ ์ง์ gcc dbconn.c –o dbconn $(mysql_config –-cflags) $(mysql_config --libs) ์ ์์ ์ํ ์ ๋ณด ์ฝ๋ #include #include #include #include int main() { //MYSQL ๋ณ์ ์์ฑ MYSQL mysql; //MYSQL ๋ณ์ ์ด๊ธฐํ mysql_init(&mysql); //MYSQL์ ์ ์: ์ฑ๊ณตํ๋ฉด 1 ๋ฆฌํด, ์คํจํ๋ฉด 0 ๋ฆฌํด if(!mysql_real_connect(&mysql,"localhost", user, password, ..
2023.12.07
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ทฐ์ ์ธ๋ฑ์ค ์ฌ์ฉ๋ฒ
๋ทฐ ์์ฃผ ์ฌ์ฉํ๋ ํํ์ ํ
์ด๋ธ์ ๊ฐ์ ํ
์ด๋ธ๋ก ๊ตฌ์ฑํด์ ์ฌ์ฉํ๊ธฐ ํธํ๊ฒ ํจ! create view cbOrders as select cname, title, odate from cust, orders, book where cust.cid = orders.cid and book.bid = orders.bid; ์ด๋ฐ ์์ผ๋ก ์์ alter view vw_anyang(cid, cname, addr) as select cid, cname, addr from cust where addr = 'seoul'; as select์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅ(๋ฐ์ดํฐ๋ง ๊ฐ๋ฅ!!) ๋ทฐ ์ญ์ ํ๊ธฐ drop view ์ด๋ฆ; ์ธ๋ฑ์ค B-Tree(์ด์งํธ๋ฆฌ)๋ก ๊ตฌ์ฑ๋จ. ์ฐพ๊ธฐ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์์ฑํจ! create index ์ธ..
2023.12.07
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ์ข
ํฉ ๋ถ์์ง์ ์์
1. ๋ชจ๋ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๋ณด์ด์ธ์(oid,odate,title) - ์ค์นผ๋ผ ๋ถ์์ง์ select oid, odate, (select title from book where book.bid = orders.bid) as title from orders; 2. ๋ชจ๋ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ์ฑ
๋ณ๋ก ๋ณด์ด์ธ์(bid,title,๊ฑด์) - ์ค์นผ๋ผ ๋ถ์์ง์ select bid, title, (select count(*) from orders where book.bid = orders.bid) as ๊ฑด์ from book; 3. mac ์ถํ์ฌ์์ ์ถ๊ฐํ ์ฑ
์ ์ฃผ๋ฌธ์ ๋ณด๋ฅผ ๋ณด์ด์ธ์(title,oid,odate) - ์ค์นผ๋ผ ๋ถ์์ง์+ ์ค์ฒฉ์ง์ select (select title from book where book.bid = orde..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ถ์์ง์ (select, from, where)
์ค์นผ๋ผ ๋ถ์์ง์ - select ๋ถ์์ง์ ๋จ์ผ๊ฐ์ ๋ฐํ ex) ๊ณ ๊ฐ๋ณ ํ๋งค์ก์ ๋ณด์ด์์ค. ๋จ, ๊ฒฐ๊ณผ๋ ๊ณ ๊ฐ์ด๋ฆ๊ณผ ๊ณ ๊ฐ๋ณ ํ๋งค์ก์ ์ถ๋ ฅํ๋ค. select (select cname from cust where cust.cid = orders.cid) as cname, sum((select price from book where book.bid = orders.bid)) as tot_price from orders group by cid; ๋จผ์ ๊ตฌ๋งคํ cust๋ฅผ ๋ถ์์ง์๋ก ์ฐพ์, ์ดํ sum ์์์ ๋ถ์์ง์๋ก ์ฑ
๊ฐ๊ฒฉ์ ์ฐพ๊ณ sum์ผ๋ก ํฉ์ฐ sum์์ ๋ ๋ถ์์ง์๋ผ ๊ดํธ 2๋ฒ์ธ ๋ฏ/?? ์ฌ์ฉํ๋ ์ด์ : cname์ ์ถ๋ ฅํ๊ณ ์ถ์๋ฐ orders์๋ cname์ด ์กด์ฌํ์ง ์์, price์ ํฉ๊ณ๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ์๋ฐ..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๊ธฐ์ด ๋ช
๋ น ์์ (์ด์ ๋ฆฌ)
1. ์์ ๊ฐ์ releation schema๋ฅผ ๊ฐ๋ cust, book, orders ํ
์ด๋ธ์ ์์ฑํ๋ผ. create table cust{ cid int primary key, name varchar(20), addr varchar(20), hp varchar(20)}; create table book{ bid int primary key, title varchar(20), publisher varchar(20), price int}; create table orders{##ํํ ์
๋ ฅํ๊ณ ์์ฑํด์ผ ํจ oid int primary key, cid int, bid int, odate varchar(20), foreign key(cid) references cust(cid), foreign key(bid) ..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ด์ฅ ํจ์ (์ํ, ๋ฌธ์, ๋ ์ง, NULL)
์ํ ํจ์ select abs(์ซ์) ##์ ๋๊ฐ ๊ตฌํ๊ธฐ. select round(์์, ๋ช์งธ์๋ฆฌ) ##๋ฐ์ฌ๋ฆผ ๊ตฌํ๊ธฐ ๋ฌธ์ ํจ์ select replace(์์ฑ, '์ด๊ฑธ', '์ด๋ ๊ฒ') ##๋ฐ๊ฟ์ ๋ณด์ฌ๋ฌ๋ผ๋ ๊ฑฐ์ select length(์์ฑ) ##๊ธ์์ ๋ณด๊ธฐ select substring(์์ฑ, x์ถ, y์ถ) ##์ด ๊ธธ์ด๋งํผ์ ๋ฌธ์์ด ๋ฐํ ๋ ์ง ํจ์ select now(): ํ์ฌ ์๊ฐ day(now())←์ด๋ฐ ํ์์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ select adddate(์๋ ์๊ฐ ์์ฑ, ์ซ์): ์ซ์ ๋งํผ ๋ ์ง ์ง๋ ๊ฑฐ ๋ณด์ฌ์ค select now() ##ํ์ฌ ์๊ฐ day(now())←์ด๋ฐ ํ์์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ select adddate(์๋ ์๊ฐ ์์ฑ, ์ซ์) ##์ซ์ ๋งํผ ๋ ์ง ์ง๋ ๊ฑฐ ๋ณด์ฌ์ค NULL๊ฐ ์ฒ๋ฆฌ ์ฐ์ฐ..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ฐ์ดํฐ ์กฐ์์ด (insert, update, delete)
Insert๋ฌธ insert into ํ
์ด๋ธ๋ช
(์์ฑ๋ฆฌ์คํธ) values(์์ฑ๋ด์ฉ, ์์ฑ๋ด์ฉ....) ๋๋ ์ฝ์
insert into ํ
์ด๋ธ๋ช
(์์ฑ๋ฆฌ์คํธ) select ์์ฑ๋ช
, ์์ฑ๋ช
... from ๊ฐ์ ธ์ค๋ ํ
์ด๋ธ๋ช
; Update๋ฌธ update ํ
์ด๋ธ๋ช
set ์์ฑ์ด๋ฆ=๊ฐ ##์ด๊ฑธ๋ก ๋ฐ๊พผ๋ค๋ ๋ป(๋ถ์์ง์ ๊ฐ๋ฅ) where ์กฐ๊ฑด; Delete๋ฌธ delete from ํ
์ด๋ธ๋ช
where ์กฐ๊ฑด;
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ฐ์ดํฐ ์ ์์ด (create, alter, drop)
create ๋ฌธ create table ํ
์ด๋ธ์ด๋ฆ( ์์ฑ ์ ํ ์ ์ฝ์กฐ๊ฑด, ... primary key( , )); ํ๋ผ์ด๋จธ๋ฆฌ ๊ธฐ๋ณธํค ์ ์ฝ์กฐ๊ฑด์ ๋ฃ์ด๋ ๋๊ณ , ์ฌ๋ฌ๊ฐ ์ค์ ํ ๊ฑฐ๋ฉด ์์ ๊ฐ์ด ๋งจ ์๋์ ์์ฑ. ์ ์ฝ์กฐ๊ฑด์ (not null, unique, default 10000) ํ
์ด๋ธ์ ์์ฑ ์ถ๊ฐํ๊ธฐ alter table newbook add; ์์ฑ๋ช
์ ํ ์ ์ฝ์กฐ๊ฑด; ํ
์ด๋ธ ๊ตฌ์กฐ ์์ธํ๊ฒ ๋ณด๊ธฐ show create table ํ
์ด๋ธ๋ช
; ํ
์ด๋ธ ๋ณต์ฌ create table ์ํ
์ด๋ธ๋ช
select * from ์๋ณธํ
์ด๋ธ๋ช
;##๋ด์ฉ ๋ณต์ฌ(ํ๋ผ์ด๋จธ๋ฆฌ ๊ธฐ๋ณธํค ์ฌ๋ผ์ง) create table ์ํ
์ด๋ธ๋ช
like ์๋ณธํ
์ด๋ธ๋ช
;##์คํค๋ง๋ง ๋ณต์ฌ๋จ(ํ๋ผ์ด๋จธ๋ฆฌ ๊ธฐ๋ณธํค ๋จ์์์) create table ํ
์ด๋ธ์ด๋ฆ( ์์ฑ ์ ํ..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
ERROR 1052 (23000): Column 'cid' in field list is ambiguous
์๋ ์ ํ ๊ฒ ๊ฐ์๋ฐ ์ ๊ทธ๋ฌ์ง;; ํ๋๋ฐ select์์ cid๊ฐ ๋ ํ
์ด๋ธ ํจ๊ป ์๋ ๊ฑด๋ฐ ์ด๋ ์ชฝ ๊ฑธ ์ ์ธํ ๊ฑด์ง ๋ชจ๋ฅด๋๊น ์ง์ ํด์ค์ผํจ!! cust.cid๋ก cust ํ
์ด๋ธ์ ์ง์ ํด์ฃผ๋ ์๋ฃ~~
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql
mysql ๋ถ์์ง์ (where์ ์ค์ฒฉ, ์๊ด, exists)
๋ถ์์ง์ where ์ ์ ๋ค์ ์ค์ฒฉํด ์์ฑ(3~4๋ฒ๊น์ง ์ถ์ฒ) ์ต์ข
์ ์ผ๋ก ๋ณด์ด๊ณ ์ถ์ ๊ฒ์ ๋งจ ์์ ์์ฑํ๊ณ , ๋ค์ด๊ฐ๊ธฐ, ๋ค์ด๊ฐ๊ธฐ ํด์ ๊ฐ์ฅ ์ฒซ ์กฐ๊ฑด์ด ๊ดํธ ๊ฐ์ฅ ์์ ์๋๋ก. select bookname from book where price = ( select max(price) from book); ์๊ด ๋ถ์์ง์ ๋์ผํ ํ
์ด๋ธ์ b1, b2์ ์ด๋ฆ์ ์ค์ ๋น๊ต. select b1.title from book b1 where b1.price > (select avg(b2.price) from book b2 where b1.publisher = b2.publisher); exists ์กด์ฌํจ? ๋ชจ๋ ์ ํจ?(not exists) where exists (select * from orders where c..
2023.12.06
๐ฉ๐ปํ๋ก๊ทธ๋๋ฐ&DB/mysql