# 1. 데이터베이스 불러오기
import pymysql
db = pymysql.connect( ##접속 edit 하면 나오는것 입력
host='localhost', # 127.0.0.1 , 0.0.0.0
port=3306,
user='root', # root 이
passwd='0000', #비밀번호 입력
db='데이터베이스명', #연결할 database 명 워크밴치에 있어야댐!!
charset='utf8'
# 2. 커서 가져오기
cusror = db.cursor()ㄷ
또는
try :
with db.cursor as cursor:
# 3. sql 테이블 만들기
sql = """
CREATE TABLE product (
PRODUCT_CODE VARCHAR(20) NOT NULL,
TITLE VARCHAR(200) NOT NULL,
ORI_PRICE INT,
DISCOUNT_PRICE INT,
DISCOUNT_PERCENT INT,
DELIVERY VARCHAR(2),
PRIMARY KEY(PRODUCT_CODE)
);
""" #<- 워크밴치 에서 처럼 생성 sql 생성
# 4. sql 구문 실행하기
cursor.execute(SQL)
# 5. sql complete ,SELECT 구문은 새로 고친것이 없기에 사용하지 않는다.
db.commit()
# 6. 종료
db.close()
또는
finally :
db.close()
# 로컬호스트 경로의 username이라는 유저에 .(전체권한)을 부여하겠다.
GRANT ALL PRIVILEGES ON . TO 'username'@'localhost';
FLUSH PRIVILEGES; # 변경된 권한을 적용
SHOW grants FOR 'username'@'localhost'; #부여된 권한을 확인
SHOW grants; # 현재 로그인한 유저의 권한을 확인
USE mysql;
DROP USER 'username'@'%';
# 2번까지 동일
# 테이블을 값 만드는 코드 작성
for i in range(10):
product_code = 215673140 + index + 1
SQL = """
INSERT INTO product VALUES
('""" + str(product_code) + """',
'스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'
);
"""
print(SQL)
cursor.execute(SQL) # 실행
sql = """
UPDATE Products SET stockQuantity = stockQuantity - %s
WHERE productID = %s
"""
cursor.execut(sql,(10,3))# 10개를 빼줘 아이디가 3번인 것에대헤
cursor.execute("SELECT * FROM 테이블명")
rows = cursor.fetchall()
for row in rows:
print(row)
,
row = cursor.fetchone()
while row is not None :
print(row)
row=cursor.fetchone()
import pymysql
db = pymysql.connect(
host='localhost', # 127.0.0.1 , 0.0.0.0
port=3306,
user='이름', # root
passwd='패스워드',
db='연결할 데이터베이스 명',
charset='utf8')
cursor = db.cursor()
import requests
from bs4 import BeautifulSoup
for page_num in range(10):
if page_num == 0:
res = requests.get('https://000000/')
else:
res = requests.get('https://0000/page'+str(page_num+1))
soup = BeautifulSoup(res.content,'html.parser')
data = soup.select('div.00-00') #다가져오는것
for 00 in 00 :
00 = 00.00('00').get_text().replace('000','').strip()#없애는과정.
00 = 00.select_one('00').get_text().replace('00:','').strip()
print(category,product)
SQL ="""INSERT INTO 00 (00,00) VALUES('00','00');""" #지정된 타입에 맞는 값
print(SQL)
cursor.execute(SQL)
db.commit()
db.close()
# SQL="""SELECT * FROM 00 WHERE CATEGORY = '00'; """
# SQL="""SELECT DISTINCT 00 FROM 00"""
SQL = """SELECT 00, COUNT(*) FROM 00 GROUP BY 00"""
cursor.execute(SQL)
rows=cursor.fetchall()
for row in rows:
print(row) # row 인덱스 넣어서 가능
db.commit()
db.close()
try:
finally:
# 파이썬에서 예외 처리시 리소스 정리를 보장하기 위해 사용하는 구조
예외가 발생하든 하지않든 finally 블록은 항상!! 실행 됩니다.
데이트 베이스 연결이 실패하여도 finally 부분은 실행이 됩니다.
LAST_INSERT_ID()
* FOREIGN KEY 로 연결되어 있는 테이블을 삽입할떄 pymysql 에서 위에 부모 테이블에 삽입후 진행하는 과정에서 부모 테이블에
새로 생성된 곳에 넣을려면 id 값에 LAST_INSERT_ID()을 넣어 주어야 한다.
WITH