> 데이터 베이스 > MySQL 튜토리얼 > pymysql이 mysql 데이터베이스를 작동하는 방법

pymysql이 mysql 데이터베이스를 작동하는 방법

PHPz
풀어 주다: 2023-05-30 17:40:06
앞으로
1728명이 탐색했습니다.

1.pymysql.connent

사용법: 링크 만들기

구문: ​​conn = pymysql.connect(host=‘127.0.0.1’, port=포트 번호, user=‘데이터베이스 사용자 이름’, passwd =‘password’, db=‘데이터베이스 이름’)

conn = pymysql.connect(host='127.0.0.1', 
                 port=3306, user='root', passwd='@123456', db='db4')
로그인 후 복사

2, conn.cursor()

사용법: 커서 만들기

cursor = conn.cursor()
로그인 후 복사

커서를 사전 유형으로 설정

# 游标设置为字典类型
cursor = conn.cursor("cursor"=pymysql.cursors.DictCursor)

栗子:
sql = "select * from department;"
# 执行sql语句的函数,使用下面函数进行拼接,防止SQL注入
cursor.execute(sql)
# cursor.scroll(1,mode='relative')
result = cursor.fetchone()
print(result)
输出结果:
{'id': 1, 'title': '财务'}
로그인 후 복사

3 , 커서 .execute()

사용법: SQL 문 실행

cursor.execute(sql)
로그인 후 복사

4.cursor.executemany()

사용법: SQL 문을 일괄 실행

cursor.executemany(sql,[('销售'), ('经理')])
로그인 후 복사

5.cursor.fetchone()

사용법: 기본적으로 SQL 실행 선택은 하나의 결과만 얻습니다. 명령문을 여러 번 실행하면 데이터를 순서대로 가져올 수 있습니다

import  pymysql
# 创建链接,跟socket服务类似
conn = pymysql.connect(host='127.0.0.1', port=3306, 
                 user='root', passwd='@123456', db='db4')
# 创建游标(相当与创建一个拿数据的手)
cursor = conn.cursor()
# 创建要执行的SQL语句
sql = "select * from department;"
# 执行sql语句的函数,使用下面函数进行拼接,防止SQL注入
cursor.execute(sql)
result = cursor.fetchone()
print(result)
result = cursor.fetchone()
print(result)
result = cursor.fetchone()
print(result)
# 关闭链接
cursor.close()
conn.close()
·
输出结果:
(1, '财务')
(2, '公关')
(3, '测试')
로그인 후 복사

6.cursor.scroll()

사용법: 참고: 데이터를 가져올 때 다음을 수행할 수 있습니다. 다음과 같이 커서 위치를 이동하려면 scroll(num,mode)를 사용하십시오.

  • cursor.scroll(1,mode=‘relative’) # 현재 위치를 기준으로 이동

  • cursor .scroll(2,mode=‘absolute & rsquo;) # 절대 위치에 상대적 표면 구조 이동:

chestnut: pymysql이 mysql 데이터베이스를 작동하는 방법

1、
cursor.execute(sql)
result = cursor.fetchone()
print(result)
输出结果:
(1, '财务')
2、
cursor.execute(sql)
cursor.scroll(1,mode='absolute')
result = cursor.fetchone()
print(result)
输出结果:
(2, '公关')
3、
cursor.execute(sql)
cursor.scroll(1,mode='relative')
result = cursor.fetchone()
print(result)
输出结果:
(2, '公关')
로그인 후 복사

7,cursor.Fetchmany ()

사용법: 반환 값을 설정하기 위해 반환 횟수를 설정할 수 있습니다.cursor.fetchmany(num)

cursor.execute(sql)
# cursor.scroll(1,mode='relative')
# result = cursor.fetchone()
# print(result)
result = cursor.fetchmany(2)
print(result)
输出结果:
((1, '财务'), (2, '公关'))
로그인 후 복사

8.cursor.fetchall()

사용법: 이름에서 알 수 있듯이 모든 결과를 가져옵니다

sql = "select * from department;"
# 执行sql语句的函数,使用下面函数进行拼接,防止SQL注入
cursor.execute(sql)
# cursor.scroll(1,mode='relative')
# result = cursor.fetchone()
# print(result)
# result = cursor.fetchmany(2)
# print(result)
result = cursor.fetchall()
print(result)
输出结果:
((1, '财务'), (2, '公关'), (3, '测试'), (4, '运维'), (5, '销售'))
로그인 후 복사

9 .cursor.lastrowid()

사용법: ID 추가에서 새로 생성된 데이터를 가져옵니다. 여러 데이터가 추가되면 마지막에 삽입된 데이터의 자동 증가된 ID만 반환됩니다

PS: ID를 하나씩 가져오려면 하나씩만 삽입하면 됩니다

sql = "insert into department(title) values(%s)"

cursor.executemany(sql,[('经理')])
# 获取插入值的自增id
print(cursor.lastrowid)
# 将执行的结果提交到表中,否则表不会发生变换
conn.commit()
输出结果:
6
로그인 후 복사

10. 오늘의 연습

질문 요구 사항:

연습: 권한 관리

권한 표:
1. 주문 관리
2. 사용자 관리

3. 메뉴 관리
4. 권한 할당
5. 버그 관리
사용자 테이블: 1. Cai Xukun
                                > 그의 모든 권한을 볼 수 있습니다




질문에 대한 답변:


【1、创建权限表】

CREATE TABLE power (
	pid INT auto_increment PRIMARY KEY,
	purview	CHAR(10)
)ENGINE= INNODB DEFAULT CHARSET= utf8;

【2、创建用户表】
CREATE TABLE users (
	uid INT auto_increment PRIMARY KEY,
	username	CHAR(10)
)ENGINE= INNODB DEFAULT CHARSET= utf8;

【3、创建用户权限关系表】
CREATE TABLE use_pow (
	upid INT auto_increment PRIMARY KEY,
	power_id INT,
	user_id INT,
	UNIQUE uq_pid_uid(power_id, user_id),
	CONSTRAINT fk_pow FOREIGN KEY (power_id) REFERENCES power(pid),
	CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(uid)
)ENGINE= INNODB DEFAULT CHARSET= utf8;

py文件:
import pymysql
user = input('请输入用户名称>>>')
# 连接数据库
conn  = pymysql.connect(host='127.0.0.1', port=3306, 
                  user='root', passwd='@123456', db='db_grant')

# 创建光标
cursor = conn.cursor()

# 查询是否存在该用户
sql = "SELECT uid FROM users WHERE username = %(u)s"

cursor.execute(sql, {'u': user})
# 获取到用户的id
uid = cursor.fetchone()
# print(uid[0], type(uid[0]))
if uid:
# 这里的%s如果换成%d就会报错因为execute无论传入什么类型都要用%s来占位
sql2 = "SELECT purview from power WHERE pid in 
(SELECT power_id FROM use_pow WHERE user_id = %s)"
cursor.execute(sql2, uid[0])
result = cursor.fetchall()
print(result)
else:
print("没有该用户")
cursor.close()
conn.close()
로그인 후 복사

위 내용은 pymysql이 mysql 데이터베이스를 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