1. 

关注“一猿小讲”的伙伴们都清楚,Java 那小子带着心爱的 Python 菇凉,去了一趟浪漫的土耳其,然后一起又去了东京和巴黎,接着 Python 菇凉自己又去了云南的大理。

就在昨天,Python 菇凉好奇的问:“亲爱的,好记性不如烂笔头,你能否把这些旅游的记忆,帮我存储下来啊?”

这个问题,当然难不倒在技术竞技场摸爬滚打、填坑无数的 Java 那小子。Java 那小子自信的说:“你已经熟练使用 IDEA;也能够写 HelloWorld 程序;也带你灭过 Bug。已经是个名副其实的程序媛啦,是时候教给你真正的技术啦,也是时候介绍我的好朋友 MySQL 给你认识认识啦。”

“MySQL?MySQL 是谁?”Python菇凉好奇的问。

恰巧,MySQL 步履蹒跚的径直朝 Java 那小子 & Python 菇凉的方向走来。

“你好,美丽的 Python 菇凉。我是 MySQL,我擅长关系型数据存储,大家都叫我宰相,因为我肚子特能装(哈哈),以后有需要帮帮的,别见外,尽管说。”MySQL 笑眯眯的说道。

Java 那小子用期望的眼神盯着 MySQL,并说道:“巧了,MySQL 兄弟,我女票正考虑,如何把近期旅游的经历,存储一下,不知道你能否帮忙解决?"

“兄弟的事,当然两肋插刀,在所不辞,更何况是我擅长的事情。不过今天 DB 界进行选秀,我就不陪着你们实现了,不过我这有一个操作手册,你照着做就能帮助 Python 实现愿望了。”MySQL 爽快的说道。

2. 

说时迟,那时快。只见 Java 那小子照着 MySQL 给的手册,已经操作猛如虎了。

第一步:打开黑布隆冬的控制台窗口,并输入连接数据库服务器的命令:

mysql -u root -p

如上图所示提示输入数据库密码,输入密码成功后,成功打入 MySQL 内部。

第二步:你需要创建个数据库,可以起个数据库的名字,咱们不妨就叫 travel 吧,命令如下。

create database travel;

然后选择刚刚创建的数据库 travel,命令如下:

use travel;

第三步:你需要在 travel 下创建一个 memories 表,专门存放 Python 菇凉的旅行回忆。

CREATE TABLE memories (
id INT unsigned NOT NULL AUTO_INCREMENT,
city VARCHAR(64) NOT NULL,
scenic_spots VARCHAR(64) NOT NULL,
image_path VARCHAR(128) NOT NULL,
travel_date DATE NOT NULL,
PRIMARY KEY (id)
);

第四步:此时就可以把 Python 菇凉的旅行经历全部记录写进回忆里。

insert into memories values(1,'土耳其','卡帕多奇亚','kpdqy.png','9012-07-02');
insert into memories values(2,'东京','异国情调街区','ygqdjq.png','9012-07-03');
insert into memories values(3,'巴黎','塞纳河','snh.png','9012-07-03');
insert into memories values(4,'云南','天涯海角','tyhj.png','9012-07-04');

好了,到这一步 Python 菇凉的愿望也就达成了,旅行回忆在 MySQL 的帮助下已经完全得到了存储。

“关键是怎么查询呢?”Python疑惑的问道。

只见 MySQL 给的手册上有这么一句话,若想查询记录,可以通过如下命令进行查询,不妨一试。

select * from memories;

“哎呦,MySQL 他也太厉害了,快成我偶像了,佩服!!但是我发现第 2 条的景点的写错了,能不能更新一下啊?”Python菇凉抱有期望的问道。

只见 MySQL 给的手册上清晰的记录着如下命令,Java 那小子迫不及待的想试一下。

update memories set scenic_spots = '秋叶原' where id = 2;

Python 菇凉看到查询效果,惊喜的笑了。但是考虑到云南天涯海角,因为只有 Python 菇凉自己去了,没有 Java 那小子的世界,感觉不完美,所以不应该永久留存,应该删除。于是根据 MySQL 给的手册指示输入了如下命令:

delete from memories where id = 4;

看到最后这个效果,Python 菇凉甚是高兴,感觉爱情之旅回忆满满,幸福感爆棚。

“哎呀,我突然发现这么一来,咱们也可以设计一张记账订单表,来管咱们家的鸡毛蒜皮的账啦(捂嘴笑)。”Python 菇凉惊奇的说道。

3. 

故事讲完啦,接下来把 MySQL 给的手册未提到的咱们也稍微提一嘴吧。

显示所有数据库:show databases;
显示所有的表:show tables;
显示表结构:desc memories;
删除表:drop table memories;

  

经验分享一箩筐:

ERROR 1366 (HY000): Incorrect string value: '\xCD\xC1\xB6\xFA\xC6\xE4' for column 'city' at row 1

