自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曾经

年少不被层楼误,余生不羁尽自由

  • 博客(130)
  • 资源 (11)
  • 收藏
  • 关注

原创 JavaSE基础知识框架及概述

JavaSE基础知识概述: Java简介:JDK及环境变量的配置、常见软件安装与使用、API文档。  Java语言基础:基本数据类型、变量与常量、运算符、数据类型转换、代码注释和编码规范、逻辑控制和方法的定义。   数组:一维数组、二维数组的定义与使用。   面向对象编程:面向对象的特点、类与对象、抽象类、接口、包的定义及使用、异常与捕获。   常见的设计模式:单例设计模式、多例设计模...

2018-08-28 20:12:13 1146

原创 java将list转为树形结构的方法(后台和前台)

前台:function listToTree(myId,pId,list){ function exists(list, parentId){ for(var i=0; i<list.length; i++){ if (list[i][myId...

2020-02-14 19:24:02 1061

原创 解决:'chromedriver' executable needs to be in PATH问题 安装ChromeDriver(Windows)

Windows下配置ChromeDriver1、查看自己chrome浏览器的版本。  浏览器地址栏输入以下地址  chrome://version  2、通过自己的版本下载相应的chromedriver.exe  下载地址:http://npm.taobao.org/mirrors/chromedriver/3、将下载下来的chromedriver.exe放在chrom...

2020-01-23 09:48:00 4578

转载 cmder使用简介

简介cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令。下载官网地址:http://cmder.net/下载的时候,会有两个版本,分别是mini与full版;唯一的差别在于有没有内建msysgit工具,这是Git for Windows的标准配备;全安装版 cmder 自带了 msysgit, 压缩包...

2020-01-15 17:13:34 19239 4

原创 curl

什么是curl命令?curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。如何在windows下使用curl命令?第一步: 进入curl下载官网,下载合适的版本,我这里下载的是windows 64位的curl。其中我下载的zip文件。 另外CAB文件也是压缩文件,这...

2020-01-15 16:10:54 12643

转载 Spring Boot Security入门

一、Spring Boot Security 整合 OAuth2 设计安全API接口服务OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文重点讲解Spring Boot项目对OAuth2进行的实现,如果你对OAuth2不是很了解,你可以先理解OAuth 2.0 - 阮一峰,https://www.ruanyifeng.c...

2020-01-15 15:20:52 602

转载 Vue2.0搭建脚手架流程

介绍Vue.js是一套构建用户界面的渐进式框架。Vue 只关注视图层,采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。安装node.js从node官网下载并安装node,安装步骤很简单,只要一路“next”就可以了。安装完成后,打开命令行工具输入命令node -v,如下图,如果出现对应版本号,就说明安装成功了。我们...

2020-01-14 15:07:16 242

原创 System.currentTimeMillis与System.nanoTime()的简单使用

package com.sinoline.controller.jsyj;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;/** * @Author Decadence * @Date 2019/11/21 ...

2019-11-21 17:07:09 290 1

原创 python调用cv2.findContours时报错:ValueError: not enough values to unpack (expected 3, got 2)

这是因为在OpenCV旧版,返回三个参数:im2, contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)要想返回三个参数:把OpenCV 降级成3.4.3.18 就可以了,在终端输入pip install opencv-python==3.4.3.18OpenCV ...

2019-09-03 23:52:35 432

原创 仿百度搜索框–vue版本

仿百度搜索框–vue版本时维九月,序属三秋。此吾工作三个月之日,亦是吾重拾博客之时。一路坎坷走来,经历良多,收获甚多。正题百度搜索框是企业开发中常用的一项功能,作为一个前端工作者,自然也是必不可少的。在上一篇中介绍了jQuery版本的 ,这篇博客中主要介绍vue版本的实现。<!DOCTYPE html><html lang="zh"> <head>...

2019-09-03 23:50:00 743

原创 仿百度搜索框–jQuery版本

仿百度搜索框–jQuery版本时维九月,序属三秋。此吾工作三个月之日,亦是吾重拾博客之时。一路坎坷走来,经历良多,收获甚多。正题百度搜索框是企业开发中常用的一项功能,作为一个前端工作者,自然也是必不可少的。这篇博客中主要介绍jQuery版本的实现。<!DOCTYPE html><html> <head> <meta charset="UTF...

2019-09-03 23:40:10 1434

转载 开源Web漏洞扫描工具–Arachni

下载地址:官网地址:http://www.arachni-scanner.com/Arachni是一个包含很多特性、模块化的、高性能的Ruby框架,目的是帮助渗透测试人员和管理者评估现代web应用程序的安全。Arachni是免费、源代码开源的,它支持所有主流操作系统,如:Windows、Mac OS X 、Linux,通过便携式可移植包的形式进行分发,使其满足即时部署的要求。Arachni可...

2019-08-22 18:48:34 1347

原创 Leetcode 91 解码方法(Java)

题目描述一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "BZ" (2 26),...

2019-06-16 13:46:49 931

原创 Leetcode 303 区域和检索 - 数组不可变 (Java)

题目描述Leetcode 303给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> ...

2019-06-16 13:40:34 392

原创 Leetcode 76 最小覆盖子串(Java)

题目描述Leetcode 76Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window ...

2019-06-16 13:25:16 2083

原创 Leetcode 120 三角形最小路径和(Triangle)(Java实现)

题目Leetcode 120Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [...

2019-06-02 10:02:17 538

原创 leetcode114 将二叉树展开为链表 (python3和Java实现)

题目leetcode114 将二叉树变为链表https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ ...

2019-05-26 17:33:27 442

原创 python-opencv学习三:视频的相关操作(读取视频文件,显示视频,保存视频文件)

主要使用的函数是:cv2.VideoCapture(),cv2.VideoWrite()。一、用摄像头捕获视频 我们经常需要使用摄像头捕获实时图像。OpenCV 为这种应用提供了一个 非常简单的接口。让我们使用摄像头来捕获一段视频,并把它转换成灰度视频 显示出来。废话不多说,直接上代码。(注释已经很详细了,说多了无益。:( )import cv2#从...

2019-05-03 13:04:50 2549 1

原创 python-opencv学习二:图像的相关操作(读入、显示、保存)

一、关于OpenCV简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也...

2019-05-03 12:45:55 1807

原创 包学包会:提高pip下载速度,更改pip镜像源

在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。1、国内镜像源网易:http://mirrors.163.com/阿里:https://opsx.alibaba.com/mirror清华:https://mirrors.tuna...

2019-05-03 12:35:26 281

原创 多线程版本的百度语音识别(python2.7+PyQt4)

先看一下效果:毕竟是免费接口,效果可想而知 :(之前写过一个单线程的,代码也扔在这了,需要的自取。单线程版本代码下载:https://github.com/leizhang9527/speech_recognition/tree/master/Single%20thread多线程版本代码下载:https://github.com/leizhang9527/speech_rec...

2019-05-02 23:02:15 719

原创 猜数字游戏(pyqt5+python3)

import sysfrom random import randintfrom PyQt5.QtWidgets import QApplication ,QWidget , QGridLayout, QPushButton, QLabel, QLineEdit, QTextBrowserclass Winform(QWidget): def __init__(self,pare...

2019-04-30 23:49:40 349

原创 python实现opencv学习一:安装、环境配置、工具

一、安装pythonhttps://www.python.org/downloads/过程就不在此赘述了,详情请参考:https://blog.csdn.net/weixin_40928253/article/details/89360419二、安装pip(通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能)过程就不在此赘述了,详情请参考...

2019-04-28 09:44:15 397

原创 PyQt5:从入门到放弃(环境搭建:python3.6+eric6+pyqt5)

一、安装python3.6并配置环境变量1、到官网下载python3.x(python2.x用户自行下载)https://www.python.org/downloads/安装过程就不赘述了,比较简单,自行搞定。2、配置环境变量在用户变量中的Path 加入 python 和python\scripts两个路径3、验证win+r打开cmd命令行 输入pyt...

2019-04-17 21:29:23 3450 1

原创 pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音读取出来

# -*- coding: utf-8 -*-'''author:Decadenceemail:[email protected]'''import waveimport timefrom datetime import datetimefrom pyaudio import PyAudio, paInt16chunk = 1024framerate=8000 ...

2019-04-14 11:05:50 2121

原创 剑指offer之链表中倒数第K个结点(Java实现)

链表中倒数第K个结点NowCoder题目描述:输入一个链表,输出该链表中倒数第k个结点。解题思路://时间复杂度O(n),一次遍历即可public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ListNode pre=null,p=null; //两个...

2019-01-02 13:06:22 162

原创 剑指offer之合并两个排序的链表(Java实现)

合并两个排序的链表NowCoder题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:/*public class ListNode{ int val; ListNode.next = null; ListNode(int val){ this.val = val; }}*/...

2019-01-02 13:05:39 212

原创 剑指offer之反转链表(Java实现)

反转链表NowCoder题目描述:输入一个链表,反转链表后,输出新链表的表头。解题思路:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { ...

2019-01-02 12:57:25 352

原创 剑指offer之二维数组中的查找(Java实现)

二维数组中的查找NowCoder题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。Consider the following matrix:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, ...

2019-01-01 22:56:08 336 1

原创 Linux根目录各个文件夹介绍及说明

/bin 二进制可执行命令/dev 设备特殊文件/etc 系统管理和配置文件/etc/rc.d 启动的配置文件和脚本/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序/tmp ...

2019-01-01 22:36:45 10432 1

原创 剑指offer之栈的压入、弹出序列(Java实现)

栈的压入、弹出序列NowCoder题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:import java.uti...

2019-01-01 22:29:32 395

原创 剑指offer之二叉搜索树的后序遍历(Java实现)

二叉搜索树的后序遍历NowCoder题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路:/*1.找到根结点2.遍历序列,找到第一个大于等于根结点的元素i,则i左侧为左子树、i右侧为右子树;3.我们已经知道i左侧所有元素均小于根结点,那么再依次遍历右侧,看是否所有元素均大于根结...

2019-01-01 22:28:37 515

原创 剑指offer之二叉树中和为某一值的路径(Java实现)

二叉树中和为某一值的路径NowCoder题目描述:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)解题思路:import java.util.ArrayList;public class Solution { private A...

2019-01-01 22:27:51 272

原创 剑指offer之从上往下打印二叉树(Java实现)

从上往下打印二叉树NowCoder题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路:/*思路是用arraylist模拟一个队列来存储相应的TreeNode*/import java.util.*;public class Solution { public ArrayList&lt;Integer&gt; PrintFromTopToBottom(...

2019-01-01 22:27:08 545

原创 剑指offer之包含min函数的栈(Java实现)

包含min函数的栈NowCoder题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解题思路:import java.util.Stack;import java.util.Arrays;public class Solution {//借用辅助栈存储min的大小,自定义了栈结构 private int size...

2019-01-01 22:26:25 368

原创 剑指offer之调整数组顺序使奇数位于偶数前面(Java实现)

调整数组顺序使奇数位于偶数前面NowCoder题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路:/** * 1.要想保证原有次序,则只能顺次移动或相邻交换。 * 2.i从左向右遍历,找到第一个偶数。 * 3.j从i+1开始向后找,直到找到第一个...

2019-01-01 22:25:48 245

原创 剑指offer之数值的整数次方(Java实现)

数值的整数次方NowCoder题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路:/* * 1.全面考察指数的正负、底数是否为零等情况。 * 2.写出指数的二进制表达,例如13表达为二进制1101。 * 3.举例:10^1101 = 10^0001*10^0100*10^1000。 * 4.通过&amp...

2019-01-01 22:25:06 350

原创 剑指offer之树的子结构(Java实现)

树的子结构NowCoder题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路:public class Solution { public static boolean HasSubtree(TreeNode root1, TreeNode root2) { boolean result = false;...

2019-01-01 22:23:51 363

原创 剑指offer之二进制中1的个数(Java实现)

二进制中1的个数NowCoder题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路:public class Solution { public int NumberOf1(int n) { int count = 0; int flag = 1; while (flag != 0) { ...

2018-12-30 10:38:25 421

原创 剑指offer之二叉搜索树与双向链表(Java实现)

二叉搜索树与双向链表NowCoder题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:/*方法一:非递归版解题思路:1.核心是中序遍历的非递归算法。2.修改当前遍历节点与前一遍历节点的指针指向。 */import java.util.Stack;public class Solution {...

2018-12-30 10:37:49 935

arachni.rar

Arachni是一个包含很多特性、模块化的、高性能的Ruby框架,目的是帮助渗透测试人员和管理者评估现代web应用程序的安全。Arachni是免费、源代码开源的,它支持所有主流操作系统,如:Windows、Mac OS X 、Linux,通过便携式可移植包的形式进行分发,使其满足即时部署的要求。Arachni可导出评估报告。

2019-09-11

baidu_search.rar

仿百度搜索实现过程,包括jQuery版本和vue版本,现在即可运行出结果。

2019-09-03

opencv-python

opencv-python入门必备,从安装环境,从简单的入手,每一步实例代码和结果演示。其中有大量的案例,是opencv学习必备的书籍。

2019-05-03

基于qt开发的智能家居系统

基于QT平台,使用c++开发的智能家居系统页面,包括厨房、卧室、卫生间等模块,灯光、声音等控制。

2019-04-26

基于qt的智能家居系统

基于QT平台,使用c++开发的智能家居系统页面,包括厨房、卧室、卫生间等模块,灯光、声音等控制。

2019-04-26

基于STM32的智能安防

一、智能安防系统 1.要求如下: .运行UCOS3实时操作系统[可选] .火焰传感器、温湿度传感器、可燃气体传感器正常工作 .RFID读写卡正常工作 .蓝牙4.0正常工作 .红外接收头正常工作 2.实现过程 手机蓝牙操作 .能够修改开发板的RTC时间 .发送特定的命令,能够查询当前安防状态(是否有火焰、可燃气体是否超标、温湿度状态) .发送特定的命令,能够修改安防系统默认card id,并将card id信息保存到flash当中 当RFID进行识别的时候 .安防系统默认有card id,如果当前识别的卡为陌生卡,则进行蜂鸣器长鸣报警,并熄灭所有Led;识别成功,则响一声,并点亮LED。 .能够将当前的RFID的卡号与识别时间保存到FLASH当中,保存记录为100条,格式(年月日 时分秒 卡ID 合法/非法)如下: 2017-9-21 15:52:50 AABBCCDD 1 //合法 2017-9-21 15:52:50 AFBFCFDF 0 //非法 当红外接收头接收到有效数据的时候,能够实现对家里灯光的操作,也就是对LED进行亮与灭 二、项目进阶 1.连接ESP8266 WiFi,通过使用本地网络或阿里云实现手机蓝牙操作的功能与家庭灯光的控制。 2.超声波模块实现防盗报警,熟练使用IO时序模拟、时间计算 3.OLED屏显示操作信息,熟练使用I2C协议 三、项目高阶 1、NRF24L01无线发射接收模块,熟练使用SPI协议,实现两套开发板数据收发,相互控制 2、移植LWIP,能够使用本地网络或阿里云实现手机蓝牙操作的功能与家庭灯光的控制。

2019-04-26

基于python的人脸识别系统

这个是使用KNN进行人脸识别,在文件夹中直接运行就行。 knn_examples文件夹中,为train和test文件夹。 train里边放的都是以每个人脸的姓名为名称的子文件夹,每个子文件夹中需要自己添加人脸图片以便进行训练。 test文件夹中放的待识别的人脸对象。

2019-04-11

剑指offer题解(Java版)

剑指offer题解,使用Java实现,整理自牛客网,QQ交流群:419927514

2018-12-27

IntelliJ IDEA 汉化包.rar

解压后将resources_cn.jar包复制到你安装IDEA的目录文件夹下的bin目录中,bin里面,不是外面,然后重启IDEA就可以了。

2018-09-09

剑指offer电子书+课程源码

剑指offer(java) 高清完整版PDF 下载 (经济允许的尽量使用原版) 《剑指Offer》是2012年电子工业出版社出版的图书,作者是何海涛。本书精选谷歌、微软等知名IT企业的50余道典型面试题,系统地总结了如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用方法。

2018-08-25

MySQL 5.7从入门到精通 + 高清带目录PDF + 配套视频教学

《京东原价-71RMB》 资源包含 高清带目录PDF + 配套视频教学 本书主要包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与恢复、日志以及性能优化等。最后通过两个综合案例的数据库设计,进一步讲述MySQL在实际工作中的应用。 本书注重实战操作,帮助读者循序渐进地掌握MySQL中的各项技术。 本书共有480个实例和14个综合案例,还有大量的经典习题。下载文件中赠送了近20小时培训班形式的视频教学录像,详细讲解了书中每一个知识点和每一个数据库操作的方法和技巧。同时下载文件中还提供了本书所有例子的源代码,读者可以直接查看和调用。 本书适合MySQL数据库初学者、MySQL数据库开发人员和MySQL数据库管理员,同时也能作为高等院校相关专业师生的教学用书。 第1章 初识MySQL 1 1.1 数据库基础 1 1.1.1 什么是数据库 1 1.1.2 表 2 1.1.3 数据类型 2 1.1.4 主键 2 1.2 数据库技术构成 3 1.2.1 数据库系统 3 1.2.2 SQL语言 4 1.2.3 数据库访问接口 5 1.3 什么是MySQL 6 1.3.1 客户机-服务器软件 6 1.3.2 MySQL版本 6 1.3.3 MySQL的优势 7 1.3.4 MySQL 5.7的新功能 8 1.4 MySQL工具 8 1.4.1 MySQL命令行实用程序 9 1.4.2 MySQL Workbench 10 1.5 如何学习MySQL 10 第2章 MySQL的安装与配置 12 2.1 Windows平台下安装与配置MySQL 5.7 12 2.1.1 安装MySQL 5.7 12 2.1.2 配置MySQL 5.7 18 2.2 启动服务并登录MySQL数据库 22 2.2.1 启动MySQL服务 22 2.2.2 登录MySQL数据库 24 2.2.3 配置Path变量 27 2.3 MySQL常用图形管理工具 28 2.4 Linux平台下安装与配置MySQL 5.7 29 2.4.1 Linux操作系统下的MySQL版本介绍 29 2.4.2 安装和配置MySQL的RPM包 31 2.4.3 安装和配置MySQL的源码包 35 2.5 专家解惑 36 2.6 经典习题 36 第3章 数据库的基本操作 37 3.1 创建数据库 37 3.2 删除数据库 39 3.3 数据库存储引擎 39 3.3.1 MySQL存储引擎简介 39 3.3.2 InnoDB存储引擎 41 3.3.3 MyISAM存储引擎 42 3.3.4 MEMORY存储引擎 43 3.3.5 存储引擎的选择 43 3.4 综合案例——数据库的创建和删除 44 3.5 专家解惑 46 3.6 经典习题 46 第4章 数据表的基本操作 47 4.1 创建数据表 47 4.1.1 创建表的语法形式 47 4.1.2 使用主键约束 49 4.1.3 使用外键约束 50 4.1.4 使用非空约束 51 4.1.5 使用唯一性约束 52 4.1.6 使用默认约束 53 4.1.7 设置表的属性值自动增加 53 4.2 查看数据表结构 54 4.2.1 查看表基本结构语句DESCRIBE 54 4.2.2 查看表详细结构语句SHOW CREATE TABLE 55 4.3 修改数据表 56 4.3.1 修改表名 57 4.3.2 修改字段的数据类型 57 4.3.3 修改字段名 58 4.3.4 添加字段 59 4.3.5 删除字段 62 4.3.6 修改字段的排列位置 63 4.3.7 更改表的存储引擎 64 4.3.8 删除表的外键约束 65 4.4 删除数据表 67 4.4.1 删除没有被关联的表 67 4.4.2 删除被其他表关联的主表 67 4.5 综合案例——数据表的基本操作 69 4.6 专家解惑 77 4.7 经典习题 78 第5章 数据类型和运算符 80 5.1 MySQL数据类型介绍 80 5.1.1 整数类型 80 5.1.2 浮点数类型和定点数类型 82 5.1.3 日期与时间类型 84 5.1.4 文本字符串类型 96 5.1.5 二进制字符串类型 101 5.2 如何选择数据类型 104 5.3 常见运算符介绍 105 5.3.1 运算符概述 105 5.3.2 算术运算符 106 5.3.3 比较运算符 107 5.3.4 逻辑运算符 116 5.3.5 位运算符 119 5.3.6 运算符的优先级 122 5.4 综合案例——运算符的使用 123 5.5 专家解惑 125 5.6 经典习题 126 第6章 MySQL函数 127 6.1 MySQL函数简介 127 6.2 数学函数 128 6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI() 128 6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y) 128 6.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x) 129 6.2.4 获取随机数的函数RAND()和RAND(x) 130 6.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y) 130 6.2.6 符号函数SIGN(x) 131 6.2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x) 132 6.2.8 对数运算函数LOG(x)和LOG10(x) 132 6.2.9 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x) 133 6.2.10 正弦函数SIN(x)和反正弦函数ASIN(x) 133 6.2.11 余弦函数COS(x)和反余弦函数ACOS(x) 134 6.2.12 正切函数、反正切函数和余切函数 134 6.3 字符串函数 135 6.3.1 计算字符串字符数的函数和字符串长度的函数 135 6.3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…) 136 6.3.3 替换字符串的函数INSERT(s1,x,len,s2) 137 6.3.4 字母大小写转换函数 137 6.3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 138 6.3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2) 139 6.3.7 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s) 139 6.3.8 删除指定字符串的函数TRIM(s1 FROM s) 140 6.3.9 重复生成字符串的函数REPEAT(s,n) 141 6.3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2) 141 6.3.11 比较字符串大小的函数STRCMP(s1,s2) 142 6.3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len) 142 6.3.13 匹配子串开始位置的函数 143 6.3.14 字符串逆序的函数REVERSE(s) 143 6.3.15 返回指定位置的字符串的函数 144 6.3.16 返回指定字符串位置的函数FIELD(s,s1,s2,…) 144 6.3.17 返回子串位置的函数FIND_IN_SET(s1,s2) 145 6.3.18 选取字符串的函数MAKE_SET(x,s1,s2,…) 145 6.4 日期和时间函数 146 6.4.1 获取当前日期的函数和获取当前时间的函数 146 6.4.2 获取当前日期和时间的函数 146 6.4.3 UNIX时间戳函数 147 6.4.4 返回UTC日期的函数和返回UTC时间的函数 148 6.4.5 获取月份的函数MONTH(date)和MONTHNAME(date) 148 6.4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d) 149 6.4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d) 150 6.4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d) 151 6.4.9 获取年份、季度、小时、分钟和秒钟的函数 151 6.4.10 获取日期的指定值的函数EXTRACT(type FROM date) 152 6.4.11 时间和秒钟转换的函数 153 6.4.12 计算日期和时间的函数 153 6.4.13 将日期和时间格式化的函数 156 6.5 条件判断函数 159 6.5.1 IF(expr,v1,v2)函数 159 6.5.2 IFNULL(v1,v2)函数 160 6.5.3 CASE函数 160 6.6 系统信息函数 161 6.6.1 获取MySQL版本号、连接数和数据库名的函数 161 6.6.2 获取用户名的函数 163 6.6.3 获取字符串的字符集和排序方式的函数 163 6.6.4 获取最后一个自动生成的ID值的函数 164 6.7 加/解密函数 166 6.7.1 加密函数PASSWORD(str) 166 6.7.2 加密函数MD5(str) 167 6.7.3 加密函数ENCODE(str,pswd_str) 167 6.7.4 解密函数DECODE(crypt_str,pswd_str) 167 6.8 其他函数 168 6.8.1 格式化函数FORMAT(x,n) 168 6.8.2 不同进制的数字进行转换的函数 168 6.8.3 IP地址与数字相互转换的函数 169 6.8.4 加锁函数和解锁函数 170 6.8.5 重复执行指定操作的函数 170 6.8.6 改变字符集的函数 171 6.8.7 改变数据类型的函数 172 6.9 综合案例——MySQL函数的使用 172 6.10 专家解惑 176 6.11 经典习题 176 第7章 查询数据 178 7.1 基本查询语句 178 7.2 单表查询 180 7.2.1 查询所有字段 181 7.2.2 查询指定字段 182 7.2.3 查询指定记录 184 7.2.4 带IN关键字的查询 185 7.2.5 带BETWEEN AND的范围查询 187 7.2.6 带LIKE的字符匹配查询 188 7.2.7 查询空值 190 7.2.8 带AND的多条件查询 191 7.2.9 带OR的多条件查询 192 7.2.10 查询结果不重复 193 7.2.11 对查询结果排序 195 7.2.12 分组查询 198 7.2.13 使用LIMIT限制查询结果的数量 203 7.3 使用聚合函数查询 205 7.3.1 COUNT()函数 205 7.3.2 SUM()函数 206 7.3.3 AVG()函数 207 7.3.4 MAX()函数 208 7.3.5 MIN()函数 209 7.4 连接查询 210 7.4.1 内连接查询 210 7.4.2 外连接查询 214 7.4.3 复合条件连接查询 216 7.5 子查询 217 7.5.1 带ANY、SOME关键字的子查询 217 7.5.2 带ALL关键字的子查询 218 7.5.3 带EXISTS关键字的子查询 218 7.5.4 带IN关键字的子查询 220 7.5.5 带比较运算符的子查询 221 7.6 合并查询结果 223 7.7 为表和字段取别名 225 7.7.1 为表取别名 226 7.7.2 为字段取别名 227 7.8 使用正则表达式查询 228 7.8.1 查询以特定字符或字符串开头的记录 229 7.8.2 查询以特定字符或字符串结尾的记录 230 7.8.3 用符号"."来替代字符串中的任意一个字符 230 7.8.4 使用"*"和" "来匹配多个字符 231 7.8.5 匹配指定字符串 231 7.8.6 匹配指定字符中的任意一个 233 7.8.7 匹配指定字符以外的字符 233 7.8.8 使用{n,}或者{n,m}来指定字符串连续出现的次数 234 7.9 综合案例——数据表查询操作 235 7.10 专家解惑 243 7.11 经典习题 244 第8章 插入、更新与删除数据 245 8.1 插入数据 245 8.1.1 为表的所有字段插入数据 245 8.1.2 为表的指定字段插入数据 247 8.1.3 同时插入多条记录 249 8.1.4 将查询结果插入到表中 251 8.2 更新数据 252 8.3 删除数据 254 8.4 综合案例——记录的插入、更新和删除 256 8.5 专家解惑 261 8.6 经典习题 262 第9章 索 引 263 9.1 索引简介 263 9.1.1 索引的含义和特点 263 9.1.2 索引的分类 264 9.1.3 索引的设计原则 265 9.2 创建索引 265 9.2.1 创建表的时候创建索引 266 9.2.2 在已经存在的表上创建索引 271 9.3 删除索引 278 9.4 综合案例——创建索引 280 9.5 专家解惑 283 9.6 经典习题 283 第10章 存储过程和函数 285 10.1 创建存储过程和函数 285 10.1.1 创建存储过程 286 10.1.2 创建存储函数 288 10.1.3 变量的使用 289 10.1.4 定义条件和处理程序 290 10.1.5 光标的使用 293 10.1.6 流程控制的使用 294 10.2 调用存储过程和函数 299 10.2.1 调用存储过程 299 10.2.2 调用存储函数 300 10.3 查看存储过程和函数 301 10.3.1 使用SHOW STATUS语句查看存储过程和函数的状态 301 10.3.2 使用SHOW CREATE语句查看存储过程和函数的定义 302 10.3.3 从information_schema.Routines表中查看存储过程和函数的信息 302 10.4 修改存储过程和函数 304 10.5 删除存储过程和函数 306 10.6 综合案例——创建存储过程和函数 306 10.7 专家解惑 309 10.8 经典习题 310 第11章 视图 311 11.1 视图概述 311 11.1.1 视图的含义 311 11.1.2 视图的作用 312 11.2 创建视图 313 11.2.1 创建视图的语法形式 313 11.2.2 在单表上创建视图 314 11.2.3 在多表上创建视图 315 11.3 查看视图 316 11.3.1 使用DESCRIBE语句查看视图基本信息 316 11.3.2 使用SHOW TABLE STATUS语句查看视图基本信息 316 11.3.3 使用SHOW CREATE VIEW语句查看视图详细信息 318 11.3.4 在views表中查看视图详细信息 318 11.4 修改视图 320 11.4.1 使用CREATE OR REPLACE VIEW语句修改视图 320 11.4.2 使用ALTER语句修改视图 321 11.5 更新视图 322 11.6 删除视图 324 11.7 综合案例——视图应用 325 11.8 专家解惑 333 11.9 经典习题 334 第12章 MySQL触发器 335 12.1 创建触发器 335 12.1.1 创建只有一个执行语句的触发器 336 12.1.2 创建有多个执行语句的触发器 337 12.2 查看触发器 339 12.2.1 SHOW TRIGGERS语句查看触发器信息 339 12.2.2 在triggers表中查看触发器信息 341 12.3 触发器的使用 342 12.4 删除触发器 343 12.5 综合案例——触发器的使用 344 12.6 专家解惑 346 12.7 经典习题 346 第13章 MySQL用户管理 347 13.1 权 限 表 347 13.1.1 user表 347 13.1.2 db表和host表 350 13.1.3 tables_priv表和columns_priv表 352 13.1.4 procs_priv表 353 13.2 账户管理 353 13.2.1 登录和退出MySQL服务器 354 13.2.2 新建普通用户 355 13.2.3 删除普通用户 359 13.2.4 root用户修改自己的密码 360 13.2.5 root用户修改普通用户的密码 362 13.2.6 普通用户修改密码 363 13.2.7 root用户密码丢失的解决办法 364 13.3 权限管理 366 13.3.1 MySQL的各种权限 366 13.3.2 授权 368 13.3.3 收回权限 370 13.3.4 查看权限 371 13.4 访问控制 372 13.4.1 连接核实阶段 372 13.4.2 请求核实阶段 372 13.5 综合案例——综合管理用户权限 373 13.6 专家解惑 377 13.7 经典习题 377 第14章 数据备份与恢复 379 14.1 数据备份 379 14.1.1 使用MySQLdump命令备份 379 14.1.2 直接复制整个数据库目录 386 14.1.3 使用MySQLhotcopy工具快速备份 386 14.2 数据恢复 387 14.2.1 使用MySQL命令恢复 387 14.2.2 直接复制到数据库目录 388 14.2.3 MySQLhotcopy快速恢复 388 14.3 数据库迁移 389 14.3.1 相同版本的MySQL数据库之间的迁移 389 14.3.2 不同版本的MySQL数据库之间的迁移 389 14.3.3 不同数据库之间的迁移 390 14.4 表的导出和导入 390 14.4.1 使用SELECTI…INTO OUTFILE导出文本文件 390 14.4.2 使用MySQLdump命令导出文本文件 394 14.4.3 使用MySQL命令导出文本文件 396 14.4.4 使用LOAD DATA INFILE方式导入文本文件 399 14.4.5 使用MySQLimport命令导入文本文件 402 14.5 综合案例——数据的备份与恢复 403 14.6 专家解惑 408 14.7 经典习题 409 第15章 MySQL日志 410 15.1 日志简介 410 15.2 二进制日志 411 15.2.1 启动和设置二进制日志 411 15.2.2 查看二进制日志 412 15.2.3 删除二进制日志 414 15.2.4 使用二进制日志恢复数据库 416 15.2.5 暂时停止二进制日志功能 417 15.3 错误日志 417 15.3.1 启动和设置错误日志 417 15.3.2 查看错误日志 418 15.3.3 删除错误日志 419 15.4 通用查询日志 419 15.4.1 启动和设置通用查询日志 419 15.4.2 查看通用查询日志 420 15.4.3 删除通用查询日志 420 15.5 慢查询日志 421 15.5.1 启动和设置慢查询日志 421 15.5.2 查看慢查询日志 421 15.5.3 删除慢查询日志 422 15.6 综合案例——MySQL日志的综合管理 422 15.7 专家解惑 428 15.8 经典习题 429 第16章 性能优化 430 16.1 优化简介 430 16.2 优化查询 431 16.2.1 分析查询语句 431 16.2.2 索引对查询速度的影响 435 16.2.3 使用索引查询 436 16.2.4 优化子查询 439 16.3 优化数据库结构 439 16.3.1 将字段很多的表分解成多个表 439 16.3.2 增加中间表 441 16.3.3 增加冗余字段 442 16.3.4 优化插入记录的速度 443 16.3.5 分析表、检查表和优化表 445 16.4 优化MySQL服务器 446 16.4.1 优化服务器硬件 447 16.4.2 优化MySQL的参数 447 16.5 综合案例——全面优化MySQL服务器 448 16.6 专家解惑 451 16.7 经典习题 452 第17章 MySQL Replication 453 17.1 MySQL Replication概述 453 17.2 Windows环境下的MySQL主从复制 454 17.2.1 复制前的准备工作 454 17.2.2 Windows环境下实现主从复制 455 17.2.3 Windows环境下主从复制测试 462 17.3 Linux环境下的MySQL复制 463 17.3.1 下载并安装MySQL 5.7 463 17.3.2 单机主从复制前的准备工作 465 17.3.3 MySQLd_multi实现单机主从复制 469 17.3.4 不同服务器之间实现主从复制 476 17.3.5 MySQL 主要复制启动选项 478 17.3.6 指定复制的数据库或者表 479 17.4 查看Slave的复制进度 486 17.5 日常管理和维护 488 17.5.1 了解服务器的状态 488 17.5.2 服务器复制出错的原因 489 17.6 切换主从服务器 492 17.7 专家解惑 496 17.8 经典习题 497 第18章 MySQL Workbench 的使用 498 18.1 MySQL Workbench简介 498 18.1.1 MySQL Workbench 的概述 498 18.1.2 MySQL Workbench 的优势 499 18.1.3 MySQL Workbench 的安装 499 18.2 SQL Development的基本操作 501 18.2.1 创建数据库连接 501 18.2.2 创建新的数据库 502 18.2.3 创建和删除新的数据表 504 18.2.4 添加、修改表记录 507 18.2.5 查询表记录 508 18.2.6 修改表结构 509 18.3 Data Modeling的基本操作 510 18.3.1 建立ER模型 510 18.3.2 导入ER模型 515 18.4 Server Administration的基本操作 517 18.4.1 管理MySQL用户 517 18.4.2 备份MySQL数据库 520 18.4.3 恢复MySQL数据库 523 18.5 专家解惑 524 18.6 经典习题 524 第19章 MySQL Cluster 526 19.1 MySQL Cluster概述 526 19.1.1 MySQL Cluster基本概念 526 19.1.2 理解MySQL Cluster节点 527 19.2 Linux环境下MySQL Cluster安装和配置 528 19.2.1 安装MySQL Cluster软件 531 19.2.2 管理节点配置步骤 535 19.2.3 配置SQL节点和数据节点 536 19.3 管理MySQL Cluster 537 19.3.1 Cluster的启动 537 19.3.2 Cluster的测试 539 19.3.3 Cluster的关闭 541 19.4 维护MySQL Cluster 542 19.4.1 Cluster的日志管理 544 19.4.2 Cluster的联机备份 545 19.4.3 Cluster的数据恢复 546 19.5 Windows操作系统中配置Cluster 547 19.6 专家解惑 553 19.7 经典习题 554 第20章 MySQL管理利器——MySQL Utilities 555 20.1 MySQL Utilities概述 555 20.2 安装与配置 556 20.2.1 下载与安装MySQL Utilities 556 20.2.2 MySQL Utilities连接数据库 559 20.3 管理与维护 560 20.3.1 使用mysqldbcompare比较数据 560 20.3.2 使用mysqldbcopy复制数据 561 20.3.3 使用mysqldbexport导出数据 561 20.3.4 使用mysqldbimport导入数据 562 20.3.5 使用mysqldiff比较对象的定义 562 20.4 专家解惑 563 20.5 经典习题 564 第21章 读写分离的利器——MySQL Proxy 565 21.1 概述 565 21.2 安装与配置 566 21.2.1 下载与安装MySQL Proxy 566 21.2.2 配置MySQL Proxy参数 567 21.2.3 配置Path变量 569 21.3 使用MySQL Proxy实现读写分离 571 21.4 专家解惑 572 21.5 经典习题 572 第22章 PHP操作MySQL数据库 573 22.1 PHP访问MySQL数据库的一般步骤 573 22.2 连接数据库前的准备工作 574 22.3 PHP操作MySQL数据库的函数 575 22.3.1 通过MySQLi类库访问MySQL数据库 575 22.3.2 使用MySQLi_connect()函数连接MySQL服务器 577 22.3.3 使用MySQLi_select_db()函数选择数据库文件 577 22.3.4 使用MySQLi_query()函数执行SQL语句 578 22.3.5 使用MySQLi_fetch_assoc ()函数从数组结果集中获取信息 578 22.3.6 使用MySQLi_fetch_object()函数从结果中获取一行作为对象 578 22.3.7 使用MySQLi_num_rows()函数获取查询结果集中的记录数 579 22.3.8 使用MySQLi_free_result()函数释放资源 579 22.3.9 使用MySQLi_close()函数关闭连接 579 22.4 综合实例1——使用insert语句动态添加用户信息 580 22.5 综合实例2——使用select语句查询数据信息 583 22.6 专家解惑 585 22.7 经典习题 585 第23章 新闻发布系统数据库设计 586 23.1 系统概述 586 23.2 系统功能 587 23.3 数据库设计和实现 588 23.3.1 设计表 588 23.3.2 设计索引 592 23.3.3 设计视图 593 23.3.4 设计触发器 594 23.4 案例总结 595 第24章 论坛管理系统数据库设计 596 24.1 系统概述 596 24.2 系统功能 597 24.3 数据库设计和实现 598 24.3.1 设计方案图表 598 24.3.2 设计表 600 24.3.3 设计索引 603 24.3.4 设计视图 604 24.3.5 设计触发器 605 24.4 案例总结 606

2018-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除