美文网首页
从关系型数据库MySQL中读取数据

从关系型数据库MySQL中读取数据

作者: MapleStoryBoy | 来源:发表于2019-02-25 23:49 被阅读0次

    以下是python读取数据库的基本方法

    关于怎样安装配置MySQL,网上教程一堆,不作详解

    import mysql.connector #导入库

    #MySQL的基本配置

    config = {'host':'127.0.0.1',

                    'user':'root',

                    'password':'123456',

                    'database':'python_data',

                    'charset':'gb2312' #字符编码

    }

    # 建立mysql连接

    cnn = mysql.connector.connect(**config)

    cursor = cnn.cursor() # 获得游标

    # sql语句,order为目标数据表

    sql = "SELECT * FROM 'order' "

    cursor.execute(sql) # 执行sql语句

    data = cursor.fetchall() # 通过fetchall方法获得数据

    for i in data[:2]:# 打印前两条数据

        print(i)

    cursor.close() #关闭游标

    cnn.close() # 关闭连接

    上述中代码实现了python连接mysql所有数据,并打印前两条数据的功能。

    下面我们来介绍mysql语句的其他的一些方法:

    1、只查询前N条数据而非全部数据行记录

        SELECT * FROM 'order' LIMIT 100;

    LIMIT为限制的数据记录方法,语法为limit m,n 意思是从第m到n-1条数据。

      SELECT * FROM 'order' LIMIT 11,10;

    2、只查询特定列(而非全部列)的数据

    示列:只查询total_amount和order_id两列数据

      SELECT total_amount,order_id FROM 'order';

    3、查询特定列去重后的数据

    示例:查询针对user_id去重后的数据

      SELECT DISTINCT user_id FROM 'order';

    关键词DISTINCT用于返回唯一不同的值,后面接字段名,即要去重的字段。

    4、查询带有一个条件的数据

    示例:查询total_amount<100的所有数据

      SELECT * FROM 'order' WHERE total_amount < 100;

    WHERE是条件关键字,后面接具体条件

    5、查询带有多个条件(同时满足)的所有数据

    示例:查询total_amount<100且status为REMOVED的所有数据

      SELECT * FROM  'order' WHERE total_amount <100 and  'status' = 'REMOVED';

    6、查询带有多个条件(满足任意一个)的所有数据

    示例:查询total_amount<100或status为REMOVED的所有数据

    SELECT * FROM  'order' WHERE total_amount <100 or  'status' = 'REMOVED';

    7、查询特定条件值在某个值域范围的数据

    示例:查询status的值为REMOVED或NO_PENDING_ACTION或PENDING_ORDER_CONFIRM

      SELECT * FROM 'order' WHERE 'status' in('REMOVED','NO_PENDING_ACTION','PENDING_ORDER_CONFIRM');

    8、使用正则表达式查询具有复杂条件的数据

    示例:查询user_id以106开头且order_id包含04的所有订单数据

      SELECT * FROM 'order' WHERE user_id LIKE '106%' and order_id LIKE '%04%';

    关键字LIKE连接不同的正则语法,后面接具体的匹配模式。

    9、将查询到的数据倒序排列

    示例:将total_amount金额在10-100之间的所有数据按照定单ID倒序排列

      SELECT * FROM 'order' WHERE 10 < total_amount < 100 ORDER BY order_id DESC;

    在查询表达式ORDER BY的结尾,通过使用DESC来表示倒序排列,省略的话默认使用ASC正序排列。

    10、查询指定列中包含空值的所有数据

    示例:查询order_id不为空的所有数据

      SELECT * FROM 'order' WHERE order_id IS NOT NULL;

    IS NULL表示为空,IS NOT NULL表示为非空。

    当然还有其他的查询方法,欢迎补充,以上总结十条常用方法。

    相关文章

      网友评论

          本文标题:从关系型数据库MySQL中读取数据

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