美文网首页
Python3操作MySQL数据库

Python3操作MySQL数据库

作者: 谁动了我的果果 | 来源:发表于2017-12-08 16:16 被阅读0次

    一.安装PyMySQL

    cmd

    pip install pymysql

    查看pymysql安装是否成功

    pip show pymysql

    安装pymysql

    二.创建MySQL表

    CREATE TABLE 'users'{
    'id' INT(11) NOT NULL AUTO_INCREMENT, //id值,非空,递增
    'email' VARCHAR(255) COLLATE utf8_bin NOT NULL, //email 非空
    'password' VARCHAR(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY('id')
    } ENGINE=INNODB //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
    DEFAULT CHARSET=utf8 //设置默认的编码,防止数据库中文乱码
    COLLATE=utf8_bin
    AUTO_INCREMENT=1 ;

    三.Python操作MySQL

    3.1 插入数据

    import pymysql.cursors
    // 1. 连接MySQL数据库
    connection=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='XXXX',db='数据库名称',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
    // 2. 通过cursor创建游标
    cursor=connection.cursor()
    // 3. 创建数据表
    cursor.execute("create table users(id int,email varchar(255),password(255))")
    // 4. 创建sql语句,插入一条数据,并执行
    sql="insert into 'users' ('email','password') values ('guoguoXXXX@163.com','123456')"
    cursor.execute(sql)
    //5. 修改查询条件的数据
    cursor.execute("update users set password='654321' where email='guoguoXXXX@163.com'")
    //6. 删除查询条件的数据
    cursor.execute("delete from users where password='654321'")
    //7. 关闭游标
    cursor.close()
    // 8. 提交SQL
    connection.commit()

    //9. 关闭数据库连接
    connection.close()

    cursor() 方法创建数据库游标
    execute() 方法执行SQL语句
    commit() 将数据库的操作真正的提交到数据

    3.2插入多条数据

    // 插入一条数据
    sqli="insert into user values(%s,%s,%s)"
    cursor.execute(sqli,('2','email@email.com','123456'))

    // 插入多条数据
    sqli="insert into user values(%s,%s,%s)"
    cursor.executemany(sqli,[
    ('3','email1@email.com','123456'),
    ('4','email2@email.com','123456')
    ('5','email3@email.com','123456')
    ])
    cur.close()
    conn.commit()
    conn.close()

    executemany()——可以一次插入多条值,执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。

    3.3查询数据

    import pymysql.cursors
    // 连接MySQL 数据库
    connection=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='XXXX',db='数据库名称',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
    // 通过cursor创建游标
    cursor=connection.cursor()
    // 执行数据查询
    sql="SELECT 'id','password' FROM 'users' WHERE 'email'='guoguo@163.com'"
    cursor.execute(sql)
    // 查询数据库单条数据
    result=cursor.fetchone()
    print(result)
    print("---------------------华丽分割线-----------------------")
    // 执行数据查询
    sql="SELECT 'id','password' FROM 'users'"
    cursor.execute(sql)
    // 查询数据库多条数据
    result=cursor.fetchall()
    for data in result:
    print(data)
    // 关闭数据连接
    connection.close()

    fetchone()用于查询单条数据;
    fetchall()用于查询多条数据;
    close()关闭数据连接。

    运行结果:

    {'password': '123456', 'id': 1}
    -----------华丽分割线------------
    {'password': '123456', 'id': 1}
    {'password': '654321', 'id': 2}

    四.MySQL的基本操作

    $ mysql -u root -p(有密码时)
    $ mysql -u root (无密码时)

    mysql> show databases; //查看当前所有的数据库

    mysql>use test; // 作用于test数据库

    mysql>show tables; //查看test库下面的表

    // 创建user表,name和password两个字段
    mysql>CREATE TABLE user (name VARCHAR(20),password VARCHAR(20));

    // 向user表内插入若干条数据
    mysql>insert into user values('Tom','12345');
    Query OK, 1 row affected (0.08 sec)
    mysql>insert into user values('Alen','7875');
    Query OK, 1 row affected (0.05 sec)

    // 查看user表的数据
    mysql>select * from user;
    +------+----------+
    | name | password |
    +------+----------+
    | Tom | 12345 |
    | Alen | 7875 |
    +------+----------+
    3 rows in set (0.01 sec)

    // 删除name等于Tom的数据
    mysql>delete from user where name='Tom';

    // 修改name等于Alen的password为111111
    mysql>update user set password='111111' where name='Alen';

    // 删除数据表
    drop table table_name

    // 在固定位置插入一列(在col_name1列后面插入)
    alter table table_name add column col_name varchar(20) not null after col_name1
    // 在数据表的最后一列插入
    alter table table_name add column col_name varchar(20) not null

    //每次进入数据库设置字符编码(防止中文乱码)
    set charset 'gbk';

    常用的MySQL数据库操作语句
    python2和python3的差异
    虫师博客

    相关文章

      网友评论

          本文标题:Python3操作MySQL数据库

          本文链接:https://www.haomeiwen.com/subject/mxteixtx.html