读书笔记
文章平均质量分 88
读书笔记
zhy29563
让我踩过的坑,都风吹云散
展开
-
【笔记】【MySQL5.7 从入门到精通】第01章 初识MySQL
目录1.1 数据库基础1.1.1 什么是数据库1.1.2 表1.1.3 数据类型1.1.4 主键1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口1.3 什么是MySQL1.3.1 客户机-服务器软件1.3.2 MySQL 版本1.4 MySQL 工具1.4.1 MySQL命令行实用工具1.1 数...原创 2019-07-25 11:16:54 · 523 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第02章 MySQL的安装与配置
目录【Server Configuration Type】【命令行启动与关闭MySQL】【命令行登陆MySQL】【MySQL开启远程登陆权限】【Server Configuration Type】Development Machine:该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。 Server Machin...原创 2019-07-25 11:48:45 · 185 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第03章 数据库基本操作
目录3.1 创建数据库3.3数据库存储引擎3.3.1 MySQL存储引擎3.3.2 InnoDB3.3.3 MyISAM存储引擎3.1 创建数据库【查看当前所有存在的数据库】SHOW DATABASES;【创建数据库】CREATE DATABASE test_db;【查看数据库test_db定义】SHOW CREATE DATABASE te...原创 2019-07-25 13:10:52 · 235 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第04章 数据表基本操作
目录4.1 创建数据表4.1.1 创建表的语法形式4.1.2 使用主键约束4.1.3 使用外键约束4.1.4 使用非空约束4.1.5 使用唯一性约束4.1.6 使用默认约束4.1.7 设置表的属性值自动增加4.2 查看数据表的结构4.2.1 查看表基本结构4.2.2 查看表详细结构语句4.3 修改数据表4.3.1 修改表名4.3.2 修改字段...原创 2019-07-25 16:50:18 · 280 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第05章 数据类型和运算符
目录5.1 MySQL数据类型介绍5.1.1 整数类型5.1.2 浮点数类型和顶点数类型5.1.3 日期与时间类型5.1.4 文本字符串类型5.15 二进制字符串5.3 常见运算符5.3.1 运算符概述5.3.2 算术运算符5.3.3 比较运算符5.3.4 逻辑运算符5.3.5 位运算符5.1 MySQL数据类型介绍MySQL支持多种数据类型...原创 2019-07-25 22:41:06 · 209 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第06章 MySQL函数
目录6.2 数学函数6.2.1 ABS(X) && PI()6.2.2 SQRT(X) && MOD(X,Y)6.2.3 CEIL(X) && CEILING(X) && FLOOR(X)6.2.4 RAND && RAND(X)6.2.5 ROUND(x) && ROUND(X...原创 2019-07-26 10:47:52 · 308 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第07章 查询数据
目录7.1 基本查询语句7.2 单表查询7.3 使用聚合函数查询7.4 连接查询7.5 子查询7.6 合并查询结果(UNION)7.7 为表和字段取别名7.8 使用正则表达式查询7.1 基本查询语句CREATE TABLE fruits( f_id char(10) NOT NULL, s_id INT ...原创 2019-07-26 13:27:17 · 394 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第08章 插入、更新与删除数据
目录8.1 插入数据8.2 更新数据8.3 删除数据CREATE TABLE person( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, i...原创 2019-07-26 13:42:24 · 251 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第09章 索引
目录9.1 索引简介9.1.1 索引的含义和特点9.1.2 索引的分类9.1.3 索引的设计原则9.2 创建索引9.2.1 创建表的时候创建索引9.2.2 在已经存在的表上创建索引9.3 删除索引索引用于快速找出某个列中右一特定值的行。不使用索引,MySQL必须从第1条记录开始读完整个表,直到找出相关的行。表越大,查询数据花费的时间越多。如果表中查询的列有一个...原创 2019-07-26 16:40:32 · 171 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第10章 存储过程和函数
目录10.1 创建存储过程和函数10.1.1 创建存储过程10.1.2 创建存储函数10.1.3 变量的使用10.1.4 定义条件和处理程序10.1.5 光标的使用10.1.6 流程控制的使用10.2 调用存储过程和函数10.2.1 调用存储过程10.2.2 调用存储函数10.3 查看存储过程和函数10.4修改存储过程和函数10.5 删除存储过...原创 2019-07-28 12:38:20 · 286 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第11章 视图
目录11.1 视图概述11.2 创建视图11.2.2 在单表上创建视图11.2.3 在多表上创建视图11.3 查看视图11.4 修改视图11.5 更新视图11.6 删除视图11.1 视图概述数据库中的视图是一个虚拟表,其数据是从一个或多个实体表中导出的。视图还可以从已经存在的视图的基础上定义。在视图中用户可以使用SELECT语句查询数据,以及使用INSERT...原创 2019-07-30 18:10:20 · 219 阅读 · 0 评论 -
【笔记】【MySQL5.7 从入门到精通】第12章 触发器
目录12.1 创建触发器12.1.1 创建只有一个执行语句的触发器12.1.2 创建有多个执行语句的触发器12.2 查看触发器12.3 触发器的使用12.4 删除触发器12.1 创建触发器触发器是一个特殊的存储过程,不同的时,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用,也不需要手动启动,只要当一个预定义的事件(INSERT, D...原创 2019-07-30 18:50:31 · 200 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第一章 使用匿名类型
匿名类型使用关键字var。简而言之,匿名类型就是说你不用指定具体的类型。只要写上var即可,CSharp将计算出右侧表达式所定义的数据类型。然后CSharp编译器指定所定义的变量为该类型。类型被指定以后就相当于强类型,且由编译器在运行时进行类型检查。请脊柱,你无需编写类型定义,因为CSharp会帮你计算出来。这一点很重要,因为在查询语言中,你所请求的以及所获取到的任何特定类型都是根据上下文(查询结果)来定义的。简单地说,查询结果可能会返回一个之前没有定义的类型。1. 使用匿名类型时需要遵守的一些基本原创 2021-11-22 12:44:20 · 528 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第二章 使用复合类型初始化
1. 通过命名类型初始化对象使用默认构造及属性初始化对象private void Form2_Paint(object sender, PaintEventArgs e){ ColoredPoint p1 = new ColoredPoint(); p1.MyColor = Color.Red; p1.MyPoint = new Point(50, 50); ColoredPoint p2 = new ColoredPoint(); p2.MyColor = Color.Red;原创 2020-06-29 17:37:55 · 179 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第三章 定义扩展方法和分布方法
1. 扩展方法及其使用规则使用扩展方法可以扩展密封类型,无需继承 利用扩展方法可以避免出现失控的深度继承层次体系 扩展方法是静态类中的静态方法 扩展方法第一个参数的类型之前必须使用this修饰符;this指带将要被扩展的类型 不支持扩展属性、事件和操作符 相对于实例方法而言,扩展方法的可视性要差一些,而且限制也会多一些 拓展方法是通过实例语法来调用的 拓展方法的优先级比常规方法要低;因此,如果某个类有用一个同名方法的话,那么被调用的将会是实例方法 扩展方法得到只能感知的支持 泛型扩展方原创 2020-06-30 11:22:59 · 176 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第四章 yield return: 使用.NET的状态机生成器
理解yield return 的工作方式yield return 是一个编译器暗示,告诉编译器要生成一个状态机。每当遇到一个含有yield return的代码时,则返回yield return后的表达式的值,并保存当前再代码中的位置。下次调用迭代器函数时,键从该位置重新开始执行。static void Main(string[] args){ foreach (int i in GetEvents()) { Debug.WriteLine("Main : " + i); }}publi原创 2020-06-30 15:47:47 · 254 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第五章 理解Lambda表达式和闭包
了解由函数指针到Lambda表达式得演化过程C++函数指针 ,其实这个例子使用的是C++\CLI#include "stdafx.h"using namespace System;typedef void (*FunctionPointer)(System::String ^str);void HelloWorld(System::String ^str){ Console::WriteLine(str); Console::ReadLine();}int main(a原创 2020-06-30 18:02:25 · 183 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第六章 使用标准查询运算符
筛选信息WHERE子句var numbers = new int[] { -1, -32, 3, 5, -8, 13, 7, -41 };var magnitude = from n in numbers where Math.Abs(n) > 5 select n;foreach (var m in magnitude) Console.WriteLine(m);OFTYPEvar randomData = new object[] { 1, "two", 3, "four"原创 2020-07-01 11:28:12 · 175 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第七章 对查询进行排序和分组
对信息进行排序升序// inspiredstring quote = "Most people have the will to win, few have the will to prepare to win.";// make an array dropping empty itemsstring[] words = quote.Split(new char[] { ' ', ',', '.' }, StringSplitOptions.RemoveEmptyEntries);//原创 2020-07-01 14:41:30 · 248 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第八章 执行聚合运算
聚合聚合运算就是从一组值中计算出一个值。Aggregate拓展方法允许实现自定义的聚合运算。下例共使用了三个不同的序列,然后将阿门聚合到一个序列中。int[] numbers1 = new int[] { 1, 2, 3 };int[] numbers2 = new int[] { 4, 5, 6 };int[] numbers3 = new int[] { 7, 8, 9 };List<int[]> all = new List<int[]>{numbers1, num原创 2020-07-01 15:03:31 · 144 阅读 · 1 评论 -
【笔记】【LINQ编程技术内幕】第九章 执行集合运算
找出非重复元素从一组表示成绩的数字中计算出中间成绩var grades = new int[]{ 65, 72, 72, 75, 75, 77, 79, 80, 81, 81, 81, 85, 88, 91, 92, 92, 92, 95, 99, 100 };var distinct = grades.Distinct();Console.WriteLine("Median grade: {0}", distinct.ToArray<int>()[distinct.Count()原创 2020-07-01 15:35:10 · 112 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十章 掌握Select 和 SelectMany
带有函数调用功能的 Selectclass Program{ static void Main(string[] args) { DateTime start = DateTime.Now; const long upper = 1000000; var numbers = new long[upper]; for (long i = 2000; i < 5000; i++) numbers[i] = i + 1; /* prohibitively slow */原创 2020-07-01 16:22:21 · 153 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十一章 联接查询结果
使用多个 from 子句一个LINQ查询中有多个from子句,并不意味着一定要用join。相互关系是指查询中用以说明一个序列如何与另一个序列相关联的部分。这个可以通过join子句中的equal关键字。也可以通过不等式或多个表达式来实现。string[] willRogers ={ "Don't gamble; take all your savings ", "and buy some good stock and hold it ", "till it goes up, then sell i原创 2020-07-02 09:50:05 · 218 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十三章 使用LINQ查询关系型数据
LINQ可以直接对DataSet进行查询,也可以用DataContext和Table(实现了ITable、IQueryable以及IEnumerable)。最紧绷的工作市定义一个对象关系映射(PRM),用于将C#实体类与数据库中的表映射起来。这不是很费事,因为可以使用SqlMetal命令行实用工具或LINQ to SQL类设计器来完成定义ORM这样的苦差事。定义表对象为了使用LINQ to SQL,你需要下面这些东西:一个数据库System.Data.Linq的引用一个DataContext实例原创 2020-07-02 13:24:15 · 305 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十四章 创建更好的实体以及映射继承和聚合
使用可空类型定义更好的实体在读取数据库列时,我们常常都需要左令人厌烦的DBNull或null检验,这中代码很乏味.使用可空类型,就可以避免编写DBNull或null检验.可空类型的定义方式有两种:可以通过泛型类型Nullable显示定义,也可以将简介表姐?作为后缀加在数据类型上.可空类型可以使用空结合运算符??进行检验. int? x = y ?? 0有了可空类型,就可以将数据库中的空字段直接赋值给实体类中的可空字段或属性了.这里有个小问题,即如何知道是否将某个实例可空化.简单的档案室,所有值类型的字原创 2020-07-02 15:53:32 · 180 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十五章 通过LINQ查询关联数据库表
通过LINQ to DataSet定义联接针对数据的LINQ有两个基本的使用方式.可以编写LINQ to DataSet代码来查询DataSet中的表,也可以定义实体并使用LINQ to SQL去查询这些实体.等式联接class Program{ static void Main(string[] args) { const string connectionString = "Server=localhost;Database=Northwind;Trusted_Connection=Tr原创 2020-07-03 09:47:09 · 332 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十六章 更新匿名关系型数据
插入数据class Program{ static void Main(string[] args) { Northwind northwind = new Northwind(); Table<Customer> customers = northwind.GetTable<Customer>(); Customer customer = new Customer(); customer.CustomerID = "DUSTY"; customer原创 2020-07-04 09:39:10 · 1138 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十八章 从XML中提取数据
样例XML<?xml version="1.0" encoding="utf-8" ?><pets> <pet> <id>1</id> <name>Duke</name> <species>Great Dane</species> <sex>Male</sex> <startYear>1968</startYea原创 2020-07-04 11:40:46 · 242 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第十九章 比较LINQ to XML 与其他XML技术
XPath (XML路径语言,XML Path Language)是一种表达式语言,用于从XML文档中选择节点。XSLT(扩展样式表转换语言,Extension Stylesheet Language Transformation)是一种声明性语言,用于将XML文档从一种形式转换为另一种形式。比如说,XSLT可以将XML文档转换成HTML文档。比较LINQ to XML 和 XPath原生XML文档<?xml version="1.0" encoding="utf-8"?><B原创 2020-07-04 22:51:25 · 175 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第二十章 从非XML数据构造XML
从CSV文件构造XMLCSV文件是一种文本文件,包含的是用逗号分隔的值;一般来说,一行文本就表示一条独立记录。可以根据逗号来拆分出各个值,然后使用函数构造将整个文本文件转换成XML。class Program{ static void Main(string[] args) { string all = GetQuotes("MSFT GOOG DELL"); string[] quotes = all.Replace("<b>", "").Replace("</b>原创 2020-07-04 23:03:03 · 99 阅读 · 0 评论 -
【笔记】【LINQ编程技术内幕】第二十一章 使用XmlWriter生成XML
快速浏览XmlWriterXmlWriter类是一个抽象类。这意味着你可以声明它但却不能将其实例化。跟准确地说,赋值运算符的左侧可以是一个XmlWriter,而赋值运算符的右侧必须是它的一个具体后代。XmlWriter的基本行为是这样的:它含有用于向XML文档中写入元素的方法(并具有很好的格式化效果),不过并不会强制生成一个正确的XML文档。XmlWriter将二进制数据编码为Base64数据或十六进制值。可以完成的操作主要有:指定是否支持名称空间、刷新和关闭文档、获取当前命名空间、编写有效名称和平镇原创 2020-07-04 23:14:11 · 115 阅读 · 0 评论 -
【笔记】【C# 二维三维图形绘制工程实例宝典】 第02章 图形基础
目录2.1 笔和笔刷2.1.1 Pen2.1.2 Brush2.2 基本图形形状2.2.1 点2.2.2 直线和曲线2.2.3 矩形、椭圆和圆弧2.2.4 多边形2.3 颜色2.3.1 ColorMap2.4 双倍缓存2.1 笔和笔刷2.1.1 Pen// 构造函数public Pen(color)public Pen(color, f...原创 2019-09-25 15:25:13 · 1956 阅读 · 2 评论 -
【笔记】【C# 二维三维图形绘制工程实例宝典】 第03章 坐标系统和颜色变换
3.1 坐标系统GDI+定义了三种形式的坐标系统:世界坐标系统,页面坐标系统和设备坐标系统。测量相对于文档区域左上角的位置和测量相对于屏幕(桌面)左上角的位置之间的区别非常重要,GDI+为它们指定了不同的名称:世界坐标:用来绘制自然模型的坐标(以像素为单位)。Graphics.Draw*使用的坐标就是该坐标系下的坐标。 页面坐标:要测量的点距离客户区域左上角的位置(以像素为单位)。...原创 2019-10-14 16:19:21 · 1145 阅读 · 0 评论 -
【笔记】【C# 二维三维图形绘制工程实例宝典】 第04章 二维矩阵和变换
4.1 矩阵基础和变换矩阵在变换处理中承担了一个相当重要的角色。一个矩阵就是一个二维数组,最为常用的几何变换都是线性变换,这包括旋转缩放、切变、对称以及正投影。在二维空间中,线性变换可以用2*2的矩阵表示,但是平移却不能应用线性变换的2*2矩阵表示,为了能在矩阵中处理所有的变换操作,将引入其次坐标的概念。4.2 齐次坐标在其次坐标中,二维空间内的所有变换,包括缩放、对称、旋转、平移等,...原创 2019-10-16 06:58:55 · 2550 阅读 · 7 评论 -
【笔记】【WPF编程宝典】 第01章 WPF概述
目录1.1 Windows图形演化1.1.1 DirectX:新的图形引擎1.1.2 硬件加速与WPF1.2 WPF:高级API1.3 分辨率无关性1.3.1 WPF单位1.4 WPF体系结构1.4.1 类层次结构WPF(Windows Presentation Foundation)是用于Windows的现代图形显示系统。与之前出现的其他技术相比,WPF发生了...原创 2019-04-09 10:19:47 · 1283 阅读 · 0 评论 -
【笔记】【WPF编程宝典】 第02章 XAML
目录2.1 理解XAML2.1.1 WPF 之前的图形用户界面2.1.2 XMAL 变体2.1.3 XAML编译2.2 XAML基础2.2.1 XAML名称空间2.2.2 代码隐藏类2.3 XAML 中的属性和事件2.3.1简单属性与类型转换器2.3.2 复杂属性2.3.3 标记扩展2.3.4 附加属性2.3.5 嵌套元素2.3.6 特殊字...原创 2019-04-09 15:25:58 · 824 阅读 · 0 评论 -
【笔记】【WPF编程宝典】 第31章 多线程
了解多线程模型多线程是指同时执行多块代码。多线程的目标通常是用于创建能够更好地进行响应的用户界面——当执行其他工作时不会冻结的用户界面——尽管当执行需要消耗大量的CPU时间的算法时,或者长时间执行其他工作时,也可以使用多线程更好地利用多核CPU的功能。WPF支持单线程单元(Single-Thread Apartment)模型,该模型与在Windows窗体应用程序中使用的模型非常类似。它具有以下...原创 2019-04-15 11:24:13 · 580 阅读 · 0 评论