MySQL 의 기본적인 구조는 다음과 같다.
: data ⊂ column(컬럼) ⊂ table(표) ⊂ database(스키마) ⊂ database server
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 |
댓글