SQL福袋送给2022的我们

motangup 秀才 2022-01-13 14:41:55

正当人们喜迎2022新年的时刻,防不胜防的新冠病毒突然在西安出现,发展迅猛,整个西安按下了暂停键。封闭在家的日子,最近在学习Mysql,刚好墨天轮推出新年SQL“祝福”大赛,就拿Mysql的环境试试手,出来的效果感觉可以拿出来当一个吉祥物祝大家新年快乐,虎年行大运!

 

看到活动规则之后,对于绘制2022年新年福字的大致思路就是:

(1)找一个好看的图,转成灰度图或二位图

(2)转化之后的图遍历循环添加进数据库表当中

(3)对最后的结果直接使用select查询显示

 

按照这个思路,一步一步实现,中间也借鉴了网友的一些方法,虽然碰到了一些问题,后面也都顺利解决了。

下面先贴图(第一个为原图,后一个为SQL查询在xshell里的显示效果):

 

 

第一步:转为灰度图

第一步:转为灰度图

from PIL import Image
img = Image.open('E:\\python学习\\py福字\\福.jpg')  
# 模式L”为灰色图像
Img = img.convert('L')
Img.save("E:\\python学习\\py福字\\福1.jpeg")

 

第二步:通过python编程将图片数据插入至数据库,在这之前在mysql库中创建了表Images

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb import os from PIL import Image def init(): # 打开数据库连接 db = MySQLdb.connect(host="127.0.0.1", port=3307, user="root", passwd="", db="mysql",charset='utf8' ) #连接到数据库 # 使用cursor()方法获取操作游标  cursor = db.cursor() # SQL 插入语句 sql = "INSERT INTO Images(Data) VALUES " img=Image.open("/tmp/sympy/福1.jpeg") img=img.resize((130,219)) w,h=img.size for c in range(h): f="('"; for j in range(w): if(img.getpixel((j,c))>100): f+=(' ') else: f+=('**') if j==w-1: f+="')" sql +=f+','; try: # 执行sql语句 sql=sql.rstrip(',') cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() db.close() if __name__=="__main__": init()

 

第三步:在mysql数据库中查询并呈现福字,因为在xshell里运行,所以将会话属性更改了一下,背景是红色,文字设成了黄色,典型的具有中国特色的西红柿鸡蛋色,哈哈,以下为SQL绘制的福袋,希望大家喜欢,有点大,请ctrl+向下滚轮。

use mysql;
select data from Images;

在SQL中的显示

