본문 바로가기
개발팁

MySQL 사용방법 & pymysql (feat.Python)

by 몸에배인매너 2022. 4. 6.

MySQL 의 기본적인 구조는 다음과 같다.

: data column(컬럼) table(표) database(스키마) database server

 

 

MySQL :: MySQL Community Downloads

The world's most popular open source database Contact MySQL  |  Login  |  Register

dev.mysql.com

MySQL을 설치하고 MySQL Command Line Client 로 실행해도 되고, 터미널에서 쓰려면 PATH경로를 추가해야한다.

내 PC 우클릭 - 속성 - 고급 시스템 설정 - 환경변수 - PATH 편집 - 설치경로(C:\Program Files\MySQL\MySQL Server 8.0\bin) 추가

Python 에서 사용하려면 가상환경에 PyMySQL 라이브러리를 설치해 주어야 한다.

mysql -u root -p                           # mysql 최상위 계정 접속
mysql -u [계정] -p [데이터베이스]           # mysql 접속
mysql -h [endpoint] -u [계정] -p            # 다른 서버의 mysql 접속

DATABASE

* 기본 DB(database) 생성, 삭제

CREATE DATABASE [DB이름];   # DB생성
DROP DATABASE [DB이름];     # DB삭제

 

import pymysql 

# 연결할 dbserver
conn = pymysql.connect(host='localhost', user='id', password='pw', charset='utf8') 
cursor = conn.cursor() 

# db 생성
sql = "CREATE DATABASE [DB이름]" 

# 생성하기
cursor.execute(sql) 

conn.commit() 
conn.close()

* DB(database) 보기

show databases;

TABLE

* Table 생성

CREATE TABLE [테이블명] (
    id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,   # id컬럼/data타입/not null/1부터 자동 증가
    title VARCHAR(255) NOT NULL,                      # title컬럼/data타입/not null
    sequence INT(1) NOT NULL,                         # sequence컬럼/data타입/not null
    type VARCHAR(20) DEFAULT 'TODO',                  # type컬럼 /data타입/null 기본값
    regdate DATETIME DEFAULT NOW(),                   # regdate컬럼 /data타입/null 기본값
    PRIMARY KEY (id)                                  # 기본키 id
    );

 

import pymysql 

# 연결할 db
conn = pymysql.connect(host='localhost', user='id', password='pw', db='DB이름', charset='utf8') 
cursor = conn.cursor() 

# 테이블 작성
sql = '''CREATE TABLE [테이블이름] ( 
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
sequence INT(1) NOT NULL,
type VARCHAR(20) DEFAULT 'TODO', 
regdate DATETIME DEFAULT NOW(),
PRIMARY KEY (id)
) ''' 

# 생성하기
cursor.execute(sql)

conn.commit() 
conn.close()

* Table 보기

use [DB이름];                  # 데이터베이스 사용
show tables;                 # 테이블 목록
desc [테이블명];             # 테이블 구조 보기
SELECT * FROM [테이블명];    # 테이블 모든 데이터 확인

DATA

* 데이터 추가, 삭제, 수정

# default 값 설정해주지 않은 곳만 데이터를 넣는다
INSERT into [테이블명] (title, sequence) values ("공부", "1");

# id 가 2인 데이터 삭제
DELETE FROM [테이블명] where id=2;

# id 가 1인 데이터의 type 속성의 값을 변경
UPDATE [테이블명] SET type = "[데이터타입]" WHERE id = 1;

 

import pymysql 

# 작성할 db
conn = pymysql.connect(host='localhost', user='id', password='pw', db='[DB이름]', charset='utf8') 
cursor = conn.cursor() 

# 데이터 작성
sql = "INSERT INTO [테이블명] (title, sequence) VALUES (%s, %s)" 

# 작성하기
cursor.execute(sql,("수학공부", "1"))
cursor.execute(sql,("영어공부", "2"))

conn.commit() 
conn.close()

 

* 데이터 검색

SELECT [컬럼속성] FROM [테이블명] WHERE [조건식];

 

import pymysql


conn = pymysql.connect(host='localhost', port=3306, db = '[DB이름]', user='id', passwd='pw', charset='utf8')
cursor = conn.cursor()

sql = 'SELECT * FROM [테이블명] where title = %s'

cursor.execute(sql,("수학공부"))

print(cursor.fetchall())

'개발팁' 카테고리의 다른 글

Python 파일 실행파일(.exe) 생성 - pyinstaller  (0) 2023.01.09
AWS S3 (feat.Python)  (0) 2022.04.08
구글 이메일 API  (1) 2022.03.29
Webpack 사용방법  (1) 2022.03.27
pipenv 가상환경  (0) 2022.03.07

댓글