36k 33 分钟

# SQL 和 MySQL 详解 # SQL 详解 我们通常可以将 SQL 分为四类,分别是 DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和 DCL(数据控制语言)。DDL 主要用于创建、删除、修改数据库中的对象,比如创建、删除和修改二维表,核心的关键字包括 create 、 drop 和 alter ;DML 主要负责数据的插入、删除和更新,关键词包括 insert 、 delete 和 update ;DQL 负责数据查询,最重要的一个关键词是 select ;DCL 通常用于授予和召回权限,核心关键词是 grant 和 revoke 。 说明:SQL...
8.7k 8 分钟

# 关系型数据库和 MySQL 概述 # 关系型数据库概述 数据持久化 - 将数据保存到能够长久保存数据的存储介质中,在掉电的情况下数据也不会丢失。 数据库发展史 - 网状数据库、层次数据库、关系数据库、NoSQL 数据库、NewSQL 数据库。 1970 年,IBM 的研究员 E.F.Codd 在 Communication of the ACM 上发表了名为 A Relational Model of Data for Large Shared Data Banks 的论文,提出了关系模型的概念,奠定了关系模型的理论基础。后来 Codd...
38k 34 分钟

玩转 Linux 操作系统 说明:本文中对 Linux 命令的讲解都是基于名为 CentOS 的 Linux 发行版本,我自己使用的是阿里云服务器,系统版本为 CentOS Linux release 7.6.1810。不同的 Linux 发行版本在 Shell 命令和工具程序上会有一些差别,但是这些差别是很小的。 # 操作系统发展史 只有硬件没有软件的计算机系统被称之为 “裸机”,我们很难用 “裸机” 来完成计算机日常的工作(如存储和运算),所以必须用特定的软件来控制硬件的工作。最靠近计算机硬件的软件是系统软件,其中最为重要的就是 “操作系统”。“操作系统”...
17k 15 分钟

# Web 前端概述 说明:本文使用的部分插图来自 Jon Duckett 先生的 *HTML and CSS: Design and Build Websites * 一书,这是一本非常棒的前端入门书,有兴趣的读者可以在亚马逊或者其他网站上找到该书的购买链接。 HTML 是用来描述网页的一种语言,全称是 Hyper-Text Markup Language,即超文本标记语言。我们浏览网页时看到的文字、按钮、图片、视频等元素,它们都是通过 HTML 书写并通过浏览器来呈现的。 # HTML 简史 1991 年 10 月:一个非正式 CERN(欧洲核子研究中心)文件首次公开 18 个...
25k 23 分钟

# Python 语言进阶 # 重要知识点 生成式(推导式)的用法 prices = { 'AAPL': 191.88, 'GOOG': 1186.96, 'IBM': 149.24, 'ORCL': 48.44, 'ACN': 166.89, 'FB': 208.09, 'SYMC': 21.29 } # 用股票价格大于100元的股票构造一个新的字典 prices2 = {key: value for key, value...
3.4k 3 分钟

# 图像和办公文档处理 用程序来处理图像和办公文档经常出现在实际开发中,Python 的标准库中虽然没有直接支持这些操作的模块,但我们可以通过 Python 生态圈中的第三方模块来完成这些操作。 # 操作图像 # 计算机图像相关知识 颜色。如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是被我们称为美术三原色的东西,它们是不能再分解的基本颜色。在计算机中,我们可以将红、绿、蓝三种色光以不同的比例叠加来组合成其他的颜色,因此这三种颜色就是色光三原色,所以我们通常会将一个颜色表示为一个 RGB 值或 RGBA 值(其中的 A 表示 Alpha...
10k 9 分钟

# # 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个 “复杂巨系统”,对于这样的系统,我们不可能用一两篇文章把它讲清楚,有兴趣的读者可以自行阅读 Andrew S.Tanenbaum 老师的经典之作《计算机网络》或 Kurose 和 Ross 老师合著的《计算机网络:自顶向下方法》来了解计算机网络的相关知识。 # 计算机网络发展史 1960s - 美国国防部 ARPANET...
11k 10 分钟

# 进程和线程 今天我们使用的计算机早已进入多 CPU 或多核时代,而我们使用的操作系统都是支持 “多任务” 的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而缩短程序的执行时间,同时也让用户获得更好的体验。因此在当下不管是用什么编程语言进行开发,实现让程序同时执行多个任务也就是常说的 “并发编程”,应该是程序员必备技能之一。为此,我们需要先讨论两个概念,一个叫进程,一个叫线程。 #...
4.9k 4 分钟

# 使用正则表达式 # 正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替换掉)。如果你在 Windows 操作系统中使用过文件查找并且在指定文件名时使用过通配符(*...
5.8k 5 分钟

# 文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到 “文件” 这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大家自行通过维基百科进行了解。 在 Python 中实现文件的读写操作其实非常简单,通过 Python 内置的 open...