* python용 MySql(MariaDB) 드라이버 설치 방법
라이브러리 파일 설치는
pip install mysqlclient 해주면 된다.
Python 드라이버로 연결하기 예)
import MySQLdb
conn = MySQLdb.connect(host = '127.0.0.1', user = 'root', password='123', database='test')
print(conn)
conn.close
config = {
'host':'127.0.0.1', 'user':'root', 'password':'123', 'database':'test',
'port':3306, 'charset':'utf8', 'use_unicode':True
}
* Centos7에서 python용 MySql 드라이버 설치
http://dev.mysql.com/downloads/connector/python/
select platform : Platform Independent를 선택하고 tar 파일을 다운 받아 원하는 디렉토리로 파일을 이동한다. (ex:work)
이어서 압축을 푼다.
압축을 풀고 난 후 해당 압축 폴더로 이동 한다.
[사용자명@localhost ~]$su -c 'python3.4 setup.py install'
하면 /usr/local/lib/python3.4/site-packages 에 등록 된다.
python3과 연동할 경우
[사용자명@localhost ~]$ pip install mysql-connector-python-rf
MySql or MariaDb를 설치한다.
Python3 버전에 맞는 드라이버로 연결하기 예)
import mysql.connector
conn = mysql.connector.connect(user='root', password='1234', host='127.0.0.1', database='test')
print (conn)
conn.close()
Python type SQLite type
-------------------------------------
None NULL
int INTEGER
float REAL
str TEXT
bytes BLOB
오라클을 사용할 경우 -------------------------
1. Oracle 드라이버 다운로드 사이트
http://cx-oracle.sourceforge.net/
https://pypi.python.org/pypi/cx_Oracle/5.2.1
2. 드라이버 파일 다운로드(Python 3.4 window용)
cx_Oracle-5.2.1-11g.win-amd64-py3.4.exe (md5)
3. 드라이버 파일 설치
cx_Oracle-5.2.1-11g.win-amd64-py3.4
설치위치 확인 : C:\Python34\Lib\site-packages\
5. 설치된 폴더 확인
C:\Python34\Lib\site-packages\cx_Oracle-5.2.1-py3.4.egg-info
6. Python에서 모듈 추가 및 DB 연동 객체 생성
import cx_Oracle
dsn = cx_Oracle.makedsn("HOST", PORT번호, "DB이름")
conn = cx_Oracle.connect("user", "비밀번호", dsn)
# colab에서 MySQLdb(원격 DB-MySql or MariaDB 연동) 모듈 사용 시
!sudo apt-get install python3-dev default-libmysqlclient-dev
!pip install mysqlclient
import MySQLdb
try:
conn = MySQLdb.connect(host='221.*.*.*',user='root',password='1234',database='test', charset='utf8')
print(conn)
cursor = conn.cursor()
sql = 'select * from sangdata'
cursor.execute(sql)
for data in cursor.fetchall():
#print(data)
print('%s %s %s %s'%data)
except Exception as e:
print('err :', e)
finally:
cursor.close()
conn.close()
# -------------------------------------------------------
참고 : NoSQL 데이터베이스는 확장 가능한 성능은 가졌으나, 스키마가 없는 데이터 모델에 최적화된 비관계형 데이터베이스 이다.
'''
TinyDB : NoSql의 일종인 문서형 데이터베이스 - Table schma가 없다.
Sqlite 처럼 작은 규모의 데이터베이스이다.
실무에서는 MongoDB 등이 많이 쓰이고 있다.
'''
from tinydb import TinyDB, Query
f = "test.json"
db = TinyDB(f) # test.json 파일이 생성됨
db.purge_table("mytab") # 기존 테이블 삭제
tab = db.table("mytab") # 테이블 생성
tab.insert({"name":"홍길동", "age":25})
tab.insert({"name":"고길동", "age":27})
tab.insert({"name":"나길동", "age":29})
print(tab.all()) # 전체 자료 출력
datas = Query() # 조건에 의한 출력
res = tab.search(datas.name == "고길동")
print(res[0]["name"], res[0]["age"])
print('------')
res2 = tab.search(datas.age >= 27)
for i in res2:
print(i["name"], i["age"])