自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 数据库及表的修改和删除

首先新建两个数据库,分别名为test_01与mysql_shiyan,并在mysql_shiyan中建4个表(department,employee,project,table_1),向其中插入数据。删除数据库DROP DATABASE test_01;修改数据库MySQL目前没有提供修改数据库名称的方法,修改数据库名称的命令曾经有被加入,但是这也导致一些安全问题。实际上,数据库几乎不会...

2019-03-13 16:24:20 2854

原创 SELECT语句学习

要学习SELECT语句,首先我们需要建立数据库,在创建数据库并插入数据和SQL约束中我们已经学习了数据库的创建或直接下载,因此我们这里直接跳过这个过程。假设我们已经下载了MySQL-04-01.sql 与MySQL-04-02.sql ,其中第一个用于创建数据库,第二个用于插入数据。基本SELECT语句SELECT语句基本格式为:SELECT 要查询的列名 FROM 表名 WHERE 限制条...

2019-03-08 15:48:02 331

原创 搭建一个简单的成绩管理系统数据库

数据库gradesystem分别有三张表分别用来记录学生信息(student)、课程信息(course)、成绩信息(mark)。student包含3列:sid(主键)、sname、gender;course包含2列:cid(主键)、cname;mark包含4列:mid(主键)、sid、cid、score。首先创建数据库,前面已经说过了,不赘述。然后建表://studentCREAT...

2019-02-27 21:43:37 3158 1

原创 SQL约束

首先我们需要建立数据库,之前我们已经学习了数据库的创建,因此我们这里使用一种新的方法,下载github中的数据文件到本地文件夹并加载文件中数据://下载git clone https://github.com/HYQ/SQL3//登录MySQL加载文件中数据source /home/SQL3/MySQL-03-01.sql;主键约束主键用于约束表中的一行,作为这一行唯一的标识符,一...

2019-02-27 20:14:40 263

原创 创建数据库并插入数据

先用一下两条命令打开MySQL服务并使用root登录:sudo service mysql startmysql -uroot首先创建一个名为mysql_shiyan的数据库:CREATE DATABASE mysql_shiyan;创建成功后输入命令show databases;接下来在刚创建的mysql_shiyan中进行,使用语句use mysql_shiayn对该数据库进行...

2019-02-27 16:40:16 326

原创 Ubuntu Linux在线安装配置MySQl

安装前检查首先,我们检查Linux系统中是否已经安装了MySQL,输入命令尝试打开MySQL服务:sudo service mysql start输入密码后,如果出现以下提示,说明系统中已经安装有MySQL:若提示是这样表示系统中没有MySQL,需要继续安装:mysql:unrecognized service安装配置在Ubuntu上在线安装MySQL,只需要几行简单的命令:#...

2019-02-26 23:10:19 394 1

原创 一条SQL查询语句是如何执行的?-笔记

