SQL

SQL- 실습 (파이썬에서 연동)

J.H_DA 2022. 3. 10. 17:38

mysql에서 그동안 배운 sql 쿼리문으로 테이블을 만들어보고 파이썬에서 연동해보았다.

 

 

유비온 데이터 생성
create table user_info(
`ID` varchar(100) not null primary key,
`password` varchar(100) not null,
`name` varchar(100) not null,
`phone` varchar(100) not null,
`ads` varchar(100),
`gender` int not null,
`age` int not null,
`regit_date` varchar(100) 
);


insert into user_info values
("doory", "sow","이정환","010-0235-2342", "New York", 1, 26, "2022-01-23"),
("doosy", "df23f","장동민","010-0235-3342", "Busan", 1, 26, "2022-03-14"),
("cower", "wer234","신다혜","010-0269-2532", "Goyang", 2, 24, "2022-01-23"),
("kiks", "wef23","김진수","010-0255-2342", "Gangwon", 2, 23, "2022-03-14"),
("cury", "gwegw","손흥민","010-0685-3572", "Seoul", 1, 30, "2022-01-15"),
("kim", "23g324", "김주영", "010-3250-3523", "Istanbul", 2, 32, "2022-01-23");

<테이블 수정>
ALTER TABLE user_info MODIFY name varchar(32) NOT NULL;
ALTER TABLE user_info ADD doo varchar(32) NOT NULL;
ALTER TABLE user_info DROP doo ;

<컬럼 업데이트 및 삭제>
UPDATE user_info SET ads = "Goyang" where name = "김진수";
DELETE FROM user_info where name = "김진수";


<테이블 한개 더 생성>
Create table ads_info(
ads varchar(64) primary key
Register_count int not null,
Dol int not null,
Contract_type int not null);

<left 조인>
select a.ID, a.name, a.ads, 
b.Register_count, b.Dol, b.contract_type
from user_info as a left join ads_info as b on a.ads = b.ads

 

아래는 mysql을 연동시키기 위한 파이썬 코드이다.

 

import pymysql
import pandas as pd
_db = pymysql.connect(
    user = "root", # mysql 아이디
    passwd = "root", # mysql 비밀번호
    host ="localhost", # 내 컴퓨터
    db = "ubion"
)
 
 
cursor = _db.cursor(pymysql.cursors.DictCursor)
sql = "SELECT * FROM user_info"

cursor.execute(sql)
result = cursor.fetchall()
print(result)
dt= pd.DataFrame(result)
sql = "insert into user_info values(%s, %s, %s, %s, %s, %s, %s, %s)" # %s만 있다.
values = ["test6", "32632", "또치", "010-3235-3512", "Zoo", 2, 17, "2022-02-05"]
cursor.execute(sql, values)
_db.commit()
 
 
<파이썬 코드로 새로운 데이터 입력하기>
sql = "insert into user_info values(%s, %s, %s, %s, %s, %s, %s, %s)"
_id = input("ID: ")
pw = input("password: ")
name = input("name: ")
phone = input("phone: ")
ads = input("address: ")
gender = int(input("gender: "))
age = int(input("age: "))
regit_date = input("regit_date: ")

input_list=[_id, pw, name, phone, ads, gender, age, regit_date]
cursor.execute(sql, input_list)
_db.commit()
728x90

'SQL' 카테고리의 다른 글

IMPALA(임팔라)  (0) 2022.08.27
mongo db 기초  (0) 2022.03.17
파이썬을 이용한 SQL문 연습  (0) 2022.03.16