您的位置:威尼斯官方网站 > 威尼斯正规官网 > Python中级 —— 05访谈数据库

Python中级 —— 05访谈数据库

发布时间:2019-11-12 15:39编辑:威尼斯正规官网浏览(86)

    ** 写在前方 ------------------> **
    廖雪峰
    菜鸟

    数据库体系

    首先采取一个关全面据库。方今相近使用的关周到据库也就那样三种:

    付费的商用数据库:

    • Oracle:标准的男神;

    • SQL Server:微软自家产物,Windows定制专款;

    • DB2:IBM的付加物,听上去挺高档;

    • Sybase:曾经跟微软是好亲密的朋友,后来提到粉碎,以后家道惨淡。

    这个数据库都以不开源並且付费的,最大的收益是花了钱出了难点能够找商家消除,可是在Web的社会风气里,平时须求配置点不清的数据库服务器,当然不能够把大把大把的银两扔给厂商,所以,无论是谷歌、推特,依然本国的BAT,无黄金年代例外都选用了无需付费的开源数据库:

    无偿的开源数据库

    • MySQL:我们都在用,日常错不了;

    • PostgreSQL:学术气息有一点点重,其实挺不错,但名气未有MySQL高;

    • SQLite:嵌入式数据库,切合桌面和平运动动采取。

    作为Python开采程序猿,选取哪位无需付费数据库呢?当然是MySQL。因为MySQL普遍率最高,出了错,能够超级轻便找到消除措施。并且,围绕MySQL有一大堆监察和控制和平运动维的工具,安装和平运动用很有益。

    使用MySQL

    MySQL是Web世界中选择最成千成万的数据库服务器。SQLite的特色是轻量级、可放置,但不能够承担高并发访问,符合桌面和活动选用。而MySQL是为服务器端设计的数据库,能承当高并发访谈,相同的时候占用的内存也远远超乎SQLite。

    别的,MySQL内部有多种数据库引擎,最常用的内燃机是永葆数据库事务的InnoDB。

    安装MySQL

    可以平素从MySQL官方网站下载最新的Community Server 5.6.x版本。MySQL是跨平台的,选拔相应的平台下载安装文件,安装就可以。

    安装时,MySQL会提醒输入root用户的口令,请必需记清楚。借使怕记不住,就把口令设置为password。

    在Windows上,安装时请选用UTF-8编码,以便准确地拍卖普通话。

    在Mac或Linux上,供给编写制定MySQL的安顿文件,把数据库私下认可的编码全体制纠正为UTF-8。MySQL的铺排文件暗中认可寄存在 /etc/my.cnf或者 /etc/mysql/my.cnf

    [client]
    default-character-set = utf8
    
    [mysqld]
    default-storage-engine = INNODB
    character-set-server = utf8
    collation-server = utf8_general_ci
    

    重启MySQL后,能够透过MySQL的顾客端命令行检查编码:

    $ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor...
    ...
    
    mysql> show variables like '%char%';
    +--------------------------+--------------------------------------------------------+
    | Variable_name            | Value                                                  |
    +--------------------------+--------------------------------------------------------+
    | character_set_client     | utf8                                                   |
    | character_set_connection | utf8                                                   |
    | character_set_database   | utf8                                                   |
    | character_set_filesystem | binary                                                 |
    | character_set_results    | utf8                                                   |
    | character_set_server     | utf8                                                   |
    | character_set_system     | utf8                                                   |
    | character_sets_dir       | /usr/local/mysql-5.1.65-osx10.6-x86_64/share/charsets/ |
    +--------------------------+--------------------------------------------------------+
    8 rows in set (0.00 sec)
    

    注:假使MySQL的本子≥5.5.3,能够把编码设置为utf8mb4,utf8mb4和utf8通通合营,但它协助新型的Unicode标准,可以展现emoji字符。

    安装MySQL驱动

    由于MySQL服务器以单独的经过运营,并经过互连网对外地劳工务,所以,须要帮衬Python的MySQL驱动来连选取MySQL服务器。MySQL官方提供了mysql-connector-python驱动,可是安装的时候需求给pip命令加上参数--allow-external:

    $ pip install mysql-connector-python --allow-external mysql-connector-python

    假如上边的通令安装战败,能够施行另三个使得:

    $ pip install mysql-connector

    笔者们演示如何连接到MySQL服务器的test数据库:

    # 导入MySQL驱动:
    >>> import mysql.connector
    # 注意把password设为你的root口令:
    >>> conn = mysql.connector.connect(user='root', password='password', database='test')
    >>> cursor = conn.cursor()
    # 创建user表:
    >>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
    # 插入一行记录,注意MySQL的占位符是%s:
    >>> cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])
    >>> cursor.rowcount
    1
    # 提交事务:
    >>> conn.commit()
    >>> cursor.close()
    # 运行查询:
    >>> cursor = conn.cursor()
    >>> cursor.execute('select * from user where id = %s', ('1',))
    >>> values = cursor.fetchall()
    >>> values
    [('1', 'Michael')]
    # 关闭Cursor和Connection:
    >>> cursor.close()
    True
    >>> conn.close()
    

    是因为Python的DB-API定义都以通用的,所以,操作MySQL的数据库代码和SQLite相同。

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:Python中级 —— 05访谈数据库

    关键词: