1.sql顺序 顺序4:SELECT *(all),列名,运算符,distinct(除去重复记录) 顺序1:FROM 表名,视图,别名 顺序2:WHERE 条件表达式 顺序3:GROP BY 列名 having 条件表达式 顺序5:ORDER BY 列名 asc(默认升序)desc(降序) 2.位运算符号 按位与运算符(&) 参加运算的两个数,按二进制位进行“与”运算。 例:2 | 4 即 00000010 | 00000100 = 00000110 ,所以2 | 4的值为 6 。 异或运算符(^) 参加运算的两个数,按二进制位进行“异或”运算。 例: 2 ^ 4 即 00000010 ^ 00000100 =00000110 ,所以 2 ^ 4 的值为6 总结: & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 Arrays.fill(数组名,开始下标,结束下标,值) 数组复制: Arraycopy(数组a,开始复制下标,复制到数组b,开始复制下标,复制长度) 数组比较: Arrays.equals(数组1,数组2)
【必备】Linux重点基础知识 学习Linux系统的重要性应该不用多说,下面我就对Linux的基础知识进行一个全面而又简单的总结。 ls ‐a,显示目录下的所有文件,包括隐藏文件 ls ‐l,显示长列表格式 mkdir,建立目录 rmdir,删除空目录 touch,建立空文件 cp,复制命令 【案例】cp ‐r dir1 dir2, txt:在压缩时,将当前目录内的file2.txt文件排除在外 以unzip命令进行.zip文件的解压缩 直接解压缩文件 【案例】unzip file.zip 排除不需要解压缩的文件 【案例】unzip file.zip ‐x file2:除了file2文件外,其他的文件都解压缩 查看压缩包的内容 【案例】unzip ‐Z file.zip:查看file.zip压缩包的内容,也可以使用“-l” “-v 2)文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组,用ls ‐ahl命令可以看到文件的所有组,也可以使用chgrp 组名文件名来修改文件所在的组。
数据、信息和知识是广义数据表现的不同形式。 2. 主要知识模式类型有:广义知识,关联知识,类知识,预测型知识,特异型知识 3. 根据功能和侧重点不同,数据挖掘语言可以分为三种类型: 数据挖掘查询语言:希望以一种像SQL这样的数据库查询语言完成数据挖掘的任务。 b.可能产生庞大的侯选集 由Lk-1产生k-侯选集Ck是指数增长的,例如104个1-频繁项目集就有可能产生接近107个元素的2-侯选集。如此大的侯选集对时间和主存空间都是一种挑战。 29.简述知识发现项目的过程化管理I-MIN过程模型。 MIN过程模型把KDD过程分成IM1、IM2、…、IM6等步骤处理,在每个步骤里,集中讨论几个问题,并按一定的质量标准来控制项目的实施。 IM2任务与目的:它是KDD的预处理阶段,可以用IM2a、IM2b、IM2c等分别对应于数据清洗、数据选择和数据转换等阶段。其目的是生成高质量的目标数据。
Java基础重点知识总结 一、Java基础内置对象 1.Object 可以使用该类型的变量引用任何类型的对象,其中有如下几个方法 toString() getClass():获取对象的“运行时”类型 = Student.class; System.out.println("Class clStu2 = " + "\"" + clStu2 + "\""); // 方法三:对象.getClass() expression1是一个布尔表达式,expression2是一个基本类型或者Object类型,如果expression1为真,则程序忽略expression2继续运行;如果expression1 为假,则运行expression2,然后退出程序。 代表是下限或下限的父类,那么设置为下限或下限子类的对象是安全的 三、集合 首先看看菜鸟教程的集合框架图 我觉得涉及到的知识点大概如下 有哪些集合 集合之间的差别 线程安全/效率 算法 Collection
MySQL知识点进行了一个小结 引擎 MyISAM 不支持事务 支持表级锁 不支持MVCC 支持全文索引 不支持外键 堆表结构 InnoDB 支持事务 支持行级锁 支持MVCC 支持外键 不支持全文索引 =或<>操作符 三范式 第一范式 对属性的原子性约束 要求字段具有原子性,不可再分解 第二范式 满足范式1 非主键字段不能出现部分依赖主键 第三范式 满足范式 2 不能出现传递依赖 表结构优化 建表的时候设置主键
2、 需要将一个DF或者DS注册为一个临时表 3、 通过spark.sql去运行一个SQL语句,在SQL语句中可以通过name(列名)方式来应用UDF函数 2、用户自定义聚合函数 弱类型用户自定义聚合函数 override def merge(b1: Average, b2: Average): Average = ??? 2、新建一个UDAF实例,通过DF或者DS的DSL风格语法去应用。 2、如果hive的metestore使用的是mysql数据库,那么需要将mysql的jdbc驱动包放到spark的jars目录下。 2、任务 这里有三个需求: 1、计算所有订单中每年的销售单数、销售总额 2、计算所有订单每年最大金额订单的销售额 3、计算所有订单中每年最畅销货品 3、步骤 1、加载数据: tbStock.txt #代码
在 Vue 中调用 computed 和调用 data 一样,都是 this.funName,而不是像访问 methods 中的方法那样使用 this.funName()。一般情况 watch 与 computed 都是系统自动调用去实现数据改变的。
网工必会重点知识总结一、组播与组播地址项目 内容说明 组播地址范围 224.0.0.0 ~ 239.255.255.255 基本ACL仅根据源IP进行过滤 高级ACL支持源/目的IP、协议、端口等复合过滤 配置要点 rule permit/deny,顺序影响结果2️⃣ LSDB 链路状态数据库,全区域内设备应保持一致 DR/BDR选举基于优先级和Router ID,广播网络中选举 网络类型 Broadcast、P2P
1.加载应用程序配置 加载应用程序配置有三种方式: 1/从配置对象中加载配置信息from_object 2/从配置文件中加载配置信息 3/从环境变量中加载配置信息 重点掌握第1种,在工作中,我们的项目在启动的时候 2.路由定义 2.1指定请求方式 methods,它有很多参数,但是我们需要掌握最常用的两个 1.GET是请求,浏览器第一次请求的时候是此get请求 2.POST是提交,这种方式更加的安全,所有的信息是打包进行提交的 6.上下文 上下文:相当于一个容器,保存了Flask程序运行过程中的一些信息 有请求上下文和应用上下文,重点掌握请求上下文 request封装了HTTP请求的内容,针对的是HTTP请求 如user = 8.数据库 点我查看详细知识点 8.1Flask中使用数据库 8.1.1Flask-SQLAlchemy SQLAlchemy是对数据库的抽象,让我们不用直接和SQL语句打交道,而是通过python对象来操作数据库 xxx.py db upgrade/downgrade[version] 查看最新/当前/历史版本: python xxxx.py db show/current/history 8.6蓝图 点我查看详细知识点
localhost,port默认为6379,db默认为0(这里的db可不是我们上面实例出来的对象,它指的是redis中编号为0的数据库,redis中的数据库是没有名称的,它默认有16个编号0-15,哈哈,是不是这些知识都忘记了 4.零散知识点 send_static_file 是系统访问静态文件所调用的方法 render_template('模板文件名',key=value)是将数据携带到文件中进行展示,它会到templates 自定义过滤器:有两种方法,我们重点掌握下面的这一种就可以了 1/先定义一个函数,这个函数就是要实现过滤功能的函数 2.然后使用app.add_template_filter('函数名','过滤器名称') 调用ccp发送短信,并且判断短信是否发送成功 7/将短信保存到redis中,可以将用户的手机号作为key,短信验证码作为值,然后再设置有效期.发送成功后,返回响应 这一部分,在前端中也可以实现,但是我们重点放在后端的代码实现上 优质文章推荐: 公众号使用指南 redis操作命令总结 前端中那些让你头疼的英文单词 Flask框架重点知识总结回顾
进程虚拟地址空间划分和布局 函数调用堆栈的详细过程 进程虚拟地址空间划分和布局 任何的编程语言=》 都会产生两种东西 1.指令 2.数据 当一个程序运行时,Linux操作系统会给当前进程分配一个2 temp = 0; temp = a+b; return temp; } int main() { // 测试求和函数 int num1 = 10; int num2 = 20; int result = sum(num1, num2); std::cout << result << std::endl; return 0; } 底层分析: dword ptr[ebp - 4],0Ah int num1 = 20; 对应指令:mov dword ptr[ebp - 8],14h int result = sum(num1, num2)
,伪类选择器的数量 元素,伪元素的数量 例 <style> body h1 { font-size: 10px; } /* (0,0, 0, 2) 例 <style> body h1 { font-size: 10px; } /* (0,0, 0, 2) */ body h1 { font-size: 8px; } /* (0,0, 0, 2) */ * { font-size: 16px; } /* (
==============重点来啦=========== 说下你了解的session和cookie cookie保存在客户端,session保存在服务器上 session的实现,需要在客户机的cookie
==============重点来啦=========== 说下你了解的session和cookie cookie保存在客户端,session保存在服务器上 session的实现,需要在客户机的cookie
Doris重点架构原理 一、Apache Doris介绍 基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以 支持高并发的点查询场景
HTTP协议知识体系核心重点梳理 TCP/IP协议 1.四层模型 2.通信过程 3.tcp三次握手和四次挥手 4.tcp安全传输 4. 2.传输层: 负责提供两台计算机之间的数据传输服务,运输层主要使用下面两种协议 传输控制协议TCP: 面向连接的,面向字节流的,可靠的数据传输服务。 ---- 2.通信过程 ---- 3.tcp三次握手和四次挥手 TCP三次握手和四次挥手 ---- 4.tcp安全传输 基于数据块传输,数据块也被称为报文段或者段 给每个报文段分配一个序列号,用于对失序数据包进行排序和去重 in the first chunk 1C and this is the second one 3 con 8 sequence 0 ---- HTTP状态码 1xx : 接收的请求正在处理 2xx ---- Https完整流程 1)用户在浏览器发起HTTPS请求,默认使用服务端的443端口进行连接; 2)HTTPS需要使用一套CA 数字证书,证书内会附带一个服务器的公钥Pub,而与之对应的私钥
"; if(str1 ==str2) printf("str1 and str2 are same\n"); else printf("str1 and str2 are not same\n"); if 所以str1和str2不同,str3和str4不同。 2. 数组指针 数组指针,这是一个新的概念,那么它到底是数组还是指针呢? int *p1[10]; int (*p2)[10]; //p1, p2分别是什么? {} void test2(int *arr[20])//ok? {} void test2(int **arr)//ok? {} int main() { int arr[10] = {0}; int *arr2[20] = {0}; test(arr); test2(arr2); } 其实上述的传参方式都是可行的,数组传参的本质是将数组的首元素地址传入到函数中
本文重点 关于指针的概念及运用的重点太多,我们分成两部分进行讲解,本文将偏重解释指针的含义及最基本的运用 1. 指针是什么 如果只看名字的话,很容易就理解指针是什么,但这可是C语言里的知识,你该如何去理解呢? 假设你在图书馆里找一本书,但是书架上有很多书,你不知道具体位置。 每个地址标识一个字节,那我们就可以给 (2^32Byte == 2^32/1024KB == 2^32/1024/1024MB==2^32/1024/1024/1024GB == 4GB) 4G的空闲进行编址 #include <stdio.h> int main() { int n = 0x11223344; char *pc = (char *)&n; int *pi = &n; *pc = 0; //重点在调试的过程中观察内存的变化 *pi = 0; //重点在调试的过程中观察内存的变化。 return 0; } 总结: 指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。
void (*pfun1)(); void *pfun2(); 答案是:pfun1,首先*先与pfun1结合,说明它是一个指针,之后再与()结合形成指向函数的指针,返回类型是void。 2. { return (*( int *)p1 - *(int *) p2); } int main() { int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 }; int 冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1)。 int int_cmp(const void * p1, const void * p2) { return (*( int *)p1 - *(int *) p2); } 有了比较函数,我们还得有比较完成后的交换函数 *)p1 + i); *(( char *)p1 + i) = *((char *) p2 + i); *(( char *)p2 + i) = tmp; } } 基于上面的函数,我们开始写基于冒泡排序的
设置系统自带的字体对象 # myfont= pygame.font.SysFont('microsoftyaheimicrosoftyaheiui',60) #参数1是文字对象显示的文字内容,参数2设置为 ,参数3绘制的位置和大小以列表或者元组的形式传入,参数4设置相对应的宽度 # pygame.draw.ellipse(screen, RED, [225, 10, 50, 20],2) # pygame.draw.arc(screen, GREEN,[210, 75, 150, 125], pi/2, pi, 2) # pygame.draw.arc(screen, BLUE, [ 210, 75, 150, 125], pi,3*pi/2, 2) # pygame.draw.arc(screen, RED, [210, 75, 150, 125], 3*pi/2, 2* /meng.ttf',60) #font2当前打字的速度 font2 = pygame.font.Font('.