python操作数据库Mysql

mysql基础语法


DDL(数据定义语句)

CREATE TABLE/DATABASE (创建表单)
ALERT TABLE/DATABASE (更改表单)
DROP TABLE/DATABASE (删除表单)

DML(数据管理语句)

INSERT(增)/DELETE(删)/UPDATE(改)SELECT(查)


创建数据库并使用

一般我们用大写来写mysql预定义的关键字和保留字

-- mysql的注释写法
DROP DATABASE `mydatabase` IF EXISTS;
CREATE DATABASE `mydatabase`;
USE `mydatabase`;

建表语句

-- 创建前删除原有的表
DROP DATABASE IF EXISTS `mydatabase`;

CREATE TABLE `mytables`(
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(200) NOT NULL,
    `sex` CHAR(1) NULL,
    `time_in` DATETIME NULL
) DEFAULT CAHRSET 'UTF8'
常见数值类型

int char varchar datetime

NOT NULL : 不为空
AUTO_INCREMENT : 自增
PRIMARY KEY : 主键
DEFAULT CHARSET ‘UTF8’ : 默认字符集为‘utf-8’

插入语句

INSERT INTO `mytables` VALUE(1,'李白','剑仙','男',now());
-- now() 为mysql内置函数 表示当前时间
INSERT INTO `mytables`(`name`,`nickname`) VALUES
('关羽','二哥'),
('张飞''三哥')
;

查询语句

SELECT `id`,`name`,`nickname` FROM `mytables` where `sex`='男' ORDER BY `id` DESC
HAVING `nickname` LIMIT 0,2;
-- ORDER BY : 查询顺序 ASC正序 DESC倒序
-- LIMIT : 分页
-- HAVING : 对上面已经分组的数据进行过滤的条件 

修改语句

在进行删除或者修改表中的 数据时,必须要添加WHERE语句,否则后果自负···

UPDATE `mytables` SET `set`='女' WHERE 'sex'='男';

删除语句

DELETE FROM `students` WHERE `sex`='';

python 安装MySQLdb模块与语法


windows下安装 : pip install MySQL-python

但是经常会发现出错,这个时候可以去下载编译好的文件

下载好之后保存在你安装python的根目录下 然后运行:

pip install mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl

之后就可以大功告成了!

使用python连接mysql数据库

import MySQLdb
#获取连接
try:
    conn = MySQLdb.connect(
        host = 'localhost',
        port = 3306,
        user = 'root',
        password = '123456',
        db = 'flask_news',
        charset = 'utf8')
    #获取数据 准备SQL
    sql = 'SELECT * FROM `mydatabase`'
    #执行SQL
    cursor = conn.cursor()
    try:
        data = cursor.excute(sql)
        print(data)
        #打印结果
        rows = cursor.fetchall()
        print(cursor.description)
        for row in rows:
            print(row)
    except MySQL.Error as e:
        print('Error %d: %s' % (e.args[0], e.args[1]))
    #关闭连接
    conn.close()
except MySQLdb.Error as e:
    print('Error %d:%s' % (e.args[0], e.args[1]))
return self.con

下面是一个python操作数据库的实例:

import MySQLdb

