python 은 my sql 데이터베이스 예제 코드 를 사용 합 니 다.

9634 단어 pythonmysql
mysql 설치
windows 사용자 라면 my sql 의 설치 가 매우 간단 합 니 다.설치 파일 을 직접 다운로드 하고 설치 파일 을 더 블 클릭 하여 한 걸음 한 걸음 조작 하면 됩 니 다.
Linux 의 설 치 는 더욱 간단 할 수 있 습 니 다.설치 패 키 지 를 다운로드 하여 설치 하 는 것 을 제외 하고 일반적인 Liux 창고 에 my sql 이 있 습 니 다.우 리 는 하나의 명령 만 통 해 설 치 를 다운로드 할 수 있 습 니 다.
Ubuntu\deepin

 >>sudo apt-get install mysql-server 
 >>Sudo apt-get install mysql-client 
centOS/redhat

>>yum install mysql
둘째,MySQL-python 설치
python 이 my sql 을 조작 할 수 있 도록 하려 면 MySQL-python 드라이브 가 필요 합 니 다.python 이 my sql 을 조작 하 는 데 없어 서 는 안 될 모듈 입 니 다.
다운로드 주소:https://pypi.python.org/pypi/MySQL-python/
MySQL-python-1.2.5.zip 파일 을 다운로드 한 후 바로 압축 을 풀 수 있 습 니 다.MySQL-python-1.2.5 디 렉 터 리 에 들 어가 기:

>>python setup.py install
테스트
테스트 는 매우 간단 합 니 다.MySQLdb 모듈 이 정상적으로 가 져 올 수 있 는 지 확인 하 십시오.

fnngj@fnngj-H24X:~/pyse$ python 
Python 2.7.4 (default, Sep 26 2013, 03:20:56) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb 
오류 알림 없 음 MySQLdb 모듈 을 찾 을 수 없습니다.OK 를 설치 하 는 것 을 설명 합 니 다.다음은 python 으로 데이터 베 이 스 를 조작 하기 전에 mysql 의 기본 동작 을 되 돌아 볼 필요 가 있 습 니 다.
4.my sql 의 기본 동작

$ mysql -u root -p (    )
 
$ mysql -u root   (    )

mysql> show databases; //           
+--------------------+
| Database      |
+--------------------+
| information_schema |
| csvt        |
| csvt04       |
| mysql       |
| performance_schema |
| test        |
+--------------------+
6 rows in set (0.18 sec)

mysql> use test;  //   test   
Database changed
mysql> show tables;  //  test     
Empty set (0.00 sec)

//  user ,name  password     
mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); Query OK, 0 rows affected (0.27 sec)

// user         
mysql> insert into user values('Tom','1321');
Query OK, 1 row affected (0.05 sec)

mysql> insert into user values('Alen','7875');
Query OK, 1 row affected (0.08 sec)

mysql> insert into user values('Jack','7455');
Query OK, 1 row affected (0.04 sec)

//  user    
mysql> select * from user;
+------+----------+
| name | password |
+------+----------+
| Tom | 1321   |
| Alen | 7875   |
| Jack | 7455   |
+------+----------+
3 rows in set (0.01 sec)

//  name   Jack   
mysql> delete from user where name = 'Jack';
Query OK, 1 rows affected (0.06 sec)

//  name  Alen  password   1111
mysql> update user set password='1111' where name = 'Alen';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0

//     
mysql> select * from user;
+--------+----------+
| name  | password |
+--------+----------+
| Tom  | 1321   |
| Alen  | 1111   |
+--------+----------+
3 rows in set (0.00 sec) 
5.python 작업 my sql 데이터베이스 기반

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#     
#cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#      
#cur.execute("insert into student values('2','Tom','3 year 2 class','9')")


#         
#cur.execute("update student set class='3 year 1 class' where name = 'Tom'")

#         
#cur.execute("delete from student where age='9'")

cur.close()
conn.commit()
conn.close() 


>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root', passwd='123456',db ='test',)

Connect()방법 은 데이터베이스 연결 을 만 드 는 데 사 용 됩 니 다.사용자 이름,비밀번호,호스트 등 인 자 를 지정 할 수 있 습 니 다.
이것 은 데이터베이스 에 연 결 된 것 일 뿐 데이터 베 이 스 를 조작 하려 면 커서 를 만들어 야 합 니 다.

>>> cur = conn.cursor()
가 져 온 데이터베이스 연결 conn 의 cursor()방법 으로 커서 를 만 듭 니 다.

>>> cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
커서 cur 작업 execute()방법 을 통 해 순수한 sql 문 구 를 쓸 수 있 습 니 다.execute()방법 에 sql 문 구 를 써 서 데 이 터 를 조작 합 니 다.

>>>cur.close()
cur.close()커서 닫 기

