首页 > 编程语言 >Python工具箱系列(二十四)

Python工具箱系列(二十四)

时间:2023-02-06 14:36:33浏览次数:44  
标签:Python 数据库 demodb host user 二十四 工具箱 password democur

不管多少人黑微软,微软出品的大多数产品都能够深入人心,成为精品。在数据库领域,微软为专业人士提供SQL Server(简称mssql)。为日常办公人士提供Access与Excel这两款数据存储与分析的神器。

SQL Server是微软在数据库领域打造的旗舰产品,使用起来安全、稳定、可靠,并且对于SQL语言的语法与特性支持的非常好。长期以来由于微软敌视开源运动,所以SQL Server只能够在微软的Windows平台上运行。自从微软拥抱开源后,SQL Server能够运行在:

◆Windows平台上,这是自家平台,不用说肯定支持的最好

◆Linux平台上,笔者使用后也感觉非常流畅

◆各类云平台上,其中微软自家的Azure是首选

◆Docker中,非常方便进行小型部署、开发

 

SQL Server是微软的商业数据库管理系统,作为开发人员,可以选择其免费的“Developer”版本。强烈建议使用[官网](https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads)进行下载,安装界面如下图所示:

 

 选择“基本”即可,随后就是微软最棒的简明安装过程,就可以轻松的在本地建立一个SQL Server服务器。安装完成后,为了方便操作,建议安装微软免费的管理软件——SQL Server Management Studio (SSMS)。安装过程也非常简单。安装成功后直接打开界面,连接数据库即可。

如上图所示,如果不想使用Windows内置的身份验证(尤其是客户端与服务器端是不同的节点,或者操作系统跨平台),一定要选择“SQL Server和Windows身份验证模式",这一混合模式,否则无法登录。

 

为了能够访问SQL Server,首先安装相关包。

pip install pymssql

创建数据库与表

mssql默认的数据库为master,使用时需要创建新的数据库与表。这部分的概念与mysql/sqlite相类似。

import pymssql

host = 'LAPTOP-11TE8QTB'
user = 'sa'
password = '88488848'
dbname = 'demodb'

# 创建数据库
demodb = pymssql.connect(host=host, user=user, password=password,database='master')
democur = demodb.cursor()
demodb.autocommit(True)
democur.execute(f'create database {dbname};')
demodb.autocommit(False)
democur.close()
demodb.close()

# 创建数据库成功后创建表结构
demodb = pymssql.connect(
    host=host, user=user, password=password, database=dbname)
democur = demodb.cursor()
sql_createtable = 'create table demotb(id int identity(1,1) primary key ,pm25 float not null)'
democur.execute(sql_createtable)

demodb.commit()
democur.close()
demodb.close()

代码与mysql的非常类似,但也有几点不同:

◆由于mssql的要求,创建数据库时使用了autocommit(True)与autocommit(False)。

◆创建能够自动增长的ID,不同的数据库语法几乎都不相同。mssql使用了identity关键字。

使用游标对数据库进行查询的过程与mysql非常类似,相关代码如下。

import random
import pymssql


host = 'LAPTOP-11TE8QTB'
user = 'sa'
password = '88488848'
dbname = 'demodb'


def fakedata(maxtimes):

    # 连接数据库
    demodb = pymssql.connect(
        host=host, user=user, password=password, database=dbname)
    democur = demodb.cursor()

    # 插入模拟出来的数据。
    for _ in range(maxtimes):
        pm25 = random.uniform(0, 300)
        insertsql = f'insert into demotb(pm25) values({pm25})'
        democur.execute(insertsql)

    demodb.commit()
    democur.close()
    demodb.close()


def querydata():

    # 连接数据库
    demodb = pymssql.connect(
        host=host, user=user, password=password, database=dbname)
    democur = demodb.cursor()

    # 进行一个简单的查询,返回多个值
    selsql = 'select pm25 from demotb where pm25 >50.0'
    democur.execute(selsql)
    for i in democur:
        print(i)
    demodb.commit()
    democur.close()
    demodb.close()


def queryresult():

    # 连接数据库
    demodb = pymssql.connect(
        host=host, user=user, password=password, database=dbname)
    democur = demodb.cursor()

    # 进行一个简单的查询,返回多个值
    selsql = 'select max(pm25) from demotb'
    democur.execute(selsql)
    result = democur.fetchone()
    print(result)
    demodb.commit()
    democur.close()
    demodb.close()


fakedata(10)
querydata()
queryresult()

笔者使用的mssql所在主机名为"LAPTOP-11TE8QTB",可以替换为ip地址。类似的,也可以使用pandas进行数据库的操作。

标签:Python,数据库,demodb,host,user,二十四,工具箱,password,democur
From: https://www.cnblogs.com/shanxihualu/p/17095285.html

相关文章

  • OpenCV-Python快速入门(十二):轮廓拟合
    OpenCV-Python快速入门(十二):轮廓拟合​​前言​​​​前提条件​​​​实验环境​​​​轮廓拟合​​​​矩形包围框(cv2.boundingRect())​​​​最小包围矩形框(cv2.minAreaRe......
  • Python中monkey.patch_all()解决协程阻塞问题
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅直接参考以下实例,采用协程访问三个网站......
  • Python中文编码的问题(UTF-8和CP936的区别)
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅对于python中中文无法显示,可在首行添加......
  • Python import 上级目录中的模块
    ​​Python全栈工程师核心面试300问深入解析(2020版)----全文预览​​Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅一般加上这段代码即可imports......
  • python创建virtualenv虚拟环境
    为什么要使用虚拟环境 a、隔离项目之间的第三方包依赖,如A项目依赖django1.2.5,B项目依赖django1.3。  b、为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不......
  • Python爬虫常用的爬虫注意事项及技巧
    Python爬虫常用的爬虫技巧​​1、基本抓取网页​​​​2、使用代理IP​​​​3、Cookies处理​​​​4、伪装成浏览器​​​​5、页面解析​​​​6、验证码的处理​​​​7......
  • Jenkins2+python构建devops流水线demo分享
    #Jenkins2demo@Library('global-shared-library')_pipeline{agent{label'master'}options{disableConcurrentBuil......
  • 跟着廖雪峰学python004
    ​ ​编辑循环Python有两种循环:①for...in循环②while循环dict字典set集合for...in循环依次把list或tuple中的每个元素迭代出来names=['Michael'......
  • 一、python——变量和简单数据类型
    message="helloworld"print(message)message="Let'sgo"print(message)#title()以首字母大写显示每个单词name="zhouyuting"print(name.title())name......
  • 二、python——列表
    bicycles=["trek","cannondale","redline"]print(bicycles[0])print(bicycles[0].title())#索引为-1,返回最后一个元素print(bicycles[-1])print(bicycles[-1].......