精华内容
下载资源
问答
  • python连接sqlserver,查询数据
     
    
    server= "localhost"  # 连接你的数据库的服务器地址
    user = "sa"  # 连接你的帐号
    password = "123"  # 连接你的密码
    
    conn = pymssql.connect(server, user, password, "你的目标数据库名称")  # 获取连接
    
    cursor = conn.cursor()  # 获取光标
    
    # 填写你的sql语句,我这里是查询数据
    sql = "SELECT Manufacturer,Brand from VehicleModel WHERE Model LIKE '%" + model + "%'"
    # print(sql)
    cursor.execute(sql)
    
    row = cursor.fetchall() # 获取全部查询数据
    row = cursor.fetchone() # 如果只想输出查询的第一个数据
    

    图片

    展开全文
  • 01 前言Python链接数据库的方式有几种,但是原理都是一样的,总共可以分为两个步骤,第一步是与数据库建立链接,第二步执行sql查询语句,这篇将分别介绍如何与数据库链接...

    01 前言


    Python链接数据库的方式有几种,但是原理都是一样的,总共可以分为两个步骤,第一步是与数据库建立链接,第二步执行sql查询语句,这篇将分别介绍如何与数据库链接以及如何进行sql语句查询。


    02 与数据库进行链接


    在与数据库进行链接时,主要用到两种方法,一种是pymysql.connect,另一种是create_engine。


    • pymysql.connect

    pymysql是python自带的一个库,使用前需要使用pip install pymysql安装这个库,安装完以后使用该库中的connect方法可以直接与数据库进行链接。


    
     


    
     
    # 方法一: 使用pymsql.connect方法	
    import pymysql	
    	
    # Connect to the database	
    eng = pymysql.connect(host='localhost',	
    user='user',	
    password='passwd',	
    db='db',	
    charset='utf8')	
    # user:用户名	
    # password:密码	
    # host:数据库地址/本机使用localhost	
    # db:数据库名	
    # charset:数据库编码	
    	
    # 连接sample	
    # charset='utf8'是解决中文乱码	
    eng=pymysql.connect(host="118.190.xxx.xxx",user="zhangjian",password="ZhangJian",db="demo",charset='utf8')	
    

    这样就将python与数据库进行了链接,接下来执行sql查询语句就可以将数据库中的内容读取到python中。


    • create_engine

    create_engine是sqlarchemy包内的一个模块,而sqlarchemy是Python下的一款ORM框架,建立在数据库API之上,使用关系对象映射进行数据库操作,将对象转换成SQL,使用数据库API执行SQL并获取执行结果。


    ORM是Object Relational Mapper ,是一种对象映射关系程序,比较难解释,大家有兴趣的自己去了解一下,这里只分享如何使用这个进行链接。


    
     


    
     
    # 方法二: 使用create_engine方法	
    from sqlarchemy import create_engine	
    	
    create_engine("mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]")	
    # mysql:数据库类型	
    # pymysql:驱动器类型	
    # username:用户名	
    # password:密码	
    # host:数据库地址/本机使用localhost	
    # dbname:数据库名	
    # options:数据库编码格式如:charset=utf8	
    	
    # 连接sample	
    eng = create_engine("mysql+pymysql://zhangjian:ZhangJian@118.190.xxx.xxx:3306/demo?charset=utf8")	
    

    03 执行sql语句

    
     
    
     
    # 方法一:使用pd.read_sql() 主要参数如下所示	
    pd.read_sql(	
    sql, #需要使用的sql语句或者数据表	
    con, #sqlalchemy连接引擎名称	
    index_col = None, #将被用作索引的名称	
    columns = None #当sql参数使用的是表名称是,指定需要读入的列,使用list提供	
    )	
    	
    # 方法二:使用pd.read_sql_query 主要参数如下所示	
    pd.read_sql(	
    sql, #完整的sql语句	
    con, #sqlalchemy连接引擎名称	
    index_col = None, #将被用作索引的名称	
    columns = None #当sql参数使用的是表名称是,指定需要读入的列,使用list提供	
    )	
    	
    # 方法三:使用pd.read_sql_table 主要参数如下所示	
    pd.read_sql(	
    table, #表名称	
    con, #sqlalchemy连接引擎/或者连接名称	
    index_col = None, #将被用作索引的名称	
    columns = None #当sql参数使用的是表名称是,指定需要读入的列,使用list提供	
    )	
    # 从以上方法可看出,read_sql()方法已经打包了read_sql_table() 与 read_sql_query()的所有功能,推荐直接使	
    用read_sql()方法


    pd.read_sql()方法读取数据文件

    
     


    
     
    import pandas as pd 	
    from sqlalchemy import create_engine	
    eng = create_engine("mysql+pymysql://zhangjian:ZhangJian*2018@118.190.000.111:3306/demo?charset=gbk") 	
    data = pd.read_sql(sql = 'select * from orderitem limit 10',con=eng,index_col='SDate')	
    data	
    # 输入正确的数据库新信息后,read_sql方法返回的是我们熟悉的数据框结构,可以方便浏览数据,如需查看汇总信息,修改sql语句即可。

    640?wx_fmt=png

    ▲(点击可查看大图)


    
     


    
     
    # read_sql()方法sql参数使用表名称	
    from sqlalchemy import create_engine	
    import pandas as pd	
    eng = create_engine("mysql+pymysql://zhangjian:ZhangJian*2018@118.190.000.111:3306/demo?charset=gbk") 	
    data = pd.read_sql(sql = "category",con=eng)	
    	
    # 此方法会读取指定表中的全部数据,如果表数据量比较大,会造成读取数据慢,慎用。

    640?wx_fmt=jpeg

    
     


    
     
    # 修改改数据库密码后重新连接数据库	
    # 如用户名,密码,数据库名称包含% @等特殊字符串报错如下所示:报错关键信息1045	
    eng = create_engine("mysql+pymysql://账号:密码@118.190.000.111:3306/demo?charset=gbk") 	
    data = pd.read_sql(sql = 'select * from orderitem limit 10',con=eng)	
    data	
    OperationalError                          Traceback (most recent call last)	
    	
    C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py in _wrap_pool_connect(self, fn, connection)	
       2157         try:	
    -> 2158             return fn()	
       2159         except dialect.dbapi.Error as e:
    
     



    640?wx_fmt=png

    ▲(点击可查看大图)


    
     
    
     
    # 用户名,密码,数据库名称包含特殊字符串报错解决方法	
    # 方法二:使用pymysql.connect()方法建立连接	
    import pymysql	
    eng = pymysql.connect("118.190.000.111","zhangjian","zhangjiang*2018","demo" )	
    data = pd.read_sql(sql = "select * from orderitem limit 10" ,con=eng)	
    data


    640?wx_fmt=png

    ▲(点击可查看大图)


    
     


    
     
    # pymsql.connect连接,读入指定表名称,会报错,关键信息1064	
    eng=pymysql.connect(host="118.190.000.111",user="zhagnjian",password="zhangjian*2018",db="demo" ,charset='utf8')	
    data = pd.read_sql(sql = "category",con=eng)	
    data

    640?wx_fmt=png

    ▲(点击可查看大图)

    
     
    使用connection.cursor()方法读取数据库文件	
    # 导入sql文件 使用官方文档案例方法	
    #导入数据库模块	
    import pymysql	
    # 连接数据库	
    eng = pymysql.connect("118.190.000.111","zhangjian","ZhangJian*2018","demo" )	
    # 使用 cursor() 方法创建一个游标对象 cursor	
    cursor = eng.cursor()	
    # 编写sql语句	
    sql = """	
    select * from orderitem limit 10;	
    """	
    # 使用 execute() 方法执行 SQL 查询	
    cursor.execute(sql)	
    # 使用 fetchall() 方法获取所有数据.	
    data = cursor.fetchall()	
    # 关闭数据库连接	
    eng.close()	
    # 返回元组	
    data	
    # 返回信息包括数据类型等数据列信息

    
     



    640?wx_fmt=png

    ▲(点击可查看大图)

    
     
    # 将元组转化为DataFrame	
    df2 = pd.DataFrame(data = list(data) ,columns = ['SDate', 'ShopID', 'SheetID', 'GoodsID',	
    'CateID', 'Qty', 'CostValue','SaleValue', 'OriSaleValue', 'Cost', 'Price'] )	
    df2


    640?wx_fmt=png


    04 读入数据库文件方法总结


    • 使用create_engine方法能够满足绝大部分数据库连接与操作命令;

    • 数据库连接信息包含特殊字符串,需要使用mysql.connect()作为连接方法;

    • pd.read_sql()方法读入数据库文件,返回数据框结构,可以快速浏览数据汇总;

    • pd.read_sql()使用con参数使用pymsql.connect()方法,sql参数不能直接使用表名称,需要使用完整的sql语句;

    • 使用 cursor() 方法创建游标的方法读取sql语句,返回的是包含列信息的元组,


    综上所述,在pandas框架下使用create_engine 加read_sql()方法,读取数据库文件,代码简洁,易懂,返回的是据框;此方法可避免了数据库连接工具与python间的切换时间,有利于提高工作效率。


    展开全文
  • 今天在使用SQL语句查询任务的时候发现,在数据库中可以直接执行的语句,放在程序中结果却是None,于是乎,就实践了一下,下面是具体的实践。 #!usr/bin/env python # encoding:utf-8 ''' __Author__:沂水寒城 ...

        今天在使用SQL语句做查询任务的时候发现,在数据库中可以直接执行的语句,放在程序中结果却是None,于是乎,就实践了一下,下面是具体的实践。

    #!usr/bin/env python
    # encoding:utf-8
    
    
    '''
    __Author__:沂水寒城
    功能:执行给定的查询SQL语句,并返回查询结果数据
    '''
    
    
    import sys
    import pymssql
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    
    #数据库连接配置
    config_dict={
                'user':'你的用户名',
                'password':'你的密码',
                'host':'数据库地址IP',
                'database':'数据库名称'
                }
    
    
    def SQLServer_connect(config_dict):
        '''
        SQLServer 数据库连接
        '''
        connect=pymssql.connect(**config_dict)
        print 'Connect Succesful!!!'
        return connect
    
    
    def executeSQL(config_dict,one_sql):
        '''
        执行给定的SQL语句
        '''
        rowcount=None
        try:
            connect=SQLServer_connect(config_dict)
            cursor=connect.cursor() 
            cursor.execute(one_sql)
            num=cursor.rownumber
            count=cursor.rowcount
            print 'Cursor Num is: ',num
            print 'Cursor Count is: ',count
            rowcount=cursor.fetchone()[0]
            print 'Total Records Num is: ',rowcount
        except Exception,e:
            print 'executeSQL ERROR: ',e
        finally:
            connect.close()
        return rowcount
    
    
    
    
    if __name__=='__main__':
        one_sql="SELECT COUNT(*) FROM TABLE"
        executeSQL(config_dict,one_sql)
       

    结果如下:

    Connect Succesful!!!
    Cursor Num is:  -1
    Cursor Count is:  -1
    Total Records Num is:  125789
    [Finished in 0.3s]

         之前只是简单地使用游标来取结果,所以得到的就是结果中的前两种结果,后来发现这样并不是真正的结果,这里换了一种计数方式后就可以了,记录一下。

    展开全文
  • python连接数据库并执行SQL语句

    万次阅读 2018-08-04 11:06:15
    python连接数据库并执行SQL语句 第一次发表博客,如果有什么错误请见谅 1.创建与数据库连接对象 2.建立游标对象 3.利用游标对象 执行SQL语句命令 4.#提交到数据库 5.关闭游标对象 6.关闭数据库连接 7.建立一个...

    python连接数据库并执行SQL语句

    第一次发表博客,如果有什么错误请见谅

    • 1.创建与数据库连接对象
    • 2.建立游标对象
    • 3.利用游标对象 执行SQL语句命令
    • 4.#提交到数据库
    • 5.关闭游标对象
    • 6.关闭数据库连接
    • 7.建立一个Mysqlpython 类 实现数据库的连接 关闭 和执行SQL语句操作,实现对数据库连接的封装

    个人理解

    因为在所有计算机语言中, 连接数据库是必不可少的. 所以我们需要学会怎么用python语句去实现连接数据库, 并对数据库进行操作。 因为也是在学习所以也算是记录自己的点滴

    连接数据库的操作 分为 以上我列出的几步, 第一步 也是最重要的就是连接上你的数据库。连接上你的数据库你就需要知道一些你数据库的信息。例如: 你计算机的主机号 权限用户名 密码 端口号等

    以下列举我本机的一些需要用到的信息

    数据库信息详细信息
    hostlocalhost
    userroot
    password(这个密码可以在你计算机里自己设定 或者是虚拟机里你自己设定的)一般都设置为123456
    port(端口号)3306
    database(数据库)这里就是填写你需要连接进哪个数据库的信息
    charsetutf8

    代码块

    import pymysql
    
    #1.创建与数据库连接对象
    db =pymysql.connect(host="localhost",user="root",
                       password="123456",database="db4",
                       charset="utf8")
    
    #2.利用db方法创建游标对象
    cur = db.cursor()
    
    #3.利用游标对象execute()方法执行SQL命令
    #cur.execute(";") #这里填写正确的SQL语句  例如:
    cur.execute("insert into sheng values\
                (16,300000,'台湾省');")
    #4.提交到数据库执行
    db.commit()
    print("OK")
    #5.关闭游标对象
    cur.close()
    
    #6.断开数据库连接
    db.close()
    

    也可以将自己打的连接关闭数据库 封装成一个类,这样以后就更方便使用了

    from pymysql import *
    class Mysqlpython:
        def __init__(self,database,host="localhost",user="root",
                     password="123456",port=3306,charset="utf8"):
            self.host=host
            self.user=user
            self.password=password
            self.port=port
            self.database=database
            self.charset=charset
    #数据库连接方法:  
        def open(self):
            self.db=connect(host=self.host,user=self.user,
                            password=self.password,port=self.port,
                            database=self.database,
                            charset=self.charset)
    #游标对象
            self.cur=self.db.cursor()
    #数据库关闭方法:
        def close(self):
            self.cur.close()
            self.db.close()
    #数据库执行操作方法:
        def zhixing(self,sql,L=[]):
            try:
                self.open()
                self.cur.execute(sql,L)
                self.db.commit()
                print("ok")
            except Exception as e:
                self.db.rollback()
                print("Failed",e)
            self.close()
    #数据库查询所有操作方法:    
        def all(self,sql,L=[]):
            try:
                self.open()
                self.cur.execute(sql,L)
                result=self.cur.fetchall()
                return result
            except Exception as e:
                print("Failed",e)
            self.close()
    

    这样的话 就可以在别的地方直接导入就可以使用了 (from …. import…)
    最后千万别忘了关闭数据库连接哦 ~

    展开全文
  • python语句与语法 1.python简单语句的基本介绍 >>> while True: #简单的while循环 ... reply = input('Enter text:') #调用了Input,将输入传参给reply ... if reply == 'stop': break #如果输入的是stop就退出循环...
  • Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法。 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤...
  • python——if语句

    万次阅读 多人点赞 2018-07-09 02:11:27
    if判断语句 ... 在 python 开发中,Tab 和空格不要混用 判断语句演练一需求: 1.定义一个整数变量 2.判断是否满 18 岁(&gt;=) 3.如果满 18 岁,允许进入网吧 总结: ...
  • python连接数据库执行增删查改 mysql数据库 import pymysql postgresql数据库 import psycopg2 普通含%的python语句 sql语句中 普通sql语句 select * from tables where tablename = ‘table_name’ ,所以这里该加...
  • python 执行sql语句

    千次阅读 2019-04-25 20:42:36
    python 执行sql语句 import pymysql #导入模块 def sqlvalue(): #建立连接 conn = pymysql.connect( host='test1267.db.58dns.org', port=13312, user='...
  • import pymysql import pymysql.cursors # 连接MySQL数据库 connection = pymysql.connect(host='130.52.249.115', port=3306, user='root', password='123456', db='test', charset='utf8m...
  • Python生成sql语句

    2020-05-22 17:45:26
    def generate_sql(table_name, ignore_col_set): """ 根据数据库中的列名生成字典格式的sql语句 :param table_name 待生成sql的表名 :param ignore_col_set 要... # 我写的get_conn是获取一个全局的数据库连接对象
  • Python MySQL数据库执行查询语句

    千次阅读 2019-11-27 18:20:11
    使用 MySQL 数据库模块执行查询语句,与使用 SQLite 数据库模块执行查询语句基本相似,只需注意 SQL 语句中的占位符的差别即可。例如,如下程序示范了查询 MySQL 数据库中的数据: import mysql.connector conn = ...
  • python 输出sql语句

    2014-07-01 11:01:59
    首页Python学习应用文章阅读 字体:小 中 大上一篇:Python安装mysql模块操作mysqlpython 输出sql语句日期:2014-06-26 17:43:12浏览:15次评论:0条作者:ylxhzjw评论#!/usr/bin/envpython #coding=utf-8 importMySQLdb...
  • 【2019.03.10更新版(增加与查询)】 # -*- coding: utf-8 -*- """ Created on Sun Mar 10 00:08:05 2019 @author: dell """ import cx_Oracle as db def connectOracle(): ORACLE_HOS...
  • python 之 if 语句、else语句

    万次阅读 2018-07-09 00:19:42
    1. if语句(1)if 判断语句的基本语法:if 条件: 命令1else 命令2#只有条件成立才执行命令1,否则执行命令2#注意:代码的缩进为一个 tab 键,或者四个空格(pycharm 自动帮我们增加)。在python开发中,Tab 和空格不要...
  • 1、首先要安装cx_Oracle模块,测试在python安装目录下,执行 pip install cx_Oracle 是可以安装的,但是网上说要核对Oracle的版本和python的版本,我安装之后,和python的版本是能对应起来的,可能是巧合,和Oracle...
  • python连接oracle数据库查询

    千次阅读 2018-12-19 15:34:41
    开头引入必须的插件,连接oracle需要导入cx_Oracle # -*- coding=utf8 -*- import cx_Oracle import sys,os from selenium import webdriver #编码格式,utf8 if sys.getdefaultencoding() != 'utf-8': reload(sys)...
  • python链接mongoDB查询语句的基本语法

    千次阅读 2019-04-22 16:15:32
    MongoDB链接 from pymongo import MongoClient ...# 调用server_info查询服务器状态,防止服务器异常并未连接成功 dbClient.server_info() #指定MongoDB的表名 last_col=dbClient ['数据库名称']['...
  • # Python 连接SQL server 需要引入第三方模块pymssql 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql 如安装失败,将文件拷贝到安装路径下(如下) D:\Python\Python37\Scripts DOS 窗口进入 D盘...
  • python 连接数据库执行sql 查询

    千次阅读 2017-08-30 10:22:48
    Python 连接数据库执行sql 操作
  • Python向MySQL语句中传入列表作为变量

    千次阅读 2020-05-26 11:59:08
    应用场景:使用Python连接数据库,SQL语句查询结果需要满足排除某个集合里的数据(Python中叫列表A)。 首先Python中创建列表A: A = ['LI','SONG'] SQL语句如下: SELECT FIRSTNAME FROM 表1 WHERE FIRSTNAME ...
  • python 连接 mysql 查询 数据 及 表结构

    千次阅读 2018-10-21 17:24:47
    python 链接 mysql 及查询 表结构 第一步:连接到mysql数据库 import pymysql conn = pymysql.connect(host='localhost',user='root',password='1234',db='ishop1',charset=&quot;utf8&quot;) 第二步...
  • python执行SQL语句

    千次阅读 2019-05-12 17:29:00
    1 import pymysql 2 3 conn = pymysql.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '123',db = '... 4 #创建连接连接数据库) 5 6 cursor = conn.cursor() #创建游标 7 cursor =...
  • python 执行插入语句

    千次阅读 2018-09-28 15:05:57
    # 连接到SQLite数据库 # 数据库文件是test.db # 如果文件不存在,会自动在当前目录创建: &gt;&gt;&gt; conn = sqlite3.connect('test.db') # 创建一个Cursor: &gt;&gt;&gt; cursor = conn....
  • python连接数据库

    万次阅读 多人点赞 2019-01-17 14:48:27
    一、python连接数据库 pyton连接数据库需要先安装pymysql模块:pip install pymysql 安装完成后导入pymysql模块:import pymysql python连接数据库主要分五个步骤: step1:连接数据库 step2:创建游标对象 ...
  • Python条件语句

    千次阅读 2015-08-20 10:43:41
    Python条件语句是通过一条或多条语句的执行结果(True或False)来决定执行的代码块。 可以通过下图简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null)值为True,0和null为False。 if语句...
  • web测试常用python代码——mysql连接以及语句执行 分类: Python 2012-03-05 15:07 113人阅读 评论(0) 收藏 举报 pythonmysql测试webinsertdelete [python] view plaincopyprint? #...
  • 使用python连接oracle,执行sql语句,执行结果保存在excel中,通过qq邮件发送结果到你的邮箱。方便工作。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,205
精华内容 50,482
关键字:

python连接查询语句

python 订阅