>>>conn.commit()
conn.comit()방법 은 사물 을 제출 할 때 데이터베이스 에 데 이 터 를 삽입 할 때 반드시 이 방법 이 있어 야 합 니 다.그렇지 않 으 면 데이터 가 진정 으로 삽입 되 지 않 습 니 다.

>>>conn.close()
Conn.close()데이터베이스 연결 닫 기
6.데이터 삽입
위의 execute()방법 에 순수한 sql 문 구 를 써 서 데 이 터 를 삽입 하 는 것 은 불편 합 니 다.예:

>>>cur.execute("insert into student values('2','Tom','3 year 2 class','9')")
새로운 데 이 터 를 삽입 하려 면 이 문장의 값 을 수정 해 야 합 니 다.우 리 는 다음 과 같은 수정 을 할 수 있다.

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#      
sqli="insert into student values(%s,%s,%s,%s)"
cur.execute(sqli,('3','Huhu','2 year 1 class','7'))

cur.close()
conn.commit()
conn.close() 



데이터 시트 에 한 번 에 여러 개의 값 을 삽입 하려 면?
 

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#        
sqli="insert into student values(%s,%s,%s,%s)"
cur.executemany(sqli,[
  ('3','Tom','1 year 1 class','6'),
  ('3','Jack','2 year 1 class','7'),
  ('3','Yaheng','2 year 2 class','7'),
  ])

cur.close()
conn.commit()
conn.close() 

executemmany()방법 은 한 번 에 여러 개의 값 을 삽입 하여 하나의 sql 문 구 를 실행 할 수 있 으 나 매개 변수 목록 의 매개 변 수 를 반복 하여 영향 을 받 는 줄 수 를 되 돌려 줍 니 다.
7.조회 데이터
아마도 당신 은 이미 python 에서 통과 하려 고 시 도 했 을 것 입 니 다.

>>>cur.execute("select * from student")
데이터 시트 의 데 이 터 를 조회 하 러 왔 으 나 표 의 데 이 터 를 인쇄 하지 않 아 실 망 스 러 웠 다.
이 문구 가 얻 은 것 이 무엇 인지 살 펴 보 자.

>>>aa=cur.execute("select * from student")
 
>>>print aa

5
그것 이 얻 은 것 은 단지 우리 의 표 에 몇 개의 데이터 가 있 을 뿐이다.그러면 어떻게 해야만 표 중의 데 이 터 를 얻 을 수 있 습 니까?python 셸 진입

>>> import MySQLdb
>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root',  passwd='123456',db ='test',)
>>> cur = conn.cursor()
>>> cur.execute("select * from student")
5L
>>> cur.fetchone()
(1L, 'Alen', '1 year 2 class', '6')
>>> cur.fetchone()
(3L, 'Huhu', '2 year 1 class', '7')
>>> cur.fetchone()
(3L, 'Tom', '1 year 1 class', '6')
...
>>>cur.scroll(0,'absolute') 
fetchone()방법 은 우리 가 표 의 데 이 터 를 얻 는 데 도움 을 줄 수 있 지만,매번 cur.fetchone()을 실행 할 때마다 얻 은 데 이 터 는 다르다.다시 말 하면 나 는 한 번 실행 하지 않 았 다.커서 는 표 의 첫 번 째 데이터 에서 다음 데이터 의 위치 로 이동 하기 때문에,내 가 다시 실행 할 때 얻 은 것 은 두 번 째 데이터 이다.
scroll(0,'absolute')방법 은 커서 를 표 의 첫 번 째 데이터 로 찾 을 수 있 습 니 다.
아니면 우리 가 원 하 는 결 과 를 해결 하지 못 했 습 니까?어떻게 표 의 여러 데 이 터 를 얻 고 인쇄 합 니까?

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#          
aa=cur.execute("select * from student")
print aa

#         
info = cur.fetchmany(aa)
for ii in info:
  print ii
cur.close()
conn.commit()
conn.close() 
이전 print aa 를 통 해 현재 표 에 5 개의 데이터 가 있 음 을 알 수 있 습 니 다.fetchmany()방법 은 여러 개의 데 이 터 를 얻 을 수 있 지만 지정 한 데이터 의 줄 수 를 필요 로 합 니 다.하나의 for 순환 을 통 해 여러 개의 데 이 터 를 출력 할 수 있 습 니 다!실행 결 과 는 다음 과 같 습 니 다.

5
(1L, 'Alen', '1 year 2 class', '6')
(3L, 'Huhu', '2 year 1 class', '7')
(3L, 'Tom', '1 year 1 class', '6')
(3L, 'Jack', '2 year 1 class', '7')
(3L, 'Yaheng', '2 year 2 class', '7')
[Finished in 0.1s] 

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기