SQL必知必会
SQL 概述表( table)某种特定类型数据的结构化清单 。这里的关键一点在于,存储在表中的数据是同一种类型的数据或清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中,否则以后的检索和访问会很困难。应该创建两个表,每个清单一个表。
说明:表名使表名成为唯一的,实际上是数据库名和表名等的组合。有的数据库还使用数据库拥有者的名字作为唯一名的一部分。也就是说,虽然在一个数据库中不能两次使用相同的表名,但在不同的数据库中完全可以使用相同的表名。
模式关于数据库和表的布局及特性的信息。 表具有一些特性,这些特性定义了数据在表中如何存储,包括存储什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式( schema),模式可以用来描述数据库中特定的表也可以用来描述整个数据库(和其中表的关系)。
列( column)表中的一个字段。所有表都是由一个或多个列组成的。 理解列的最好办法是将数据库表想象为一个网格,就像个电子表格那样。网格中每一列存储着某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编 ...
数据库概论第三章-SQL
SQL 概 述SQL 的特点
综合统一
SQL 集数据定义语言、 数据操纵语言、 数据控制语言的功能于一体, 语言风格统一,可以独立完成数据库生命周期中的全部活动,
高度非过程化而用 SQL 进行数据操作时, 只要提出“ 做什么”, 而无须指明“ 怎么做”, 因此无须了解存取路径。
面向集合的操作方式SQL 采用集合操作方式, 不仅操作对象、 查找结果可以是元组的集合, 而且一次插入、 删除、 更新操作的对象也可以是元组的集合。
以同一种语法结构提供多种使用方式SQL 既是独立的语言, 又是嵌入式语言。
语言简洁, 易学易用
数据定义模式
表
修改表
删除基本表当某个基本表不再需要时, 可以使用 DROP TABLE 语句删除它。 其一般格式为:DROP TABLE <表名〉 [RESTRICT | CASCADE] ;若选择 RESTRICT, 则该表的删除是有限制条件的。 欲删除的基本表不能被其他表的约束所引用( 如 CHECK, FOREIGN KEY 等约束), 不能有视图, 不能有触发器( trigger),不能有存储过程或函数等。 如果存在这些 ...
数据库概论第一章绪论
数据库系统概述四个基本概念数据data数据种类:字符、数字、文本、音频、视频……
数据 :描述事物的符号记录
数据的含义:就是语义(semantic)。简单的说,数据就是符号。数据本身没有任何意义,只有被赋予含义的数据才能够被使用,这时候数据就转化为了信息,而数据的含义就是语义。语义可以简单地看作是数据所对应的现实世界中的事物所代表的概念的含义,以及这些含义之间的关系,是数据在某个领域上的解释和逻辑表示。
数据库database,DB
数据库:是长期储存在计算机内、有组织的、可共享的大量数据的集合(无序、无重复、同类型)
数据库基本特征:
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高
易扩展
数据库管理系统database management system,DBMS什么是数据库管理系统(DBMS)?
位于用户与操作系统之间的一层数据管理软件
是基础软件,是一个大型复杂的软件系统
数据库管理系统DBMS的作用:
数据定义功能
提供数据定义语言(DDL
定义数据库中的 ...
数据库概论第二章关系数据库
关系数据结构及形式化定义关系模型由关系数据结构、 关系操作集合和关系完整性约束三部分组成。
关系数据结构域是一组具有相同数据类型的值的集合 。一个域允许的不同取值个数称为这个域的基数
笛卡儿积是域上的一种集合运算。
元组二维表中的一行元素。每一个元素(d1,d2,d3,…,dn) 叫作一个 n 元组 ( n-tuple ), 或简称元组( tuple)。
分量元素中的每一个值di叫做一个分量( component )
(张清玫, 计算机专业, 李勇)、 ( 张清玫, 计算机专业, 刘晨) 等都是元组。 张清玫、计算机专业、 李勇、 刘晨等都是分量。
关系
当n=1 时, 称该关系为单元关系( unary relation), 或一元关系。当 n=2 时, 称该关系为二元关系 ( binary relation).
关系是笛卡儿积的有限子集, 所以关系也是一张二维表, 表的每行对应一个元组, 表的每列对应一个域。 由于域可以相同, 为了加以区分, 必须对**每列起一个名字, 称为属性(attribute)**。 n 目关系必有 n 个属性。
若关系中的某一属性组的 ...
kmp算法
面试题:写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。 10+G的日志中,如何快速地查找关键字?对于字符串abcabcabcabcd,子串abcabcd
暴力匹配算法如下:每一次发现子串不匹配,将子串后移一格并从第0个字符开始重新匹配
但其实肉眼观察一下不难发现应该这样匹配,
如果匹配不成功,我们应该将子串往后移动3位而不是1位,并且在子串的第3个字符’a’(这个3表示下标,从0开始)与主串的当前字符进行匹配,至于为什么是子串的第3个字符开始与主串匹配而不是像暴力那样重新从第0个字符重新匹配,这里我们是用肉眼观察法观察所得的,但其实是有一个严谨的过程推算得到的,下面我们先引入两个概念,前缀与后缀
前缀:除了最后一个字符,一个字符串的全部头部集合
后缀:除了第一个字符,一个字符串的全部尾部集合
前缀一般不会搞错,但是注意后缀集合,从后往前看,逐个选取组合,比如abcabc的后缀集合{c,bc,abc,cabc,bcabc},不要搞错了
为什么子串abcabcd匹配到第7个字符”d”发现不匹配时,这个时候已经匹配成功的模式串是”abcabc”,这个时候我们寻找到”ab ...
红黑树2021年限量高清重置版
highlight: vs2015theme: juejin
红黑树的五个性质:
每个结点是红的或者黑的
根结点是黑的
每个叶子结点是黑的
如果一个结点是红的,则它的两个儿子都是黑的
对每个结点,从该结点到其子孙结点的所有路径上的 包含相同数目的黑结点
平衡的定义是说从空链接到根节点距离相等,此处一定要用心理解。(也就是说非叶子节点是不会存在空链接的
节点定义1234567891011121314151617181920212223#define RED 1#define BLACK 2typedef int KEY_TYPE;typedef struct _rbtree_node { //红红黑树性质 unsigned char color; struct _rbtree_node* right; struct _rbtree_node* left; struct _rbtree_node* parent; KEY_TYPE key; //value void* value;} r ...
数据结构基础知识
基本概念
1.数据(data): 所有能输入到计算机中并被计算机程序加工、处理 的符号的总称。 如:整数、实数、字符、声音、图象、图形等。
2.数据元素(data element): 数据的基本单位。(元素、记录、结点、顶点) 在计算机程序中通常作为一个整体进行考虑和处理。
3.数据项(data item): 是数据的不可分割的最小单位。如:姓名、年龄等 一个数据元素可由一个或多个数据项组成。 如: (姓名、年龄)
4.数据对象(data object): 由性质相同(类型相同)的数据元素组成的集合。 数据对象是数据的一个子集。 例1 由4个整数组成的数据对象 D1={20,-30,88,45} 例2 由正整数组成的数据对象 D2={1,2,3,…} 例3 由26个字母组成的数据对象 D3={A,B,C,…,Z} 其中:D1,D3是有穷集,D2是无穷集
5.数据结构(data structure): 相互之间存在一种或多种特定关系的数据元素的集合。 数据元素之间的关系称为结构。
6.数据的逻辑结构: 各数据元素之间的逻辑关系(逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上 ...
数组与广义表
线性表:L=(a1,a2,…,an),ai是同类型的元素,1≤i≤n
数组: A= (a1,a2,…,an) 若ai是同类型的元素,A是一维数组,1≤i≤n 若ai是同类型的定长线性表,A是多维数组,1≤i≤n
广义表:Ls= (a1,a2,…,an) ai可以是同类型的元素或广义表,1≤i≤n数组的基本概念及其操作数组的递归定义
1.一维数组: 是一个定长线性表(a1,a2,…,an)。 其中:ai为数据元素,i为下标/序号,1≤i≤n (a1,a2,…,an )又称为向量
**2.二维数组: **
3.三维数组
数组的操作
1.生成一个数组: int a[7];//生成静态一维数组
2.赋值/修改 a[1]=15;(a[1])++;
3.取元素的值: a[0]=a[1]*2;
4.销毁一个数组
int a[10];属于静态分配;静态分配的内存在栈里,每进入一个函数时都会建栈,栈里会存放函数用到的参数、局部变量等信息,函数执行完以后,会出栈销毁栈,这个过程就会释放你静态分配的数组内存,这是由系统自动完成的。
pa=(int )malloc(nsizeof(int)); ...
线性表
线性表的定义线性表的逻辑结构
线性表: 钱性表是具有相同类型的 n(n > 0 ) 个数据元素的有限序列 记作: L=(a1,a2,…,an) a1──首元素 an──尾元素 ,注意线性表既可以是数组这样的顺序表也可以是链表但不能是树。
表的长度(表长)──线性表中数据元素的数目。
空表──不含数据元素的线性表
线性表的特征对于 L=(a1,a2,…,ai-1 , ai,ai+1,…,an)
ai-1在ai之前,称ai-1是ai的直接前驱 (1<i≤n)
ai+1在ai之后,称ai+1是ai的直接后继 (1≤i<n)
a1没有前驱
an没有后继
ai(1<i<n)有且仅有一个直接前驱和一个直接后继线性表的顺序表示(顺序存储结构:数组等)顺序分配: 将线性表中的数据元素依次存放到计算机存储器中一组地址连续的存储单元中, 这种分配方式称为顺序分 配或顺序映像。由此得到的存储结构称为顺序存储结构或向量(一维数组)。
优点:
(1)是一种随机存取结构,存取任何元素的时间是一个常数,速度快; 随机存取(直接存取,Random Access)指的是当存储器中的数 ...
图
图的定义和术语
1.图: 图G由顶点集V和关系集E组成,记为: G=(V,E), V是顶点(元素)的有穷非空集, E是两个顶点之间的关系的集合。
2.有向图、弧(有向边):若图G任意两顶点a,b之间的关系为有 序对,∈E, 则称为从a到 b的一条弧/有向边; 其中: a是的弧尾, b是的弧头; 称该图G是有向图。 例 G1={V1,E1}, V1={A,B,C,D,E} E1={<A,C>,<A,D>,<C,D>,<B,E>,<E,B>}
无向图、边(无向边): 若图G的任意两顶点a,b之间的关系为 无序对(a,b), 则称(a,b)为无向边(边), 称该图G是无向图。 无向图可简称为图。 (a,b)依附于a和b, (a,b)与a和b相关联 例 G2={V2,E2}, V2={1,2,3,4,5,6}, E2={(1,3),(1,5),(3,5),(4,6)}
完全图: 有n个顶点和n(n-1)/2条边的无向图
有向完全图: 有n个顶点和n(n-1)条弧的有向图。
网(Network): ...