2024年09月17日
--create database 数据库名字[库选项]
--库选项:用来约束数据库,分为两个选项
--字符集设定:charset/character set 具体字符集(数据存储的编码形式):常用字符集:GBK和UTF8
2024年09月17日
很多朋友其实在刚开始接触学习MySQL的时候,都会从最基本的SQL语句分类学起,知道了SQL大致就分为5类:数据查询语言(DQL
2024年09月17日
Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。本文主要介绍SpringBoot与Liquibase的集成。@pdai
2024年09月17日
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from PIL import Image
from io import BytesIO
from pptx import Presentation
from pptx.util import Inches
import pyodbc
from selenium.webdriver.chrome.service import Service as ChromeService
# SQL Server连接字符串(这里使用SQL认证)
# 注意:替换YOUR_SERVER, YOUR_DATABASE, YOUR_USERNAME, YOUR_PASSWORD以及ODBC_DRIVER_VERSION为你的实际值
# ODBC_DRIVER_VERSION应该与你的系统上安装的ODBC驱动版本相匹配
SERVER = '127.0.0.1'
DATABASE = 'uc31'
USERNAME = 'sa'
PASSWORD = '123456'
DRIVER = '{ODBC Driver 17 for SQL Server}' # 或者其他适合你系统的版本
# 连接到SQL Server数据库
connection_string = pyodbc.connect(f'DRIVER={DRIVER};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}')
# 构造连接字符串
# connection_string = f'mssql+pyodbc://{USERNAME}:{PASSWORD}@{SERVER}/{DATABASE}?driver={DRIVER}'
print (connection_string)
# 创建SQLAlchemy引擎
# engine = create_engine(connection_string)
# SQL查询
query = """SELECT r.Name,COUNT(RegionId) Num FROM dbo.Schools s
JOIN dbo.Regions r
ON s.RegionId=r.ID GROUP BY Name""" # 替换your_table为你的实际表名
df = pd.read_sql_query(query, connection_string)
# 使用pandas的read_sql_query函数执行查询
# 注意:如果表名或列名包含空格、特殊字符或保留字,可能需要使用方括号[]或引号''来包围它们
# df = pd.read_sql_query(query, engine)
# 创建图表
bar = Bar()
bar.add_xaxis(df['Name'].tolist())
bar.add_yaxis("示例数据", df['Num'].tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title="我的图表"))
# 渲染图表到HTML(实际中可能不需要,但为了展示转换过程)
bar.render('chart.html')
file_path = r'F:\python\chart.html'
# 使用Selenium将HTML图表转换为图片
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
# driver.get('file:///path/to/chart.html') # 注意:替换为你的HTML文件实际路径
driver.get(f'file:///{file_path}')
# 确保图表已完全加载(可能需要添加延时或等待元素出现)
# 这里我们简单地使用固定延时(不推荐,仅作为示例)
# import time
# time.sleep(5) # 等待5秒,确保图表加载完成
# 截图并保存为PNG
screenshot = driver.get_screenshot_as_png()
image = Image.open(BytesIO(screenshot))
# image.save('chart.png')
left, top, right, bottom = 0, 0, 840, 500 # 根据需要调整这些值
cropped_image = image.crop((left, top, right, bottom))
cropped_image.save('chart.png')
# 关闭浏览器
driver.quit()
# 创建PPT并插入图片
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5]) # 选择一个包含标题和内容的布局
left = Inches(1)
top = Inches(2)
width = Inches(8)
height = Inches(4)
slide.shapes.add_picture('chart.png', left, top, width, height)
title_shape = slide.placeholders[0] # 通常标题占位符是第一个
# 检查占位符是否是标题类型
if title_shape.is_placeholder:
if title_shape.placeholder_format.idx == 0: # 标题占位符的索引通常是0
# 设置标题文本
title_shape.text = "区域学校数量"
# 保存PPT
prs.save('demo.pptx')
# 注意:请确保清理生成的临时文件(如chart.html和chart.png),这里未包含清理代码
2024年09月17日
程序员,说到sqlserver中的复制表数据,我们一定会想到这两个语句:select into from和insert into select from
一.select into from语句(创建新表)
select into from语句用于创建一个新表,并将现有表中的数据插入到新表中,新表的结构将基于现有表的结构。
2024年09月17日
作者 | Jonathan Allen
译者 | 无明
与过去几十年出现的大多数数据库一样,SQL Server 允许开发人员通过创建函数来扩展数据库。但在即将发布的 SQL Server 2019 之前,SQL Server 对标量函数的支持存在很多问题。