>  기사  >  백엔드 개발  >  MySQL 데이터베이스 설치 및 사용 튜토리얼

MySQL 데이터베이스 설치 및 사용 튜토리얼

Y2J
Y2J원래의
2017-05-16 13:07:451914검색

Python 웹 크롤러에서는 일반적으로 TXT 일반 텍스트로 저장되지만 동시에 WAMP(Windows, Apache, MySQL, PHP 또는 Python) 개발 웹사이트에서는 데이터베이스에 저장될 수도 있습니다. Python 웹 페이지를 통해서도 구축할 수 있으므로 이 글에서는 주로 Python이 MySQL 데이터베이스를 호출하는 것과 관련된 프로그래밍 지식에 대해 설명합니다

Python 웹 크롤러에서는 일반적으로 TXT 일반 텍스트로 저장되지만 동시에 WAMP(Windows, Apache, MySQL, PHP 또는 Python)에서는 Python을 통해 웹 페이지를 구축할 수도 있으므로 이 기사에서는 주로 Python 호출 MySQL 데이터베이스와 관련된 프로그래밍 지식에 대해 설명합니다. 다음 측면에서 설명하세요:

1. MySLQ 구성
2. SQL 문에 대한 기본 지식
3. Python으로 MySQL을 작동하는 기본 지식
4. 🎜>

1. mysql 구성

먼저 mysql-5.0.96-winx64를 다운로드하고,

설치
과정은 아래 그림과 같다. 1. MySQL 5.0 설치



2. 수동 구성, 서비스 유형, 범용 다기능 및 설치 선택 경로




3. 데이터베이스 액세스 연결 수를 15로, 포트를 3306으로 설정합니다(URL을 설정하는 데 사용됨). 코드에서) , 인코딩 방법은 utf-8




4. 기본 super의 사용자 이름과 비밀번호를 설정합니다. root 사용자로 접속 후 드디어 설치 성공



2. SQL 문의 기본지식

이후 MySQL 5.0을 성공적으로 설치하려면 데이터베이스에서 간단한 작업을 수행하십시오.

1. MySQL을 실행하고 기본 사용자 비밀번호 123456을 입력하세요


2.

데이터베이스
test01을 생성하고 데이터베이스를 사용합니다. (두 번째 호출 직접 데이터베이스 사용) create Database test01;


데이터베이스에 포함된 데이터베이스 표시: show Databases;



3. 학생 번호가 기본 키인 학생 테이블을 생성합니다.

학생 테이블 생성(사용자 이름 varchar(20),passw
ord
varchar(20),stuid int Primary key);


4. 표시하려면 테이블 구조에서 desc Student



명령문을 사용합니다. 5. 학생 테이블에 데이터

를 삽입하고
데이터를 표시합니다 쿼리


6. 테이블 삭제: drop table Student;


7.업데이트데이터
날짜 학생 설정 비밀번호='000000' 여기서 stuid='1';

8. 데이터 삭제
데이터베이스 추가, 삭제, 수정, 트랜잭션, 저장 프로시저 등의 작업도 구현할 수 있습니다. 블랙박스를 대체하려면 비주얼 소프트웨어를 설치하거나 Navicat
MySQL 소프트웨어용. 코드는 다음과 같습니다.

Enter password: ******
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| test        |
| test01       |
+--------------------+
5 rows in set (0.00 sec)

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

mysql> create table student(username varchar(20),
  ->         password varchar(20),
  ->         stuid int primary key);
Query OK, 0 rows affected (0.33 sec)

mysql> show tables;
+------------------+
| Tables_in_test01 |
+------------------+
| student     |
+------------------+
1 row in set (0.00 sec)

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES |   | NULL  |    |
| password | varchar(20) | YES |   | NULL  |    |
| stuid  | int(11)   | NO  | PRI | NULL  |    |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

mysql> insert student(username, password, stuid)
  -> values('eastmount','123456',1)
  -> ;
Query OK, 1 row affected (0.05 sec)

mysql> select * from student;
+-----------+----------+-------+
| username | password | stuid |
+-----------+----------+-------+
| eastmount | 123456  |   1 |
+-----------+----------+-------+
1 row in set (0.00 sec)

