MySQL local 환경 구축 및 Pymysql(SQL-Python) 사용방법

안녕!

오늘은 MySQL에 대해 글을 올리도록 하겠습니다.

MySQL이란? 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터베이스를 관리하고 쿼리를 실행하는 데 사용됩니다. MySQL은 전 세계적으로 많은 웹 애플리케이션과 소프트웨어 시스템에서 데이터를 저장하거나 관리하기 위해 널리 사용되고 있습니다.

MySQL의 특징은 다음과 같습니다.OpenSource:GNU General Public License(GPL)아래에서 배포되는 오픈 소스 소프트웨어입니다.누구든지 무료로 사용하여 소스 코드에 액세스 할 수 있습니다RDBMS:관계형 데이터베이스에서 데이터를 테이블 형식으로 저장·관리합니다.이는 데이터의 일관성과 구조화를 제공합니다.SQL(Structured Query Language):SQL은 데이터베이스와 상호 작용하기 위한 표준화된 언어에서 데이터 삽입, 갱신, 삭제, 조회 등의 작업을 실시합니다.Table&Schema:데이터는 테이블에 저장되어 각 테이블은 필드(열)와 레코드(행)로 구성됩니다.테이블 구조는 Schema로 불리며 Database에 저장된 데이터의 구조를 정의합니다.Index:데이터베이스의 효율적인 검색 때문에 인덱스를 사용합니다.인덱스는 특정의 열 값을 재빨리 발견하는데 도움이 됩니다.Various Data types:다양한 데이터 타입을 지원하고, 텍스트, 숫자, 날짜 등 여러 종류의 데이터를 저장합니다.Access control and supplemantation:사용자와 권한을 관리하며 데이터베이스의 보완을 강화합니다.

MySQL은 Oracle에서 제공하는 프로그램으로 무료 설치가 가능합니다.아래 사이트에서 운영체제에 맞게 설치해주세요! https://dev.mysql.com/downloads/windows/installer/8.0.html

MySQL::MySQL Installer General Availability(GA)릴리스 아카이브 MySQL Installer 8.0.35주의:MySQL 8.0은 MySQL인스톨러의 최종 시리즈입니다.MySQL 8.1이후, MySQL제품의 MSI또는 Zip아카이브를 사용하고 인스톨 합니다.MySQL Server 8.1이후에도 MySQL Configurator을 번들하고 있습니다.이 툴은 dev.mysql.com에 도움이 됩니다

MySQL :: MySQL Installer General Availability(GA) 릴리스 아카이브 MySQL Installer 8.0.35 주의: MySQL 8.0 은 MySQL 설치의 마지막 시리즈입니다. MySQL 8.1 이후에는 MySQL 제품의 MSI 또는 Zip 아카이브를 사용하여 설치합니다. MySQL Server 8.1 이후에도 MySQL Configurator 를 번들로 하고 있습니다.이 툴은 dev.mysql.com 에 도움이 됩니다.

[MySQL 실행 방식] 명령 기반 실행 애플리케이션입니다.

workbench 기반 실행 어플리케이션입니다.

=>원하시는 어플리케이션을 선택하신 후 실행해 주세요.

[MySQL 워크벤치 행실]

