第十四章 python操作数据库(mysql, SQLite)

>>>
    了解数据库编程接口中的连接对象和游标对象
    掌握如何创建SQLite数据库
    掌握操作SQLite数据库的方法
    了解如何下载和安装MYSQL数据库
    了解安装PyMySQL的方法
    掌握如何通过PyMySql连接和创建数据库
    掌握如何操作MySql数据库

14.1 数据库编程接口
    14.1.1 连接对象
            
        a, 获取连接对象

        b, 连接对象的方法
            close()        # 关闭数据库连接
            commit()    # 提交事务
            rollback()    # 回滚事务
            cursor()    # 获取游标对象,用于数据库操作
            
    
    14.1.2 游标对象
        cursor()
        # 返回的是影响行数的统计信息
        # 常用方法:
            close(),excute(), exutemany(), fetchone(),
            fetchmany(size), fetchall(), nextset(),

    


14.2 使用SQLite
    14.2.1 创建数据库文件
        import sqlite3
        conn = sqlite3.connect('mrsoft.db')        # 没有就创建数据库
        cursor = conn.cursor();

        cursor.execute('create table user (id int(10) primary key, name varchar(20))')

        cursor.close()
        conn.close()
    14.2.2 操作数据库
        a, 新增用户数据
            import sqlite3
            conn = sqlite3.connect('mrsoft.db')
            cursor = conn.cursor();

            cursor.execute('insert into user(id, name) values ("2", "张三")' )

            cursor.close()
            conn.commit()            # 新增数据,需要提交事务(修改,删除也要)
            conn.close()
        b, 查看用户数据信息
        
            import sqlite3
            conn = sqlite3.connect('mrsoft.db')
            cursor = conn.cursor();

            cursor.execute('select * from user')
            res = cursor.fetchall()        # 返回结果元组列表,一个元组表一行数据
            # fetchone(一行数据)fetchmany(指定数量) fetchall(所有数据)
            print(res)

            cursor.close()
            conn.close()
            
    
        c, 修改用户数据
            import sqlite3
            conn = sqlite3.connect('mrsoft.db')
            cursor = conn.cursor();

            res = cursor.execute('update user set name = ? where id = ?',('王 五 ',1))
            print(res)
            res_sr = cursor.execute('select * from user')
            res = cursor.fetchall()
            print(res)

            cursor.close()
            conn.commit()
            conn.close()

        d, 删除数据
            res = cursor.execute('delete from user where id = ?',(1,))
            # 同上,改一下上面那个更新为删除就好了

        

14.3 使用MySql
    14.3.1 下载安装MySql
        a, 下载
        b, 安装
        c, 设置环境变量
        d, 启动mySql        # mysql -u root -p
        e, 使用Navicat for MySql
        
    14.3.2 安装pyMySql
        # pip install PyMySql

        
    14.3.3 连接数据库
        import pymysql

        # 打开数据库连接
        db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )

        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()

        # 使用 execute()  方法执行 SQL 查询
        cursor.execute("SELECT VERSION()")

        # 使用 fetchone() 方法获取单条数据.
        data = cursor.fetchone()

        print ("Database version : %s " % data)

        # 关闭数据库连接
        db.close()

    14.3.4 创建数据表
        
        import pymysql

        # 打开数据库连接
        db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )

        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()

        # 使用 execute() 方法执行 SQL,如果表存在则删除
        cursor.execute("DROP TABLE IF EXISTS books1")

        # 使用预处理语句创建表
        sql = """
        CREATE TABLE books1 (
          id int(8) NOT NULL AUTO_INCREMENT,
          name varchar(50) NOT NULL,
          category varchar(50) NOT NULL,
          price decimal(10,2) DEFAULT NULL,
          publish_time date DEFAULT NULL,
          PRIMARY KEY (id)
        ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
        """
        cursor.execute(sql)

        # 关闭数据库连接
        db.close()
    
    14.3.5 操作数据库
        import pymysql

        # 打开数据库连接
        db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )

        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
        # 数据列表
        data = [("零基础学Python",'Python','79.80','2018-5-20'),
                ("Python从入门到精通",'Python','69.80','2018-6-18'),
                ("零基础学PHP",'PHP','69.80','2017-5-23'),
                ("PHP项目开发实战入门",'PHP','79.80','2016-5-23'),
                ("零基础学Java",'Java','69.80','2017-5-23'),
                ]
        try:
            # 执行sql语句,插入多条数据
            cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
            # 提交数据
            db.commit()
        except:
            # 发生错误时回滚
            db.rollback()
        # 关闭数据库连接
        db.close()
    
        
        

发布了76 篇原创文章 · 获赞 0 · 访问量 7017

猜你喜欢

转载自blog.csdn.net/julicliy/article/details/104092991
今日推荐