python 은 my sql 데이터베이스 예제 코드 를 사용 합 니 다.
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]
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.