谷哥的小弟
历任研发工程师,技术组长,项目经理;曾于2016年、2020年两度荣获优快云年度十大博客之星。
十载寒冰,难凉热血;多年过去,历经变迁,物是人非。
然而,对于技术的探索和追求从未停歇。
坚持原创,热衷分享,初心未改,继往开来!
展开
-
MySQL数据库实操教程(01)——MySQL数据库安装
DataBase Management System是操作和管理数据库的大型软件,所以从本质上来讲它是一种管理软件;用户可通过数据库管理系统访问数据库中的数据。DataBase Management System的主要功能是建立数据库、使用数据库、维护数据库、并对数据库进行统一管理以保证数据库的安全性和完整性。原创 2019-07-21 11:32:58 · 5805 阅读 · 4 评论 -
MySQL数据库实操教程(02)——SQL简述
Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性原创 2019-07-21 12:22:35 · 1787 阅读 · 2 评论 -
MySQL数据库实操教程(03)——数据库设计范式
数据库设计深刻影响着存储性能和数据的操作效率。因此,为了避免数据库出现数据冗余或造成插入、删除、更新时发生异常;在设计数据库时需满足一定的规范要求,即范式(Normal Form)。根据要求的不同,范式有多种级别,最常用的有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)、第五范式(5NF)。一般来说,数据库设计只需满足第三范式(3NF)即可。在本节教程中,我们将重点讲解:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。原创 2019-07-21 13:02:51 · 3390 阅读 · 3 评论 -
MySQL数据库实操教程(04)——数据类型详解
在之前的教程中我们讲解了数据库的常见操作。虽然创建了数据库,但是数据库中还没有存放任何数据。使用MySQL数据库存储数据时,不同的数据类型决定了 MySQL存储数据方式的不同。为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点 数类型、日期和时间类型、字符串类型、二进制......等等数据类型。原创 2019-07-21 14:21:47 · 1627 阅读 · 1 评论 -
MySQL数据库实操教程(05)——数据库和数据表的基本操作
数据库创建成功后可在该数据库中创建数据表(简称为表)存储数据。请注意:在操作数据表之前应使用“USE 数据库名;”指定操作是在哪个数据库中进行先关操作,否则会抛出“No database selected”错误。原创 2019-07-21 17:36:57 · 4973 阅读 · 5 评论 -
MySQL数据库实操教程(06)——MySQL图形化操作工具
在实际开发中,我们一般也不在DOS窗口中去直接操作数据库而是借助于图形化界面工具;例如:SQLyog,Navicat,PhpMyadmin、Workbench等等。这些工具的功能大同小异,均为数据库操作提供了诸多便利且直观的方式。在此,以Navicat为例进行介绍。原创 2019-07-21 18:31:19 · 3853 阅读 · 2 评论 -
MySQL数据库实操教程(07)——表的约束
为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下:原创 2019-07-21 20:42:49 · 1788 阅读 · 5 评论 -
MySQL数据库实操教程(08)——插入数据
在MySQL通过INSERT语句向数据表中插入数据。在执行插入之前,我们先准备一张数据表,代码如下:原创 2019-07-21 23:47:18 · 1471 阅读 · 2 评论 -
MySQL数据库实操教程(09)——更新数据
在MySQL通过UPDATE语句更新数据表中的数据。在此,我们先准备一张数据表,代码如下:原创 2019-07-22 00:15:02 · 1307 阅读 · 2 评论 -
MySQL数据库实操教程(10)——删除数据
在MySQL通过DELETE语句删除数据表中的数据。在此,我们先准备一张数据表,代码如下:原创 2019-07-22 00:35:43 · 1252 阅读 · 2 评论 -
MySQL数据库实操教程(11)——简单查询
MySQL从数据表中查询数据的最基本语句是SELECT。在SELECT语句中,可根据自己对数据的需求,使用不同的查询条件,其基本语法格式如下:原创 2019-07-22 11:09:18 · 1843 阅读 · 4 评论 -
MySQL数据库实操教程(12)——函数
在开发中,我们常常有类似的需求:统计某个字段的最大值、最小值、 平均值等等。为此,MySQL中提供了聚合函数来实现这些功能。聚合函数用于纵向(即列)运算;它具有自动滤空的功能,若某一个值为NULL,那么会自动将其过滤使其不参与运算。常用聚合函数如下:原创 2019-07-22 16:39:04 · 1318 阅读 · 1 评论 -
MySQL数据库实操教程(13)——条件查询
数据库中存有大量数据,我们可根据需求获取指定的数据。此时,我们可在SELECT语句中指定查询条件对查询结果进行过滤,对査询的数据重新进行排列组合得到期望的结果。在开始学习条件查询之前,我们先准备测试数据,代码如下:原创 2019-07-22 20:50:15 · 2840 阅读 · 2 评论 -
MySQL数据库实操教程(14)——别名
在查询操作时,假若表名很长使用起来就不太方便,此时可为表取一个別名,用该别名来代替表的名称。语法格式如下所示:原创 2019-07-23 11:31:15 · 1304 阅读 · 2 评论 -
MySQL数据库实操教程(15)——表的关联关系
多对一(亦称为一对多)是数据表中最常见的一种关系。例如:员工与部门之间的关系,一个部门可以有多个员工;而一个员工不能属于多个部门只属于某个部门。在多对一的表关系 中,应将外键建在多的一方否则会造成数据的冗余。原创 2019-07-23 20:55:09 · 3080 阅读 · 5 评论 -
MySQL数据库实操教程(16)——多表连接查询
在使用内连接查询时我们发现:返回的结果只包含符合查询条件和连接条件的数据。但是,有时还需要在返回查询结果中不仅包含符合条件的数据,而且还包括左表、右表或两个表中的所有数据,此时我们就需要使用外连接查询。外连接又分为左(外)连接和右(外)连接。其语法格式如下:原创 2019-07-23 23:39:01 · 2774 阅读 · 8 评论 -
MySQL数据库实操教程(17)——子查询
子查询是指一个查询语句嵌套在另一个查询语句内部的查询;该查询语句可以嵌套在一个 SELECT、SELECT…INTO、INSERT...INTO()等语句中。在执行查询时,首先会执行子查询中的语句,再将返回的结果作为外层查询的过滤条件。在子査询中通常可以使用比较运算符和IN、EXISTS、ANY、ALL等关键字。原创 2019-07-24 13:06:30 · 1275 阅读 · 0 评论 -
MySQL数据库实操教程(18)——数据库事务及其隔离级别
现实生活中我们经常会进行银行转账操作,该操作可分为两部分来完成:账户A转出和账户B转入, 只有这两个部分都无误完成才认为转账成功。在数据库中,可通过两条语句完成该转账操作,如果其中任意一条语句出现异常没有正常执行则会导致两个账户的金额不同步造成错误。原创 2019-07-29 23:19:25 · 3843 阅读 · 3 评论 -
MySQL数据库实操教程(19)——详解存储过程及游标使用
在开发过程中,我们经常会遇到重复使用某一功能的情况。为此,MySQL引人了存储过程(Stored Procedure)这一技术。所谓存储过程指的就是一条或多条SQL语句的集合。存储过程可以将一些列复杂操作封装成一个代码块,以便重复使用,从而极大地减少数据库开发人的工作量提升开发效率。SQL语句需要先编译然后执行,而存储过程可将为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字通过传参的方式对其进行调用。存储过程可看做是编程的函数,它允许以传参调用的访问方式。原创 2019-08-04 00:15:33 · 2378 阅读 · 4 评论 -
MySQL数据库实操教程(20)——视图
视图是从一个或多个表中导出的表,它是一种虚拟存在的表。视图的结构和数据都依赖于原表(亦称为基本表)。通过视图不仅可以查看存放在基本表中的数据并且还可以像操作基本表一样,对视图中存放的数据进行查询、修改和删除。相比于直接操作基本表视图具有以下优点:原创 2019-08-07 22:52:32 · 1397 阅读 · 1 评论 -
MySQL数据库实操教程(21)——索引
在数据库操作中,我们经常需要查找特定的数据;例如,执行SELECT * FROM student WHERE id=100000;时MySQL数据库必须从第1条记录开始遍历直到找到id为100000的数据。显然,这样的效率非常低下。为此,在MySQL可通过建立索引来加快数据表的查询和排序。打个比方:数据库的索引好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的一种结构,其作用就是提高查询的速度。虽然索引可提高数据的查询速度,但索引会占用一定的磁盘空间,并且在创建和维护索引时其消耗的时间是随着数原创 2019-08-08 22:00:46 · 1026 阅读 · 1 评论 -
MySQL数据库实操教程(22)——触发器
触发器(TRIGGER)是MySQL的数据库对象之一,该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用也不是由工程师手工启动,而是由事件来触发、 激活从而得以执行。那么什么时候会用到触发器呢?我们来看两个例子:原创 2019-08-10 19:10:09 · 1303 阅读 · 3 评论 -
MySQL数据库实操教程(23)——数据库备份与还原
在操作数据库时难免会发生一些意外造成数据丟失。例如:突然断电、管理员的操 作失误都可能导致数据的丢失。为了确保数据的安全,需要定期对数据库进行备份,从而当遇到数据库中数据丢失或者出错的情况可将数据进行还原。原创 2019-08-10 22:26:54 · 1923 阅读 · 2 评论 -
MySQL数据库实操教程(24)——用户管理
MySQL中的用户分为root 用户和普通用户。其中,root用户为超级管理员具有所有权限,如创建用户、删除用户、管理用户等,而普通用户只拥有被赋予的某些权限。在安装MySQL时,系统会自动安装一个名为mysql的数据库,该数据库中的表都是权限表,如 user、db、host、tables_priv、column_priv 和 procs_priv,其中 user表是最重要的一个权限表,它记录了允许连接到服务器的账号信息以及权限信息,通过操作该表就可以对这些信息进行修改。那么,user表中到底有什么呢?我们原创 2019-08-11 18:03:07 · 921 阅读 · 1 评论 -
MySQL数据库实操教程(25)——权限管理
在MySQL数据库中为了保证数据的安全性,数据管理员需要为每个用户赋予不同的权限以满足不同用户的需求。MySQL常见权限如下所示:原创 2019-08-11 23:20:09 · 884 阅读 · 2 评论 -
MySQL数据库实操教程(26)——数据库设计软件Power Designer
Power Designer 是美国Sybase公司的CASE工具集,利用Power Designer可分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。其中,概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。原创 2019-08-13 00:11:11 · 2965 阅读 · 1 评论 -
MySQL数据库实操教程(27)——JDBC入门与常用操作
为了在Java语言中提供对数据库访问的支持,Sun公司于1996年提供了一套访问数据库的标准Java类库JDBC。JDBC的全称是Java数据库连接(Java Database Connectivity)它是一套用于执行 SQL语句的Java API。应用程序可通过这套API连接到关系数据库完成对数据库中数据的査询、更新和删除等操作。原创 2019-08-14 19:36:14 · 1323 阅读 · 1 评论 -
MySQL数据库实操教程(28)——封装实现JDBCUtils
通过之前的学习我们对MySQL数据库和JDBC有了一定的了解,也掌握利用JDBC实现数据的增删改查。但是,在之前的示例中,我们每次操作数据库时都需要加载数据库驱动、建立数据库连接以及关闭数据库连接。为了避免代码的重复书写和梳理业务逻辑,我们在本节教程中通过一个具体示例实现对于JDBC常用操作的封装并用其操作数据。原创 2019-08-14 21:55:41 · 883 阅读 · 2 评论 -
MySQL数据库实操教程(29)——JDBC事务处理
默认情况下,MySQL是关闭事务( 即打开自动提交) 的;也就是说:用户执行的每条SQL语句会立马生效。JDBC也提供了事务支持,在默认情况下JDBC也是关闭事务( 即打开自动提交) 的;也就是说:在JDBC操作中每条SQL语句一旦执行 ,便会立即提交到数据库并立即生效且无法对其进行回滚操作。所以,当需要我们自己来处理事务时x需调用setAutoCommit()方法来关闭自动提交 ,代码如下:原创 2019-08-14 23:29:57 · 624 阅读 · 2 评论 -
MySQL数据库实操教程(30)——JDBC批处理
在幵发过程中经常需要连续执行多条SQL语句,如果逐条执行这些SQL语句,那么效率会很低。为此,JDBC提供了批处理机制,用于执行多条SQL语句。原创 2019-08-15 19:37:36 · 811 阅读 · 2 评论 -
MySQL数据库实操教程(31)——JDBC处理大数据
大数据LOB(Large Objects)分为两大类,即:CLOB(Character Large Object)和BLOB(binary large object)。其中,CLOB用于存储大文本,例如:文章,段落,文本等;BLOB用于存储二进制数据,例如:图像,声音,视频等。在JDBC开发中操作LOB必须使用PreparedStatement并结合IO流对其进行存储。原创 2019-08-15 21:32:33 · 731 阅读 · 2 评论 -
MySQL数据库实操教程(32)——数据库连接池
在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。 这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码并为该连接分配资源,而程序则要把代表连接Connection对象等加载到内存中,所以建立数据库连接的开销很大。尤其是在大量的并发访问时,频繁地创建、断开数据库 连接势必会影响数据库的访问效率,甚至导致数据库崩溃。为了解决该类问题的发生诞生了数据库连接池技术。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是原创 2019-08-15 23:18:55 · 1358 阅读 · 2 评论 -
MySQL数据库实操教程(33)——DbUtils框架
为更加简单且高效地使用JDBC,Apache组织提供了数据库操作工具类commons-dbutils。该工具对JDBC进行了封装,可极大地简化JDBC的编码工作量。例如:DBUtils在查询数据时可把结果转换成List,Array,Set等集合,非常便于开发人员操作。若需使用该工具,请在官方网站免费下载即可。原创 2019-08-17 23:38:42 · 3388 阅读 · 2 评论 -
MySQL数据库实操教程(34)——SQL语句综合练习
SQL语句综合练习原创 2019-08-18 12:55:44 · 2113 阅读 · 2 评论 -
MySQL数据库实操教程(35)——完结篇
记得刚开始写这个专栏的时候,我给涛哥说:你看我这个教程肯定能学会MySQL。这句玩笑话的背后隐藏着我内心的想法:写一个大家都能看得懂,能够上手的MySQL教程。这段时间,写作的冲动一直萦绕在心间,慢慢地也成了我笔耕不辍的驱动力。不少文章都是在晚上加班后和周末休息的时间完成的,过程艰辛;但看见它们整整齐齐地呈现在博客页面上时倍感心欢。原创 2019-08-18 18:55:05 · 11179 阅读 · 25 评论