python 조작 my sql 데이터베이스

1.데이터베이스 기본 작업
1.데이터베이스 에 중국 어 를 쓸 수 있 도록 하려 면 데이터 베 이 스 를 만 들 때 아래 명령 을 사용 하 십시오.create database zcl charset utf8;2.students 표 구조 보기desc students;3.students 표 구 조 를 만 드 는 문 구 를 봅 니 다.show create table students;4.데이터베이스 삭제drop database zcl;5.새 필드 만 들 기alter table students add column nal char(64);  
PS:본인 은 위 에 있 는'간단 한 해석+코드'블 로 그 를 매우 싫어 합 니 다.사실 저 는 my sql 단말기 에 많은 인 스 턴 스 를 썼 습 니 다.그러나 그 당시 컴퓨터 가 동 영상 을 보 는 소프트웨어 를 실 행 했 기 때문에 저 는 Ctrl+C/V 를 할 수 없 었 습 니 다.이제 게 을 러.하하~
2.python 연결 데이터베이스
python 3 은 my sqldb 를 지원 하지 않 습 니 다.그 대체 모듈 은 PyMySQL 이다.본 논문 의 예 는 python 3.4 환경 에 있다.
1.pymysql 모듈 설치pip3 install pymysql2.데이터베이스 연결,데이터 인 스 턴 스 삽입

import pymysql
#    ,     zcl
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#    ,        
cur = conn.cursor()
#    
reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Jack','man',25,1351234,"CN"))
reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Mary','female',18,1341234,"USA"))
conn.commit() #       
cur.close()
conn.close()
print(reCount)
결과 보기:

mysql> select* from students;
+----+------+-----+-----+-------------+------+
| id | name | sex | age | tel | nal |
+----+------+-----+-----+-------------+------+
| 1 | zcl | man | 22 | 15622341234 | NULL |
| 2 | alex | man | 30 | 15622341235 | NULL |
+----+------+-----+-----+-------------+------+
rows in set
3.데이터 가 져 오기

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
cur = conn.cursor()
reCount = cur.execute('select* from students')
res = cur.fetchone() #      
res2 = cur.fetchmany(3) #  3   
res3 = cur.fetchall() #    (    )
print(res)
print(res2)
print(res3)
conn.commit()
cur.close()
conn.close()
출력:

(1, 'zcl', 'man', 22, '15622341234', None)
((2, 'alex', 'man', 30, '15622341235', None), (5, 'Jack', 'man', 25, '1351234', 'CN'), (6, 'Mary', 'female', 18, '1341234', 'USA'))
()
3.트 랜 잭 션 스크롤 백
트 랜 잭 션 스크롤 백 은 데이터 베 이 스 를 쓰기 전에 실 행 됩 니 다.따라서 트 랜 잭 션 스크롤 백()은 인 스 턴 스 가 명령 conn.comit()를 제출 하기 전에 실 행 됩 니 다.데이터 가 제출 되 지 않 으 면 스크롤 백 할 수 있 지만 스크롤 백 후 ID 는 자동 으로 증가 합 니 다.아래 의 예 를 보십시오.
3 개의 데이터 삽입(트 랜 잭 션 스크롤 백 주의):

import pymysql
#     zcl
conn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#    ,        
cur=conn.cursor()
#    
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Jack', 'man', 25, 1351234, "CN"))
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)', ('Jack2', 'man', 25, 1351234, "CN"))
reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Mary', 'female', 18, 1341234, "USA"))
conn.rollback() #    
conn.commit() #       
cur.close()
conn.close()
print(reCount)
명령 을 실행 하지 않 은 전과 명령 을 실행 한 후(스크롤 백 동작 포함)(주의 ID 번호):위의 코드 를 실행 하지 않 은 것 은 위의 코드 를 실행 한 결과 와 같 습 니 다!!트 랜 잭 션 이 스크롤 백 되 었 기 때문에 students 표 는 데 이 터 를 추가 하지 않 습 니 다!