mysql> update student set password='000000' where stuid='1';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from student;
+-----------+----------+-------+
| username | password | stuid |
+-----------+----------+-------+
| eastmount | 000000  |   1 |
+-----------+----------+-------+
1 row in set (0.00 sec)

mysql> delete from student where username='eastmount';
Query OK, 1 row affected (0.08 sec)

mysql> select * from student;
Empty set (0.00 sec)

mysql>

3. MySQL을 호출하는 Python에 대한 기본 지식 일반적인 설치 방법은 다음과 같습니다. Python MySQL 라이브러리를 설치하기 위해 pip install mysql을 설치하지만 항상 오류가 보고됩니다.

일반적인 오류

예:
Microsoft Visual C++ 9.0이 필요합니다(vcvarsall.bat를 찾을 수 없음)

mysql.c(42): 치명적인 오류 C1083: 포함 파일을 열 수 없습니다: 'config- win .h': 해당 파일이나 디렉터리가 없습니다

드라이버 문제일 수 있습니다.

올바른 설치 방법: 설치를 위해 MySQL-python-1.2.3.win-amd64-py2.7.exe 파일을 다운로드하는 것이 좋습니다.
공식 홈페이지 주소: pypi.python.org/pypi/MySQL-python/
다운로드 주소: www.jb51.net/softs/73369.html

다음으로 Python 데이터베이스

API
에 대해 자세히 알아 보겠습니다. Python에서 데이터베이스에 액세스하려면
인터페이스
프로그램이 필요합니다. 인터페이스 프로그램은 액세스할 수 있는 데이터베이스 클라이언트 라이브러리(일반적으로

C 언어

로 작성됨)에 대한 인터페이스를 제공하는 Python 모듈입니다. 참고: Python 인터페이스 프로그램은 Python DB-API 사양을 준수해야 합니다. DB-API는 사양입니다. 다양한 기본 데이터베이스 시스템과 다양한 데이터베이스 인터페이스 프로그램에 일관된 액세스 인터페이스를 제공하기 위해 일련의 필수

객체

및 데이터베이스 액세스 방법을 정의합니다. DB-API는 서로 다른 데이터베이스에 대해 일관된 액세스 인터페이스를 제공하므로 서로 다른 데이터베이스 간에 코드를 쉽게 이식할 수 있습니다. 다음은 DB-API 사용방법을 간략하게 소개합니다.
1. 모듈 속성

DB-API 사양에서는 다음과 같은 기능과 속성을 제공해야 합니다. DB-API 호환 모듈 정의는 다음과 같습니다.

apilevel:模块兼容的DB-API版本号
threadsafety:线程安全级别
paramstyle:支持sql语句参数风格
connect():连接数据库
Python은 MsSQL을 호출하고 다음과 같이 MySQLdb 라이브러리를 가져와야 합니다.

2.connect( )
Function

주로 사용되는 메소드는 connect 객체입니다. connect() 메소드는 데이터베이스에 액세스하기 위한 연결 객체를 생성합니다. 해당 매개변수는 다음과 같습니다: import MySQLdb

user:Username
password:Password
host:Hostname
database:DatabaseName
dsn:Data source name
모든 인터페이스 프로그램이 MySQLdb와 같이 이 형식을 엄격하게 따르는 것은 아닙니다. .

import MySQLdb
conn = MySQLdb.connect(host='localhost', db='test01', user='root', passwd='123456', port=3306, charset='utf8')

connect() 객체 메소드는 다음과 같습니다.


close():关闭数据库连接,或者关闭游标对象
commit():提交当前事务
rollback():取消当前事务
cursor():创建游标或类游标对象
errorhandler(cxn,errcls,errval):作为已给游标的句柄

close() 메소드를 실행하면 위의 연결로 인해 개체 메서드를 더 이상 사용할 수 없습니다. 그렇지 않으면 예외가 발생합니다. commit(), 롤백() 및 커서()는 트랜잭션을 지원하는 데이터베이스에 더 의미가 있을 수 있습니다.

데이터베이스 트랜잭션
액션

)은 완전히 실행되거나 전혀 실행되지 않는 단일 논리적 작업 단위로 수행되는 일련의 작업을 의미합니다. 데이터베이스 연결이 완료되면 커서 개체를 닫은 다음 commit()을 실행하여 작업을 제출하고 연결을 닫습니다.