MySQL基本架构示意图如下,从图中我们可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程 MySQL可分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务器功能以及所有的内置函数(日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎负责数据的存储...

2019-01-09 23:40:20 219

原创 如何防止数据库中的信息被“脱库”-笔记

我们可通过hash算法对用户密码加密之后再存储,不过最好选用较安全的加密算法,比如SHA(MD5据说已被破解),但仅仅这样加密就行了吗?用户信息“脱库”后,黑客利用字典攻击:维护一个常用密码的字典表,将字典中每个密码用hash算法计算hash值,如果用户“脱库”后的密文和hash值相等,基本就可以认为密文对对应的密码就是字典中的密码,为什么说是基本认为?因为可能会存在hash冲突。针对字典攻击...

2019-01-05 23:07:32 3568 1

原创 如何设计一个工业级的散列函数-笔记

何为一个工业级散列表?工业级链表有哪些特性?支持快速查找、删除、插入操作;内存占用合理,不能浪费过多内存空间;性能稳定,极端情况下,性能也不会退化到无法接受的情况。如何实现这样的散列表呢?设计一个合理的散列函数;定义装载因子阈值,并且设计动态扩容策略;选择合适的散列冲突解决方法。...

2019-01-04 21:49:31 207

原创 如何在有限的空间范围内对日志文件进行排序-笔记

现在假设我们有10个接口访问日志文件,每个日志文件大小约300MB,每个文件里的日志都是按照时间戮从小到大排列。你希望将这10个较小的日志文件,合并为1个日志文件,合并之后的日志仍按照时间戮从小到大排列。如果处理上述任务的机器内存只有1GB,你有什么好的解决思路能“快速”地将这10个日志文件合并吗?我们可以每次从各个文件中取一条最小的数据,在内存中根据数据时间戳构建一个最小堆,然后每次把最小值...

2019-01-02 22:23:02 954

原创 如何用快排在O(n)时间内查找第K的数-笔记

我们可利用快排分区的思想解决这个问题:我们选择数组a区间的最后一个元素a[n-1]作为pivot,此时数组可分为三个区间:a[0]~a[p-1],a[p],a[p+1]~a[n-1]。若K=p+1,则p为所求。若K>p+1,则按上述思路对a[p+1]~a[n-1]区间内进行求解,若K<p+1,同理。为什么上述查找方式复杂度为n呢?第一次分区查找,我们需要对大小为n的数组进...

2019-01-02 22:01:29 513

原创 为什么插入排序比冒泡排序更受欢迎-笔记

我们先来看看冒泡排序代码:// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) {if(n<=1) return;for(int i=n-1;i>0;i--){ int flag=false; // 提前退出冒泡循环的标志位 for(int j=1;j<=i;j++){ if(a[j]&...

2019-01-02 16:41:50 291

原创 如何“三行代码”找到最终推荐人-笔记

用户A推荐B,B推荐C,我们说C的最终推荐人是A,B的最终推荐人也是A,而A没有最终推荐人,一般来说我们用**数据库**来建立这种关系,在数据库表中,我们可以记录两行数据,其中 actor_id表示用户 id,referrer_id 表示推荐人 id。![](https://img-blog.csdnimg.cn/20181226232200196.jpg?x-oss-process=image...

2018-12-26 23:23:42 583

原创 队列在线程池等有限资源池中的应用-笔记

当我们向固定大小的线程池中请求一个线程时,若线程中没有空闲资源了,这时候线程池是拒绝请求还是排队请求还是?各种处理策略如何实现?一般我们有两种处理策略:1.非阻塞方式:直接拒绝请求;2.阻塞方式:将请求排队,当有空闲线程时,取出排队的线程继续处理。我们需要对排队的请求公平处理,先来者先服务,因此队列这种数据结构很适合处理这种排队结构。队列又分为链式队列和数组队列,链表队列可支持一个无限排...

2018-12-25 13:54:03 216 1

原创 如何实现浏览器的前进后退功能-笔记

浏览器大家都很熟悉,当我们点开一系列页面例如a-b-c时,到c页面后退可以查看b、a页面,在b、a页面前进可以查看c页面,但是当在b页面重新进入一个新的页面时,此时再也不能通过前进或者后退进入c页面了,这是怎么实现的呢?很简单,两个栈即可实现此功能。1.首先,进入一系列页面a、b、c:将a、b、c依次压入栈Stack1,此时在页面c;2.后退两步:将c、b依次弹出再压入栈Stack2;3.前...

2018-12-24 17:16:10 2688

原创 链表实现LRU淘汰算法-笔记

首先简单介绍下链表数组需要一段连续的内存空间来存储,而链表可将一组零散的内存块串联起来使用最常见的链表有:单链表、双向链表、循环链表。链表通过指针将一组零散的内存块串联在一起,其中,内存块称为链表结点,为把所有结点串起来,每个链表结点除了存储数据外,还需要记录下一个结点地址。这个记录下一个结点地址的指针叫后继指针next。双向链表还有一个前驱指针prev指向前一个结点...

2018-12-23 18:27:44 439

原创 数组-笔记

数组是什么:数组是一组线性表数据结构,它用一组连续的内存空间来存储一组具有相同类型的数据。线性表:数据排成像线一样的结构,每个线性表上数据最多只有前后两个方向,链表、队列、栈也为线性表结构。非线性表:二叉树、堆、图。非线性是指数据不是简单的前后对应关系。为什么数组从0开始编号数组下标准确来讲指的是“偏移”,例如数组a,数组a[0]表示偏移0个type_size位置即为首地址,数组a[k]表...

2018-12-20 23:32:30 107

原创 算法与数据结构时间空间复杂度分析-笔记

第一篇博客终于正式开始写了,又菜又懒的自己要开始监督自己好好学习,立个FLAG,一周至少两篇。数据结构和算法本就是用来解决“快”和“省”的问题。即要代码快速运行,又要节省空间,那么对时间和空间复杂度的分析便格外重要,尤其在数据量巨大的时候,这也是为什么BAT这种大公司面试时对算法和数据结构要求很高。我们对大O表示法都很熟悉了,这里粗略说下。它实际上并不具体表示代码真正的执行时间,而是表示代码执...

2018-12-19 00:04:39 263

空空如也

空空如也

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

TA关注的人

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