解决:查看创建数据的编码是否为 utf8,如果是直接在控制台 set names gbk 就可以解决。

经验分享一麻袋:

查询 city 是北京的旅游经历,发现全部查询出来了,小伙伴们问题出在了哪儿呢?后面文章会重点说这个问题的攻防,敬请期待。

select * from memories where city='北京' or '1=1';

好了,今天的分享到这就结束了。谨以此篇,写给身边那些需要的朋友们。

【Java技术系列】爱情36技之记忆永存的更多相关文章

  1. 【Java技术系列】爱情36技之暗送秋波的技术

    1. 这篇文章想分享已经很久了,苦于皱巴巴的技术比较生涩难懂,迟迟没有找到好的分享方式,今天结合爱情中暗送秋波的故事的形式,尝试分享一下. 以后如果再有人问你们:能否在加载类的时候,对字节码进行修改? ...

  2. 【Java技术系列】爱情36技之追美妹的技术

    1. 在古老的非洲大陆上,有个原始人无意中抬头仰望星空,凝视的时间稍微长了一些,超过了外星人设置的阈值,立刻拉响了人类即将产生文明的警报.因为外星人认为,人类已经产生了对宇宙的好奇心,文明的产生,科技 ...

  3. 【Java技术系列】爱情36技之Bug大战

    1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...

  4. Java基础系列(36)- 数组三种初始化及内存分析

    内存分析 数组三种初始化 静态初始化 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)} 动态初始化 int[] a = new i ...

  5. 8.Java 加解密技术系列之 PBE

    Java 加解密技术系列之 PBE 序 概念 原理 代码实现 结束语 序 前 边的几篇文章,已经讲了几个对称加密的算法了,今天这篇文章再介绍最后一种对称加密算法 — — PBE,这种加密算法,对我的认 ...

  6. 1.Java 加解密技术系列之 BASE64

    Java 加解密技术系列之 BASE64 序号 背景 正文 总结 序 这段时间,工作中 用到了 Java 的加解密技术,本着学习的态度,打算从这篇文章开始,详细的研究一番 Java 在加解密技术上有什 ...

  7. Java 加解密技术系列文章

    Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...

  8. Tomcat系列之Java技术详解

    一.概述 1.前言 在前面几篇博客中,我们和大家说了负载均衡器服务器.Web服务器.反向代理服务器.缓存服务器,从这篇博客开始我们和大家说说应用程序服务器,对于上述内容不了解的博友可以去参考一下我们前 ...

  9. 11.Java 加解密技术系列之 总结

    Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...

随机推荐

  1. 机器学习实战:意大利Covid-19病毒感染数学模型及预测

    作者:Gianluca Malato deephub翻译组:刘欣然 当今世界正在与一个新的敌人作斗争,那就是Covid-19病毒. 该病毒自首次在中国出现以来,在世界范围内迅速传播.不幸的是,意大利的 ...

  2. ARM AVI 视频播放 基于 2440 freambuffer 绘制

    AVI 文件格式 图解 整理: AVI 是一种容器,里面放什么格式的数据都可以 视频编码:格式可以是 H264, MPEG-4, MJPEG ,因为 MJPEG 比较简单,所以仅支持 MJPEG 的 ...

  3. 一文深入了解史上最强的Java堆内缓存框架Caffeine

    它提供了一个近乎最佳的命中率.从性能上秒杀其他一堆进程内缓存框架,Spring5更是为了它放弃了使用多年的GuavaCache 缓存,在我们的日常开发中用的非常多,是我们应对各种性能问题支持高并发的一 ...

  4. c js 字符串反转

    1.例如:输入 i am     a student    输出 student a am i #include <stdio.h> #include <string.h> v ...

  5. javaScript 基础知识汇总(八)

    1.Map Set WeakMap 和WeakSet Map 是一个键值对的集合,主要的方法包括: new Map() 创建Map map.set(key,value)  根据键(key)存储值(va ...

  6. Linux 应用领域

    与Windows操作系统软件一样,Linux也是一个操作系统软件.但与Windows不同的是,Linux是一套开放源代码程序的,并可以自由传播的类UNIX操作系统软件,随着信息技术的更新变化,Linu ...

  7. Python基础 | 日期时间操作

    目录 获取时间 时间映射 格式转换 字符串转日期 日期转字符串 unixtime 时间计算 时间偏移 时间差 "日期时间数据"作为三大基础数据类型之一,在数据分析中会经常遇到. 本 ...

  8. 13.unittest扩展

  9. 2. weddriver的定位方法

    一. find_element_by_****的方式 首页在网页上鼠标右键选择检查并点击,查看需要定位的元素. https://www.baidu.com  以百度为例 导入模块的: from sel ...

  10. HBU-数据库第五周作业

    第五周数据库作业 注意 MySQL的数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大 ...