>  기사  >  데이터 베이스  >  Python이 mysql 데이터베이스에 연결됩니다.

Python이 mysql 데이터베이스에 연결됩니다.

高洛峰
高洛峰원래의
2016-11-23 11:44:191163검색

이전에는 Java를 mysql 데이터베이스에 연결하는 방법을 체계적으로 배웠습니다. 이제는 Python을 할 때 데이터베이스를 사용해야하므로 데이터베이스 지식을 재구성하고 Python에서 MysqlDB 모듈의 기능과 기능에 익숙해졌습니다. 요약하자면

우선 해당 모듈을 다운로드해서 설치하면 됩니다. 다운로드 주소는 온라인에서 많이 있으니 설치도 쉽습니다. Python 설치 디렉터리에 있습니다. Lib 폴더 아래의 site-packages 폴더 아래에 있는 MySQLdb 폴더에 모듈 정의가 포함되어 있습니다. 준비가 완료되면 MySQLdb

소스 코드에서 데이터베이스 연결을 가져와야 합니다. 모듈 도입 후 데이터베이스에 연결해야 합니다. 예제 코드는 다음과 같습니다. :

db = MySQLdb.connect("localhost","root","123456","myciti" )

이 세 가지 주요 매개변수의 의미는 한눈에 명확합니다. 하나는 서버의 주소이고, 두 번째는 사용자 이름, 세 번째는 dbms 비밀번호, 네 번째는 접속할 데이터베이스입니다. 사실 연결 함수에는 이보다 더 많은 매개변수가 있지만 기본값이 있기 때문입니다. 대부분의 경우 수정할 필요가 없으므로 생략됩니다. 다음은 다음과 같습니다.

소스 코드에서는 포트 번호가 사용되지 않은 것을 확인할 수 있는데, 이는 MySQLdb의 연결 함수에서 이 매개변수의 기본값이 3306이기 때문입니다. mysql을 설치 중입니다. 데이터베이스의 포트 번호가 수정된 경우 이 매개변수의 수정된 값을 소스 코드에 추가해야 합니다.
host,连接的数据库服务器主机名,默认为本地主机(localhost)。
user,连接数据库的用户名,默认为当前用户。
passwd,连接密码,没有默认值。
db,连接的数据库名,没有默认值。
conv,将文字映射到Python类型的字典。默认为MySQLdb.converters.conversions
cursorclass,cursor()使用的种类,默认值为MySQLdb.cursors.Cursor。
compress,启用协议压缩功能。
named_pipe,在windows中,与一个命名管道相连接。
init_command,一旦连接建立,就为数据库服务器指定一条语句来运行。
read_default_file,使用指定的MySQL配置文件。
read_default_group,读取的默认组。
unix_socket,在unix中,连接使用的套接字,默认使用TCP。
port,指定数据库服务器的连接端口,默认是3306

sql문 실행

접속 후 sql문이 실행된다. 소스코드는 다음과 같다.

import MySQLdb


db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor()
sql = """문서 값에 삽입 ​​(0," woainimahah","http://www.aa.com","2012-9-8","wo","qq","skjfasklfj","2019","up")"""
시도해 보세요:
cursor.execute(sql)
db.commit()
제외:
db.rollback()
db.close

여기서 커밋하는 것을 기억해야 합니다. 제출하지 않으면 데이터베이스는 변경되지 않습니다.

SQL 문을 다른 것으로 변경하면 다음과 같은 다른 정적 작업을 수행할 수 있습니다. "id > 3인 기사에서 삭제”

선택하여 인쇄

데이터베이스에 연결하는 가장 중요한 목적은 데이터베이스에 있는 정보를 읽는 것이므로 데이터베이스에서 데이터를 얻는 방법은 무엇입니까? 효과적인 정보를 추출하는 방법은 무엇입니까? 다음 코드를 참조하세요.

다음 프로그램은 데이터베이스의 기사 테이블에 있는 모든 행의 두 번째 열에 있는 데이터를 인쇄할 수 있습니다.

import MySQLdb


db = MySQLdb .connect("localhost","root","123456","myciti" )
cursor = db.cursor()
cursor.execute("select * from article")
data =cursor.fetchone()
while data!=None:
print data[1]
data =cursor.fetchone()
db.close

다음 코드:

import MySQLdb


db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor ()
cursor.execute("기사에서 * 선택")
datas =cursor.fetchall()
데이터의 데이터:
인쇄 데이터[1]
cursor.rowcount 인쇄, "rows in tatal "
db.close

코드에서 위 함수의 차이점을 확인할 수 있습니다.

fetchone은 다음 행을 꺼내는 것입니다. 두 번째 호출은 다음 행을 가져오고 계속 아래로 이동합니다

fetchall은 데이터베이스 테이블의 모든 행의 데이터를 가져옵니다

rowcount는 행 수를 읽습니다. 데이터베이스 테이블

Java의 자리 표시자와 마찬가지로 이러한 자리 표시자는 Python에서도 동적 선택을 수행하는 데 필요합니다. 다음 코드를 참조하세요.

import MySQLdb


a = "down"
b = 4
db = MySQLdb.connect("localhost","root", " 123456","myciti" )
cursor = db.cursor()
cursor.execute("trend = '%s'이고 id가 < '%d'인 기사에서 *를 선택하세요."%(a, b ))
datas =cursor.fetchall()
데이터에 있는 데이터의 경우:
print data[1]
printcursor.rowcount,"rows in tatal"
db.close

여기의 자리 표시자와 Java의 ? 자리 표시자 사이에는 한 가지 차이점이 있습니다. 즉, C의 형식 출력과 동일한 유형을 선언한다는 것입니다. 참고로 다음 %

반환된 데이터도 목록이며, [] 연산자를 사용하여 특정 열의 데이터에 액세스할 수 있습니다.

정적 삽입과 동적 삽입

위에서 이미 정적 삽입에 대해 이야기했으니 다음에는 동적 삽입에 대해 알아보겠습니다.

동적 삽입에도 이는 비트 기호를 사용하여 달성됩니다

import MySQLdb


title = "wangxinmeiwo"
url = "henxiangni"
db = MySQLdb.connect("localhost","root","123456","myciti " )
cursor = db.cursor()
sql = """기사 값에 삽입 ​​(0,"%s","%s","2012-9-8","wo" ," qq","skjfasklfj","2019","up")"""
시도:
cursor.execute(sql%(title,url))
db.commit()
제외 :
db.rollback()
db.close

여기서 자리 표시자가 위와 같은 방식으로 사용되는 것을 볼 수 있습니다.

업데이트 작업

자리 표시자 사용은 위와 동일

import MySQLdb


title = "haoxiangni"
id= 11
db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor()
sql = """업데이트 기사 세트 제목 = " %s" 여기서 id = "%d" """
시도:
cursor.execute(sql%(title,id))
db.commit()
제외:
db .rollback()
db.close

위는 Python이 데이터베이스에 액세스하는 주요 작업입니다. 재인쇄할 소스를 명시해 주세요


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.