#创建一个类,封装数据库所有的操作
class MysqlHandle(object):
    def __init__(self):
        self.get_conn()
    #获取连接
    def get_conn(self):
        try:
            self.conn = MySQLdb.connect(
                host='127.0.0.1',
                user='root',
                password='',
                db='mydatabase',
                port=3306,
                charset='utf8'
            )
        except MySQLdb.Error as e:
            print('Error:',e)

    #关闭连接
    def close_conn(self):
        try:
            if self.conn:
                self.conn.close()
        except MySQLdb.Error as e:
            print('Error',e)

    #查询单条数据
    def get_one(self):
        sql = 'SELECT * FROM `mydatabase` WHERE `sex` = %s ORDER BY `id` DESC;'
        cursor = self.conn.cursor()
        cursor.excute(sql, ('something'))
        #此时拿到的数据为元组,查询行数可以用 cursor.rowcount
        #查询数据的描述,可以用 cursor.description
        #将数据由元组转化为字典
        data = dict(zip([k[0] for k in cursor.description],cursor.fetchone()))
        cursor.close()
        self.conn.close_conn()
        return rest

    #查询多条数据 以及分页查询
    def get_more(self, page, page_size):
        offset = (page - 1) * page_size
        sql = 'SELECT * FROM `mydatabase` WHERE `sex` = %s ASC LIMIT %s %s;'
        cursor = self.conn.cursor()
        cursor.execute(sql, ('something',offset, page_size))
        rest = [dict(zip([k[0] for k in cursor.description], row)) for row in cursor.fetchall()]
        cursor.close()
        self.conn.close_conn()
        return rest

    #添加一条数据 
    def add_one(self):
        try:
        #小技巧 : 将语句变为元组,可以换行
            sql = (
            "INSERT INTO `mydatabase`(`title`) VALUE"
            "(%s);"
            )
            cursor = self.conn.cursor()
            cursor.execute(sql,('something'))
            self.conn.commit()
            cursor.close()
        except:
            print('error')
            '''
            数据回滚,是数据库中事物的执行,有一条插入失败,所有的都不插入,数据库回滚到操作之前的样子
            '''
            self.conn.rollback()
            self.close_conn()
#执行函数 操作数据库
def main():
    obj = MysqlHandle()
    obj.add_one()
'''
if __name__ == '__main__'的意思是:
当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
'''
if __name__ == '__main__'
    main()      

python操作mysql的操作大致流程就是这些,当然还有不完善的地方,想继续深入了解的话得去看官网的介绍了,在这里与各位正在学习python的猿们共勉^-^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作 MySQL 数据库可以使用多种方式,其中比较常用的是使用 PythonMySQLdb 模块。下面是一个简单的示例,演示如何使用 Python 连接 MySQL 数据库、创建表、插入数据和查询数据。 首先,需要安装 MySQLdb 模块,可以使用 pip 命令安装: ``` pip install MySQL-python ``` 接着,可以使用以下代码连接 MySQL 数据库: ```python import MySQLdb # 打开数据库连接 db = MySQLdb.connect(host="localhost", user="username", passwd="password", db="database_name") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 关闭数据库连接 db.close() ``` 在上面的代码中,需要将 `host`、`user`、`passwd` 和 `db` 分别替换为实际的数据库主机地址、用户名、密码和数据库名。 接下来,可以使用以下代码创建表: ```python # 使用 execute() 方法执行 SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS employee") # 使用 execute() 方法执行 SQL,创建一个新表 sql = """CREATE TABLE employee ( ID INT(11) NOT NULL AUTO_INCREMENT, NAME CHAR(20) NOT NULL, AGE INT(11) NOT NULL, SEX CHAR(10), INCOME FLOAT )""" cursor.execute(sql) ``` 在上面的代码中,首先使用 `DROP TABLE IF EXISTS` 语句删除名为 `employee` 的表(如果存在),然后使用 `CREATE TABLE` 语句创建一个新表。 接下来,可以使用以下代码向表中插入数据: ```python # SQL 插入语句 sql = "INSERT INTO employee(NAME, AGE, SEX, INCOME) \ VALUES ('John', 20, 'Male', 2000.00)" try: # 执行 SQL 语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 如果发生错误则回滚 db.rollback() ``` 在上面的代码中,首先定义了一个 SQL 插入语句,然后使用 `execute()` 方法执行 SQL 语句,如果执行成功则使用 `commit()` 方法提交事务,否则使用 `rollback()` 方法回滚事务。 最后,可以使用以下代码查询表中的数据: ```python # SQL 查询语句 sql = "SELECT * FROM employee" try: # 执行 SQL 语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: id = row[0] name = row[1] age = row[2] sex = row[3] income = row[4] # 打印结果 print("id=%d,name=%s,age=%d,sex=%s,income=%f" % (id, name, age, sex, income)) except: print("Error: unable to fecth data") # 关闭数据库连接 db.close() ``` 在上面的代码中,首先定义了一个 SQL 查询语句,然后使用 `execute()` 方法执行 SQL 语句,如果执行成功则使用 `fetchall()` 方法获取所有查询结果,最后使用循环遍历结果并打印出来。 以上就是使用 Python 操作 MySQL 数据库的基本示例。需要注意的是,在实际使用中还需要考虑异常处理、数据库连接池等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值