mysql> select* from students;
+----+------+--------+-----+-------------+------+
| id | name | sex | age | tel | nal |
+----+------+--------+-----+-------------+------+
| 1 | zcl | man | 22 | 15622341234 | NULL |
| 2 | alex | man | 30 | 15622341235 | NULL |
| 5 | Jack | man | 25 | 1351234 | CN |
| 6 | Mary | female | 18 | 1341234 | USA |
+----+------+--------+-----+-------------+------+
rows in set
명령 을 실행 한 후(스크롤 백 동작 은 포함 되 지 않 음):위의 11 줄 코드 설명 만 하면 됩 니 다.

mysql> select* from students;
+----+-------+--------+-----+-------------+------+
| id | name | sex | age | tel | nal |
+----+-------+--------+-----+-------------+------+
| 1 | zcl | man | 22 | 15622341234 | NULL |
| 2 | alex | man | 30 | 15622341235 | NULL |
| 5 | Jack | man | 25 | 1351234 | CN |
| 6 | Mary | female | 18 | 1341234 | USA |
| 10 | Jack | man | 25 | 1351234 | CN |
| 11 | Jack2 | man | 25 | 1351234 | CN |
| 12 | Mary | female | 18 | 1341234 | USA |
+----+-------+--------+-----+-------------+------+
rows in set
결론:업무 가 다시 굴 러 갔 지만 ID 가 증가 하여 스크롤 백 으로 취소 되 지 는 않 지만 데이터 의 일치 성에 영향 을 주지 않 습 니 다(바 텀 의 원 리 는 잘 모 르 겠 습 니 다~)
4.데이터 일괄 삽입

import pymysql
#     zcl
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
#    ,        
cur = conn.cursor()
li = [
 ("cjy","man",18,1562234,"USA"),
 ("cjy2","man",18,1562235,"USA"),
 ("cjy3","man",18,1562235,"USA"),
 ("cjy4","man",18,1562235,"USA"),
 ("cjy5","man",18,1562235,"USA"),
]
#    
reCount = cur.executemany('insert into students(name,sex,age,tel,nal) values(%s,%s,%s,%s,%s)', li)
#conn.rollback() #    
conn.commit() #      
cur.close()
conn.close()
print(reCount)
pycharm 에서 출력:5
mysql 터미널 디 스 플레이:

mysql> select* from students;   #     
+----+-------+--------+-----+-------------+------+
| id | name | sex | age | tel | nal |
+----+-------+--------+-----+-------------+------+
| 1 | zcl | man | 22 | 15622341234 | NULL |
| 2 | alex | man | 30 | 15622341235 | NULL |
| 5 | Jack | man | 25 | 1351234 | CN |
| 6 | Mary | female | 18 | 1341234 | USA |
| 10 | Jack | man | 25 | 1351234 | CN |
| 11 | Jack2 | man | 25 | 1351234 | CN |
| 12 | Mary | female | 18 | 1341234 | USA |
+----+-------+--------+-----+-------------+------+
rows in set


mysql> 
mysql> select* from students;   #     
+----+-------+--------+-----+-------------+------+
| id | name | sex | age | tel | nal |
+----+-------+--------+-----+-------------+------+
| 1 | zcl | man | 22 | 15622341234 | NULL |
| 2 | alex | man | 30 | 15622341235 | NULL |
| 5 | Jack | man | 25 | 1351234 | CN |
| 6 | Mary | female | 18 | 1341234 | USA |
| 10 | Jack | man | 25 | 1351234 | CN |
| 11 | Jack2 | man | 25 | 1351234 | CN |
| 12 | Mary | female | 18 | 1341234 | USA |
| 13 | cjy | man | 18 | 1562234 | USA |
| 14 | cjy2 | man | 18 | 1562235 | USA |
| 15 | cjy3 | man | 18 | 1562235 | USA |
| 16 | cjy4 | man | 18 | 1562235 | USA |
| 17 | cjy5 | man | 18 | 1562235 | USA |
+----+-------+--------+-----+-------------+------+
rows in set
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기