随笔- 38
文章- 0
评论- 1
阅读-
3046
02 2024 档案
数据库基础6 SQL语言概述
摘要:SQL语言引导词 DDL:数据库定义语言 DML:数据库操作语言 DCL:数据库控制语言 1.DDL语句引导词 数据库定义语言 用于各种对象的定义和删除,操作对象是表 2.DML语句引导词 数据库操作语言:增删改查,操作对象是记录 3.DCL语句引导词 数据库控制语言,操作对象是用户权限 常用数据库
阅读全文
数据库基础5 关系演算
摘要:“关系代数是基于集合的查询” “关系演算是基于逻辑的查询” 他们共同构成了数据库结构化查询语言SQL的基础 关系演算概述 关系演算是以谓词演算为基础的 关系元组演算 1.公式的递归构造 sitar:比较运算(>、<、>=、<=、!=、==) 只有这几条之内的,属于【公式】 所有公式都是由以上基本公式
阅读全文
数据库基础4 关系代数运算
摘要:基本操作 前提条件:并相容性 是并、差、交等关系代数操作的前提 参与运算的两个关系及其相关属性之间必须又一定的对应性、可比性或关联性 两个关系的属性数量必须相同 对于任意i,关系R的第i个属性必须与另一个关系的第i个属性的域相同(数据类型、取值范围) 一、传统集合运算 并交差积 1.并运算 U/Un
阅读全文
数据库基础3 关系数据库与关系模型
摘要:数据库系统的组成 1.硬件平台 2.软件 3.人员 (1)数据库管理员(DBA) (2)系统分析员、数据库设计人员 (3)应用程序员 (4)最终用户 1.偶然用户 2.简单用户 3.复杂用户 关系数据库 关系模型是从表(Table)的处理方式中抽象出来的 在对传统表的操作上,进行数学化严格定义的基础
阅读全文
数据库基础2 数据模型
摘要:数据模型 数据模型是什么 数据模型是对现实世界数据特征的抽象 数据模型应该满足的要求 数据模型分类 1.现实→概念→逻辑→物理转换过程 2.概念模型 信息世界基本概念 实体(Entity) 属性 码(键) 实体型 实体集 联系 ER图:实体-联系方法(待续) 数据模型的组成要素 1.数据结构 2.数
阅读全文
数据库基础1 数据库系统概述
摘要:1.1四个基本概念 1.数据定义 2.数据库定义 3.数据库管理系统DBMS 数据库管理系统是介于操作系统与用户之间的 DBMS主要功能: 4.数据库系统 定义与构成: 在不引起歧义的情况下,将数据库系统简称为数据库 1.2数据管理技术的产生和发展 什么是数据管理 三大阶段 三大阶段应用程序与数据关
阅读全文
C#预处理指令 #XXX
摘要:详见:https://learn.microsoft.com/zh-CN/dotnet/csharp/language-reference/preprocessor-directives 预处理指令简介 C#中可使用这些指令来帮助条件编译。 不同于 C 和 C++ 指令,不能使用这些指令来创建宏。
阅读全文
C#数据结构 HashSet 用法
摘要:所属命名空间 .NET 3.5在 System.Collections.Generic 命名空间中包含一个新的集合类:HashSet 这个集合类包含不重复项的无序列表称作HashSet。(类似C++的unordered_set?) 这个集合基于散列hash值,插入元素的操作非常快,不需要像List类
阅读全文
C#数据结构 字典Dictionary
摘要:简介 字典是C#开发中经常使用的一种键值对容器,类似C++的map,可使用foreach或迭代器遍历 不能装多个相同key,底层实现是哈希函数 具体用法 1.创建 Dictionary<key, value> // Key和 Value可以是任意类型 Dictionary<int, string>
阅读全文
刘铁猛C#学习笔记21 反射与依赖注入
摘要:反射 对于一个现有对象,能够在不使用new操作符、不知道其具体静态类型的情况下,创建出一个同类型的对象,还能访问这个复制品对象拥有的各个成员。 相当于进一步的解耦,可以不使用new操作符,就没有类型的依赖关系 这样的耦合关系甚至可以弱到忽略不计 反射在.NET和JAVA中非常重要 为什么需要反射 很
阅读全文
刘铁猛C#学习笔记20 接口隔离与显式实现
摘要:接口的本质是一个功能的提供者与服务的调用者(消费者)之间的一个契约(contract) (协议、标准) 所以接口的所有成员必须是public的 举例1 可迭代接口 Foreach遍历的唯一要求是遍历对象是“可迭代的”,这可以视作一个调用者需求 提供者必须满足这个需求,遍历对象与变量操作之间通过接口达
阅读全文
刘铁猛C#学习笔记19 抽象类、接口与SOLID五大原则
摘要:接口与抽象类是所有高阶面向对象的起点,是学习设计模式的前置条件 必须有实践基础之后,才能真正掌握算法、设计模式 设计模式的基础 solid五大设计原则(待续) 1.单一职责原则 single responsibility principle 2.开放-关闭原则 Open-close principl
阅读全文
刘铁猛C#学习笔记18 重写与多态
摘要:重写override 子类中重新定义父类中已有的方法 重写语法 需要在要重写的父类方法添加一个virtual修饰符(虚方法) 在子类中的同名方法添加一个override修饰符 子类中添加新的成员,是继承中对父类的横向扩展 重写不添加新成员,而是增加已有成员的新版本,可以看着对父类的纵向扩展 但使用不
阅读全文
刘铁猛C#学习笔记17 类Class详解
摘要:class是一种引用类型 每一个类是一种自定义的引用类型 类的构造器 详见方法章节-构造器方法 在C#中,堆内存中的一个实例对象没有被任何变量访问时,会自动被垃圾收集器收集处理 扩展内容 类的析构器(待续) 如果类的对象调用了一些系统底层的资源,垃圾收集器自动处理垃圾时,不会释放这部分系统资源,此时
阅读全文
刘铁猛C#学习笔记16 自定义事件
摘要:自定义事件的完整声明 前言: 编程规范:声明的委托类型用EventHandler作为后缀 编程规范:用于传递事件数据的类名,用EnventArgs作为后缀 委托、事件拥有者(customer)、事件数据传递类要配合在一起使用,所以他们的访问基本必须的一样的。 step1.声明事件封装的委托类型 st
阅读全文
刘铁猛C#学习笔记15 事件的初步了解
摘要:初步了解事件 事件的自然语意:能够发生的事,能以“发生”为谓语的东西 C#中定义:一个对象或类的成员,使这个对象或类具备通知能力 “响铃这个事件,使手机具备了通知关注这个手机的人的能力” 在事件发生时,关注者通过收到的通知,能得到和事件相关的一些信息(称作事件参数) 关注者会去检查收到的事件信息(事
阅读全文
刘铁猛C#学习笔记14 委托2-回调方法、委托高级使用
摘要:示例:回调方法 (也称作好莱坞方法) 演员去面试,给导演留了名片 导演说如果选中他,会给他打电话的 using System; namespace CallBack { class Program { static void Main(string[] args) { //创建工厂实例 Produc
阅读全文
刘铁猛C#学习笔记13 委托1
摘要:“幻想:如果能有一种能把方法当参数的方法就好了” 一、什么是委托 委托源自C、C++中的函数指针 1.C语言中的函数指针 (1)函数的直接调用 先准备好一个加法函数,一个减法函数 可以通过函数名调用这两个函数,这种调用方法称作直接调用 (2)函数指针的声明、间接调用 先按下图中的方法声明一个函数指针
阅读全文
刘铁猛C#学习笔记12 参数种类详解
摘要:一、值参数(传值参数、值传递) 指参数的种类为值参数,而非参数数据类型为值类型 1.值类型的传值参数 类似一个新声明的局部变量,或传进来的实参的一个副本 可以在方法体内重现赋值,但其在方法体内被赋值时,不会影响传进来的本体 2.引用类型的传值参数 引用类型变量存储的是实例在堆内存中的地址 (1)在方
阅读全文
刘铁猛C#学习笔记11 索引器、常量
摘要:一、索引器[ ]概述 使一个对象可以像数组一样用方括号[ ]去访问其元素 ex:字典的声明 1.索引器的声明 首先像上文那样声明一个字典Dictionary< , > 在VS中输入indexer,然后敲两下tab 就能得到:(按下tab可以跳到下一个可编辑项上) 第一个类型参数为返回值的类型,第二个
阅读全文
刘铁猛C#学习笔记10 字段、属性
摘要:这四种东西都是用来表达数据的 一、字段(成员变量) 曾用名:成员变量 是为一个对象或类型存储数据的变量,区别于方法体中的局部变量 多个字段组合起来可以表示对象当前的状态 起源:C语言中结构体的成员变量 一个对象占用的内存空间会被分配给各个字段 1.实例字段和静态字段 可以分为实例字段和静态字段 类比
阅读全文
刘铁猛C#学习笔记9 表达式、语句2
摘要:1.循环语句 C#中有四种循环 while循环,do-while循环,for计数循环,foreach遍历循环 (1)while循环 while() 括号内写循环条件,一个bool类型表达式 之后写一个嵌入式语句作为循环体 (2)do-while循环 先执行一次,在判断循环条件,所以循环体至少会执行一
阅读全文
刘铁猛C#学习笔记8 表达式、语句1
摘要:表达式 1.表达式的定义 通用定义:一种专门用来求值的语法实体 C#中定义:由一个或多个操作数,零个或多个操作符,功能是求值,求值的结果可能是四类 Single value、object、method、namespace (说明至少要有一个操作数,但不一定要有操作符) C#中表达式值的类型: (1)
阅读全文
刘铁猛C#学习笔记7 操作符详解3
摘要:1. 强制类型转换操作符 强制类型转换操作符() int x; string s = (String)x; 例1: string str1 = Console.ReadLine(); string str2 = Console.ReadLine(); //使用ReadLine读取到的是两个strin
阅读全文
刘铁猛C#学习笔记6 操作符详解2
摘要:————— 基本操作符 ——————— 1.checked 与 unchecked 用于检测一个值在内存中是否溢出 Checked:告诉编译器要检查溢出 Unchecked:告诉编译器不用检查溢出 使用在值变量前,若内存溢出,则编译器会出现以下弹窗 ex:try与catch(待补充) Uncheck
阅读全文
刘铁猛C#学习笔记5 操作符详解1
摘要:一.操作符的优先级 此表格中从上往下操作符优先级依次降低,上面的操作符优先级更高,更先运算 提升优先级的方法 可以通过加圆括号的方式,提高表达式的运算优先级 圆括号可嵌套 同优先级的运算顺序 同一行操作符运算优先级相同,优先级相同时大部分按照从左向右的顺序依次运算 但带有赋值功能的操作符固定为最晚运
阅读全文
刘铁猛C#学习笔记4 方法详解
摘要:方法的由来 C++中用两个冒号访问命名空间 如:std::cout << "Hello,World!"; “方法”是一个面向对象的概念,当一个函数作为类的成员出现时,就被称之为方法 方法也可以称作“成员函数” C++中对类的声明放在.h文件中,而类的定义放在.cpp文件中 c#中类的声明和定义是放在
阅读全文
刘铁猛C#学习笔记3 类型、变量、对象、内存
摘要:一、C#中的类型 二、类型所能表示的数的范围 其中S开头代表带符号(用一位来存储符号),U开头代表无符号 8位 = 1字节byte 三、程序的静态与动态: 静态-尚未运行,在编译器中编译 动态-正在运行、调试 程序不运行时在硬盘(外存)里,称作静态的 运行时装载到内存里,称作动态的 四、程序对内存的
阅读全文
刘铁猛C#学习笔记2 类与类的成员
摘要:一、属性 功能:1、储存数据 2、组合起来表示对象的状态(如飞机的【速度】、【飞行高度】) 二、方法 由C语言的函数进化而来 用来做事的 【程序的核心是 数据结构+算法 ,在此属性作为数据结构代表,方法作为算法代表】 三、事件 C#的特有机制 在发生某件事时通知其他类或对象 在VS中,对一个类按下F
阅读全文
刘铁猛C#学习笔记1 类与命名空间
摘要:1、类概述 //实验一 “没有孩子牵着,气球在创建后就会飞走” /* (new Form()).Text = "人类文明观察记录"; //创建了一个Form类的实例,并命名其标题 (new Form()).ShowDialog(); //又创建了一个Form类的实例,并显示出来 //最终显示的只有第
阅读全文
KMP字符串匹配算法
摘要:什么是KMP KMP算法主要应用在字符串匹配问题。 因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP 核心思想 KMP的主要思想是: 「当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。」 (
阅读全文
排序算法汇总:希尔、快速、堆、归并
摘要:排序思想分类 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。(大部分排序算法) 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序(计数排序、桶排序、
阅读全文
动态规划算法
摘要:前言与重点 1.DP数组 dp[ i ] [ j ] 2.递推公式(状态转移公式) 3.算法步骤 1.确定DP数组及其下标的含义 2.确定递推公式(状态转移公式) 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 动态规划理论基础 什么是动态规划 动态规划,英⽂:Dynamic Pro
阅读全文
递归与回溯算法
摘要:递归 函数中自己调用自己 经典例题:汉诺塔 需要将所有盘子按顺序放到塔C上(问题规模:n) 就需要最大的盘子在C底部 就需要将其余所有盘子移动到塔B上 第二塔上也需要按顺序摆放(问题规模:n-1) 就需要第二大的盘子在B底部 就需要将其余所有盘子移动到另一个塔上 ··················
阅读全文
深度优先搜索DFS、广度优先搜索BFS
摘要:深度优先搜索DFS 基本概念 深度优先搜索(Depth-First Search,DFS)是十分常见的图搜索方法之一。 深度优先搜索会沿着一条路径一直搜索下去,在无法搜索时,回退到刚刚访问过的节点。 它从初始节点出发,按预定的顺序扩展到下一个节点,然后从下一节点出发继续扩展新的节点,不断递归执行这个
阅读全文
单调栈算法
摘要:定义 栈内元素单调按照递增(递减)顺序排列的栈。 主要用于找到每一个元素左边或右边,第一个比它大或小的数时,可使用单调栈算法。 时间复杂度 由于每个元素最多各自进出栈一次,复杂度是O(n) 功能 递增单调栈: 在一个队列中针对每一个元素从它右边找到第一个比它小的元素 在一个队列中针对每一个元素从它左
阅读全文
贪心算法思想
摘要:贪心算法 每一步都找到当前局部最优解,短视,但是有思考 贪心算法(Greedy Alogorithm)又叫登山算法,它的根本思想是逐步到达山顶,即逐步获得最优解,是解决最优化问题时的一种简单但是适用范围有限的策略。 贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。 每一步都找到最优解,由于其
阅读全文
排序算法-归并排序
摘要:时空复杂度 时间复杂度:O(nlogn) 空间复杂度:O(n) 使用了分治思想 优势 1.稳定 归并的时空复杂度非常稳定的,不论是在哪种情况下,归并算法的时间复杂度都不变, 2.高效 归并算法计算效率相比其他算法也是非常快的 思路图解 分 把一个有n个元素的数组,分成n个有1个元素的数组 然后边比较
阅读全文