Workbench를 실행한 후 Local instance MySQL80을 선택한 후 비밀번호 4자리를 입력합니다.Save password in vault를 선택하여 비밀번호를 저장해 줍니다. 패스워드는 앞으로 계속 입력할테니 꼭 기억해주세요!!MySQL Connections + 를 새로운 커넥션을 생성할 수 있습니다. Connection name: 원하는 이름 설정 Host: 본인 PC의 IP 주소 Port: 서버에 접속하기 위한 본인 PC의 특정 번호 Username:root => MySQL 서버에 root 권한으로 사용상기와 같이 커넥션즈가 생성되었는지 확인할 수 있습니다. 생성된 SQL을 클릭한 후 비밀번호를 입력하면 연결됩니다.[대용량 파일 Load 설정] 명령어 프롬포트(Command Prompt)를 실행시킨 후 아래 명령어를 입력하십시오.C:\Users\SAMSUNG>cd “C:/Program Files/MySQL/MySQL Server 8.0/bin”C:\プログラムファイル\MySQL\MySQL Server 8.0\bin>vlan -u root -pEnter password: **** # MySQL 밀번호력mysql> set global local_infile = 1;setglobal local_infile을 1로 설정하시면 아래와 같이 Value가 ‘OFF’에서 ‘ON’으로 변경됩니다.mysql> show variables like “local_infile”;+————- + | | Variable_name | Value | +————-++| local_infile | ON | +———+++Workbench에서 수정할 경우 Workbench에서 연결할 커넥션의 edit 커넥션에 들어갑니다.Advance 탭의 Others에 OPT_LOCAL_INFILE=1을 직접 작성하여 추가합니다.Workbench에서 수정할 경우 Workbench에서 연결할 커넥션의 edit 커넥션에 들어갑니다.Advance 탭의 Others에 OPT_LOCAL_INFILE=1을 직접 작성하여 추가합니다.[Schema 생성]1. Create a newschema를 클릭합니다.2. Name에 원하는 Schema를 입력한 후 charset은 utf8, collation은 utf8_bin으로 설정한 후 Apply를 클릭합니다.[CSV “MySQL” Import] 테이블 데이터 가져오기 마법사를 실행합니다.2. 가져올 CSV 파일을 선택합니다.3. 정상적으로 테이블 데이터를 가져오면 다음과 같은 화면이 출력되며 테이블에 데이터가 저장되어 있음을 확인할 수 있습니다.3. 정상적으로 테이블 데이터를 가져오면 다음과 같은 화면이 출력되며 테이블에 데이터가 저장되어 있음을 확인할 수 있습니다.3. 정상적으로 테이블 데이터를 가져오면 다음과 같은 화면이 출력되며 테이블에 데이터가 저장되어 있음을 확인할 수 있습니다.[Pymysql:SQL-Python 연동] vs code 실행 후 아래 코드를 순서대로 실행해 주세요.cursor 옵션에서 DictCursor를 부여하므로 키 값이 매핑되어 있는 딕셔너리 형식으로 MySQLDB에 저장되어 있는 데이터를 가져옵니다. Pymysql의 첫 번째 사용법입니다.#pymysql기본적인 사용법 1import pymysqlimport pandas as pd#MySQL접속 설정#host, user, password, db에는 접속 정보 입력 connection=pymysql.connect(host=’127.0.1′, user=’root’, password=’0520′, database=’data’, charset=”utf8″)#cursor(DB와 상호 작용할 때 디 퀘스트)#디 크레이터로 자리 매김하는 데이터를 생성할 때.cursor(pymysql.cursors.DictCursor)#SQL생성(DB에 존재하는 테이블)SQL=”’SELECT*FROM”서울시 상권 분석 서비스(상권-소득 소비)”#cursor를 이용하고 SQL실행 cursor.execute(SQL)#모든 데이터를 취득한 datas=cursor.fetchall()#insert, update, delete의 경우 자원을 닫기 전에 Commit(DB)#commitnection)#commit(. DataFrame(datas)# pymysql 기본적인 사용법 1 import pymysqlimport pandas pd #MySQL 접속설정 #host, user, password, db에는 접속정보 입력connection=pymysql.connect(host=’127.0.1′, user=’root’, password=’0520′, database=’data’, charset=”utf8″) #cursor(DB와 상호작용할 때 디퀘스트) #dicrator에 위치한다.cursor(pymysql.cursors.DictCursor) #SQL생성(DB에 존재하는 테이블) SQL=”SELECT*FROM”서울시 상권분석서비스(상권-소득소비)”#cursor를 이용하여 SQL실행 cursor.execute(SQL) #모든 데이터를 취득하는 Datas=cursor.fetchall() #insert, update, delete의 경우 리소스를 닫기 전에 Commit(DB) #commitnection) #Commitnection)Pymysql의 두 번째 사용법입니다.상기 코드에서 cursor.close(), 커넥션.close()와 같은 반복되는 코드를 제거하기 위해 with 구문을 활용할 수 있습니다.with 구문으로 먼저 올린 커넥션은 사용자가 반환하지 않아도 작업이 끝나면 자동으로 반환되므로 코드가 간결해집니다.Pymysql의 두 번째 사용법입니다.상기 코드에서 cursor.close(), 커넥션.close()와 같은 반복되는 코드를 제거하기 위해 with 구문을 활용할 수 있습니다.with 구문으로 먼저 올린 커넥션은 사용자가 반환하지 않아도 작업이 끝나면 자동으로 반환되므로 코드가 간결해집니다.##pymysql기본적인 사용법 2#MySQL데이터베이스 접속#host, user, password, db에는 접속 정보 입력 withpymysql.connect(host=”127.0.1″, user=”root”, password=”0520″, database=”data”, charset=’utf8′)as연결:#cursor생성#cursor에서 데이터 딕셔너리 옵션을 부여 cursorcursor.DictCursor#SQL생성(DB에 존재하는 테이블)SQL=”SELECT*FROM”서울시 상권 분석 서비스(상권-소득 소비)’#cursor를 이용하고 SQL실행 cursor.execute(SQL)#모든 데이터를 취득 datas=cursor.fetchall()#임포트된 데이터 확인 pd. DataFrame(datas)[Pymysql:기본 Query문 실행]CREATEid, name, asset 칼럼을 가진 test1 테이블을 만들어 보았습니다.[Pymysql:기본 Query문 실행]CREATEid, name, asset 칼럼을 가진 test1 테이블을 만들어 보았습니다.import pymysql##CREATE:이블터#MySQL이스이있습니다. connect(host=’127.0.0.1′, user=’root’, password=’0520′, database=’data’, charset=’utf8′)을 접속으로서,#커서를 추가합니다.DictCursor)SQL=””CREATE TABLE`test1′(`id`)IGINT AUTO_INCREMENT NOT NULL프라이머리 키,`name`ARCHAR(50)ULL,’자산’IGINTULL)””#커서 SQL”커서입니다.execute(SQL)Pymysql 실행결과입니다.INSER Ttest 1 테이블에 데이터를 넣어 보았습니다.##INSERT:pymysql.connect(host=’127.0.0.1′, user=’root’, password=’0520′, database=’data’, charset=’utf8′)을 접속으로서 사용하는 경우는#커서”성”(셔너리옵션)커서=connection.hention(pysql.h)으로 합니다.DictCursor)SQL=”데이터에 삽입합니다.`test1′(name, asset)VALUES(‘연윤’, 500),’지현’, 100),’정한’, 300),’비가’, 200″커서. execute(SQL)#commit, DB, connection.commit()## ## INSERT : pymysql.connect(host = ‘127.0.0.1’, user = ‘root’, password = ‘0520’, database = ‘data’, charset = ‘utf8′)를 접속으로 사용하는 경우는 #카솔 “성”(셔너리リ옵ン) 커서 = connection.hention(pysql.h)이라고 합니다.DictCursor) SQL = ” 데이터에 삽입합니다.`test1’ (name, asset) VALUES (‘연윤’, 500), ‘지현’, 100), ‘정한’, 300), ‘비가’, 200″ カーソル。execute(SQL) # commit、DB、connection.commit()SELECT test 1 테이블의 데이터를 조회해 보겠습니다.##접속에 pymysql.connect(호스트=’127.0.0.1’사용자=’root’, 패스워드=’0520′, 데이터베이스=’data’, charset=’utf8′)를 선택합니다.#커서성딕(여셔리너옵)커서=connection.html(pymysql.html).DictCursor)SQL=”’*SELECT*FROM data.test1”커서. execute(SQL)data_test=커서. fetchall()data_test를 받는다##접속에 pymysql.connect(호스트=’127.0.0.1’사용자=’root’, 패스워드=’0520′, 데이터베이스=’data’, charset=’utf8′)를 선택합니다.#커서성딕(여셔리너옵)커서=connection.html(pymysql.html).DictCursor)SQL=”’*SELECT*FROM data.test1”커서. execute(SQL)data_test=커서. fetchall()data_test를 받는다UP DATE가 연차 asset에 500원을 추가해서 업데이트 해봤습니다.####UPDATE:테이블업데이트 with pymysql.connect(host=’127.0.0.1′, user=’root’, password=’0520′, database=’data’, charset=’utf8′)as connection:#cursor생성(딕셔너리옵션 부여)cursor=connection.cursor(pymysql.cursors.DictCursor)SQL=”’UPDATE data.test1 SET asset=asset+%s WHERE name=’가연’#SQL내에서 변수 치환이 필요한 때#SQL안에 변수가 필요한 부분을%s에 변경#%s에 필요한 값을 변수에 넣어 execute할 때 함께 파라미터로서 전달 parameter=500#cursor를 이용하고 SQL실행 cursor.execute(SQL, parameter)커넥션. commit()## ## ## UPDATE : 테이블 업데이트with pymysql.connect(host = ‘127.0.0.1’,user = ‘root’,password = ‘0520’,database = ‘data’,charset = ‘utf8’) as connection: # cursor 생성(딕셔너리 옵션 부여) cursor = connection.cursor(pymysql.cursors.DictCursor) SQL = ”’UPDATE Data. test1 SET Asset = asset + %s WHERE name = ‘가연’ # SQL 내 변수 치환이 필요할 때 # SQL 내 변수가 필요한 부분을 %s로 변경 #%s에 필요한 값을 변수에 넣어 execute 할 때 함께 파라미터로 전달 parameter =가연asset500→1000DELETE 한비 데이터를 삭제합니다.####DELETE:데이터삭제 with pymysql.connect(host=’127.0.0.1′, user=’root’, password=’0520′, database=’data’, charset=’utf8′)as connection:#cursor생성(딕셔너리옵션 부여)cursor=connection.cursor(pymysql.cursors.DictCursor)SQL=”’DELETE FROM data.test1 WHERE name=%s’#SQL내의 변수가 필요한 부분을%s에 변경#%s에 필요한 값을 변수에 넣어 execute할 때 함께 파라미터로서 전달 parameter=’한빛’#cursor를 이용하고 SQL실행 cursor.execute(SQL, parameter)커넥션. commit()## ## ## DELETE : 데이터 삭제with pymysql.connect( host = ‘127.0.0.1’, user = ‘root’, password = ‘0520’, database = ‘data’, charset = ‘utf8’) as connection: # cursor 생성(딕셔너리 옵션 부여) cursor = connection.cursor(pymysql.cursors.DictCursor) SQL = ” DELETE FROM Data. test1 WHERE name = %s” # SQL 내 변수가 필요한 부분을 %s로 변경 # %s에 필요한 값을 변수로 넣어 execute 할 때 함께 파라미터로 전달 parameter = ‘한비’ #curson’을 이용하여 SQL 실행 curson’execute(SQL, per.execute)한비데이터삭제포스팅은 끝내겠습니다.감사합니다!

error: Content is protected !!