mysql> select data from Images;
+------------------------------------------------------------------------------------------------------------------------------------+
| data                                                                                                                               |
+------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                    |
|                                                                       **                                                           |
|                                         **      ****        ********            ****  ****                                         |
|                                         **      **    **                  ******        ****      ****                             |
|                           **    ****  **  ****      ************  **********************  ******      **                           |
|                         **        ****    ******  **************************************        ******                             |
|                         **  ******    **  ******  **************************    ********  ****        **                           |
|                         ****                **        **********************          **          ******                           |
|                           ****************      ****  **********************    ******        **********                           |
|                           **********  **    ********  ************************  ********    ************                           |
|                             ********  ************  **                            **********  ********                             |
|                             ********  ************  **************************    **********  ********                             |
|                               ******  **********    ********************  ******  **********  ******                               |
|                               ******  **********  **********************  ******  ********    ******                               |
|                                 ******  ******************  ************  ****    ********  ******                                 |
|                                 ******  ******************************    ****  **********  ****                                   |
|                                   ************************************  ****************  ******                                   |
|                                     **************      ************  ******    ********  ******                                   |
|                                       **********  ******  **************    ****    **********                                     |
|                                             **  **********  **********    ********    **    **                                     |
|                                             **  ****    ****  **    **  ****    ****  **                                           |
|                                           **  ************    **    **    **********  **    ****                                   |
|                                     ********  ********      ****    ****        ****  **********                                   |
|                                   **********            ****  **************          ************                                 |
|                               ****************************    ********  ************  **************                               |
|                             ****************************      ********      ****************************                           |
|                           ****************************      **********        ************  ****  ********                         |
|                         ****************************        **********        **************    ************                       |
|                       ******************************      **************        ************    **************                     |
|                     ******************************        ****************      **********        **************                   |
|                   **********************************    ******************    **********************************                   |
|                   ************************************  **********************************************************                 |
|                 ******************  ********************************************************************************               |
|                 ************      **************************            ********************************************               |
|               **************      ********************                        ****************************************             |
|             ****************      ****************      **              ****      ************************************             |
|             **********************************                                **    ************************************           |
|             ********************************    **                                **    ********************************           |
|           ********************************    **                                    **    ********************************         |
|           ******************************    **                                      ****  ********************************         |
|           ******************************  **  **  **********    ************************    ******************************         |
|         ******************************  **    ****************  **********************  **    ******************  **********       |
|         ******************************                                                    **  ******************      ******       |
|         ****************************  **                                                  **    ****************      ******       |
|         ****************************  **              ****                                  **  ****************      ******       |
|         ****************************        ******************  ********************        **  ****************************       |
|       ****************************  **        ****************  **********  ********              **************************       |
|       ****************************  **              **          ******          ****          **  ****************************     |
|       ****************************  **        **    **    **    ******        ******          **  ****************************     |
|       ********  ****  ************  **        ****  **    **    ********************          **  ****************************     |
|       ********      **************  **        ****  **    **    ******************            **  ****************************     |
|       **********    **************  **        ****  ****  **                                  **  ****************************     |
|         ********      ************  **        ****  ****  **    ********************          **  ****************************     |
|         ******  ****  ************  **        ****  ****  **    ********************          **  **************************       |
|         **************************  **        ****  ********    ****    ******  ****          **  **************************       |
|         **************************  **        ****  **  ****    ****    ****      **          **  **************************       |
|         **************************  **        ****  ********    ****    ****    ****        **    **************************       |
|         ****************************          ****  ********    ********************        **  ****************************       |
|           **************************  **      ****  **********  ****    ****      **        **  ****************************       |
|           **************************          ****  ****  ****  ****    ****    ****      **    **************************         |
|             **************************  **    ****  ****  ****  ****    ****  ******    ****  **********      ************         |
|             **************************    **        **          ********************    **    **********      **********           |
|             ****************************    **                                        **    ************      **********           |
|               ****************************    **                                    **    ****************************             |
|                 ****************************    **                                **    ******************************             |
|                 **************      ********      **                            **    ******************************               |
|                   ************      ************      **                    **      ******************************                 |
|                     **********      ************          ****        ******    ********************************                   |
|                       ********  **  ******************                      **********************************                     |
|                         **************************************      ****************************************                       |
|                           ******************************************************************************                           |
|                             **************************************************************************                             |
|                                 ******************************************************************                                 |
|                                     ********************************************************                                       |
|                                         **********************************************                                             |
|                                               **************************            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **                            **                                             |
|                                                       **      **                    **                                             |
|                                           ********    **  **********                **                                             |
|                                         ************  **  **********                **                                             |
|                                       ********************************              **                                             |
|                                       ********************************              **                                             |
|                                       ********************************              **                                             |
|                                       ********************************              **                                             |
|                                       ********************************              **                                             |
|                                         ******************************              **                                             |
|                                         ****************************                **                                             |
|                                           ************************        ******    **    ********                                 |
|                                             **********************    ************  **  ************                               |
|                                               ******************      ******************************                               |
|                                                 **************      ********************************                               |
|                                                   **********        ********************************                               |
|                                                     ******            ******************************                               |
|                                                                       ******************************                               |
|                                                                       ****************************                                 |
|                                                                         **************************                                 |
|                                                                           **********************                                   |
|                                                                           **********************                                   |
|                                                                             ******************                                     |
|                                                                               **************                                       |
|                                                                                   ********                                         |
|                                                                                                                                    |
|                                                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------------------+
110 rows in set (0.00 sec)

最后再次祝大家新年快乐!

 

 文章来源:https://www.modb.pro/db/236037

...全文
747 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

79,496

社区成员

发帖
与我相关
我的任务
社区描述
汇集数据库的爱好者和关注者,大家共同学习、探索、分享数据库前沿知识和技术,像松鼠一样剥开科学的坚果;交流Gauss及其他数据库的使用心得和经验,互助解决问题,共建数据库技术交流圈。
数据库数据仓库 企业社区 北京·海淀区
社区管理员
  • Gauss松鼠会
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家同时关注Gauss松鼠会专家酷哥。

https://www.zhihu.com/people/ku-ge-78-98

试试用AI创作助手写篇文章吧