사용법: 링크 만들기
구문: 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')
사용법: 커서 만들기
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': '财务'}
사용법: SQL 문 실행
cursor.execute(sql)
사용법: SQL 문을 일괄 실행
cursor.executemany(sql,[('销售'), ('经理')])
사용법: 기본적으로 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, '测试')
사용법: 참고: 데이터를 가져올 때 다음을 수행할 수 있습니다. 다음과 같이 커서 위치를 이동하려면 scroll(num,mode)를 사용하십시오.
cursor.scroll(1,mode=‘relative’) # 현재 위치를 기준으로 이동
cursor .scroll(2,mode=‘absolute & rsquo;) # 절대 위치에 상대적 표면 구조 이동:
chestnut:
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, '公关'))
사용법: 이름에서 알 수 있듯이 모든 결과를 가져옵니다
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, '销售'))
사용법: ID 추가에서 새로 생성된 데이터를 가져옵니다. 여러 데이터가 추가되면 마지막에 삽입된 데이터의 자동 증가된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!