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. mysql 多个字段重复记录查询

    select * from productstockquantity t where () ORDER BY t.CombinationI

  2. [日志分析]Graylog2采集mysql慢日志

    之前聊了一下graylog如何采集nginx日志,为此我介绍了两种采集方法(主动和被动),让大家对graylog日志采集有了一个大致的了解. 从日志收集这个角度,graylog提供了多样性和灵活性,大 ...

  3. 《JavaScript 模式》读书笔记(2)— 基本技巧2

    前一篇,简单介绍了一些js代码的基本技巧.那么这篇文章,我们继续后续的内容. 一.for循环 for循环经常用在遍历数组或者类数组对象,如引数(arguments)和HTML容器(HTMLCollti ...

  4. The Game Of Life – 数据结构与算法的敲门砖

    The Game Of Life(生命游戏,又称为细胞自动机)几乎是所有数据结构与算法导论教程前言的一个很经典的程序了.这是一个零玩家游戏,发生在一个平面网格里.每个格子的细胞都有死亡和存活两种状态, ...

  5. .Net Framework 工具Mpgo.exe与Ngen.exe

    首先放出官方MSDN的文档地址 Mpgo.exe 主要用于分析程序集启动时需要哪些东西,然后将信息反馈给NGen.exe 来更好的优化本机映像,使得应用程序启动更快,工作集缩小.准备发布时,用MPGO ...

  6. httpServletRequest.getCharacterEncoding()取出来是个null,怎么办?

    因为浏览器没有把正确的编码方式给服务器端. 目前,许多浏览器在Content-Type头中不会指定字符编码方式,那么容器就会使用"ISO-8859-1"方式解析POST数据,而此时 ...

  7. 解开Service Mesh的神秘面纱

    一.什么是Service Mesh? 下面是 Willian Morgan 对 Service Mesh 的解释: A Service Mesh is a dedicated infrastructu ...

  8. java之AQS和显式锁

    本次内容主要介绍AQS.AQS的设计及使用.ReentrantLock.ReentrantReadWriteLock以及手写一个可重入独占锁 1.什么是AQS? AQS,队列同步器AbstractQu ...

  9. I2C的基本概念和协议

    概念   I2C总线是由Philips公司开发的一种简单.双向二线制同步串行总线.它只需要两根线即可在连接于总线上的器件之间传送信息.  主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任 ...

  10. Github搜索技巧整理

    Github官方网址:https://github.com/ 一.详细官方文档:https://help.github.com/en/github/searching-for-information- ...