3.游标对象
上面说了connect()方法用于提供连接数据库的接口,如果要对数据库操作那么还需要使用游标对象。游标对象的属性和方法


fetchone():可以看作fetch(取出) one(一个),也就是得到结果集的下一行(一行)。
fetchmany(size):可以看作fetch(取出)many(多个),这里的参数是界限,得到结果集的下几行(几行)
fetchall():顾名思义,取得所有。
execute(sql):执行数据库操作,参数为sql语句。
close():不需要游标时尽可能的关闭

下面通过简单的示例进行讲解。

四. Python调用MySQL示例

在前面数据库中我们创建了数据库“test01”和表“student”,同时插入了数据。那么,怎样通过Python来显示呢?
1.查询所有数据库
首先,我们查看本地数据库中所包含的数据库名称,通过“show databases”语句。


import MySQLdb
 
try:
  conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)
  cur=conn.cursor()
  res = cur.execute('show databases')
  print res
  for data in cur.fetchall():
    print '%s' % data
  cur.close()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

其中通过链接数据库代码为:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)
访问root超级用户,其密码为“123456”,端口为“3306”,其结果如下:

如果不知道本地数据库的名称,可以通过该方法,先查询数据库中包含哪些数据库,然后再连接该数据库进行相关的操作。

2.查询表
下面介绍查询表student中数据,代码如下,代码的具体含义是通过connect()连接数据库,通过conn.cursor()定义游标,然后调用游标的excute(sql)执行数据库操作,此处为查询操作,再通过fetchall()函数获取所有数据。


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01', charset='utf8')
  cur=conn.cursor()
  res = cur.execute('select * from student')
  print u'表中包含',res,u'条数据\n'
  print u'数据如下:(姓名 密码 序号)'
  for data in cur.fetchall():
    print '%s %s %s' % data
  cur.close()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如图所示:


        对应的MySQL中的结果是一致的,下图是对应的结果。

 3.创建表
下面这段代码是创建一张教师表,主要是通过commit()提交数据。


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01', charset='utf8')
  cur=conn.cursor()
  
  #查看表
  print u'插入前包含表:'
  cur.execute('show tables')
  for data in cur.fetchall():
    print '%s' % data

  #插入数据
  sql = '''create table teacher(id int not null primary key auto_increment,
                name char(30) not null,
                sex char(20) not null
     )'''
  cur.execute(sql)

  #查看表
  print u'\n插入后包含表:'
  cur.execute('show tables')
  for data in cur.fetchall():
    print '%s' % data
  cur.close()
  conn.commit()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示,插入教师表,包含字段:教师序号(id)、教师名称(name)、教师性别(sex)。

插入数据也可以通过execute(sql)方法实现,如:
cur.execute("insert into student values( 'yxz', '111111', '10')")
但插入的新数据通常是通过变量进行赋值,而不是固定的,所以要对这条语句中的值做修改。我们可以做如下修改:


# coding:utf-8 
import MySQLdb
 
try:
  conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01')
  cur=conn.cursor()
  
  #插入数据
  sql = '''insert into student values(%s, %s, %s)'''
  cur.execute(sql, ('yxz','111111', '10'))

  #查看数据
  print u'\n插入数据:'
  cur.execute('select * from student')
  for data in cur.fetchall():
    print '%s %s %s' % data
  cur.close()
  conn.commit()
  conn.close()
except MySQLdb.Error,e:
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

输出结果如下所示:


>>> 
插入数据:
esatmount 123456 1
yangxiuzhang 123456 2
xiaoy 123456 3
yxz 111111 10
>>>

同样,对数据库的增删改插都可以进行,请读者自行阅读。
推荐资料:python使用mysql数据库 - 虫师
后面我会结合Python爬虫讲述,如何将爬取的内容存储在数据库中,如我CSDN的博客,爬取博客标题、发布时间、阅读量和评论数。

MySQL数据库中结果如下图所示:

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. Python免费视频教程

3. Python基础入门教程

위 내용은 MySQL 데이터베이스 설치 및 사용 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.