2023/6/4总结

news2024/10/7 17:28:01

 CSS的学习:

2023-06-01 19-57-46-649

移动开发流式布局:

流式布局,是根据百分比布局,因为手机的尺寸会不一样,所以利用百分比布局可以很好的解决缩放以及尺寸问题:

这是跟着视频做的一个案例:

 flex布局:

  • 优点:操作方便,布局简单,应用广泛。
  • 缺点:pc端兼容性差

flex是 flexible box 的缩写,意思是弹性布局,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局

当我们指定父盒子为flex布局之后,子元素的 float、clear、vertical-align 属性都将失效

采用flex布局的元素,称为flex容器,它的所有子元素自动成为容器成员,称为flex项目。

flex布局父项常见属性:

flex-direction:设置主轴的方向

默认的主轴是x轴,y轴是侧轴。

justify-content:设置主轴上的子元素排列方式

 

flex-wrap:设置子元素是否换行

默认不换行,不换行,装不下会缩小子元素的宽度来填充。

  • nowrap:不换行
  • wrap:换行

align-content:设置侧轴上的子元素排列方式(多行)

在单行下没有效果

align-items:设置侧轴上的子元素排列方式(单行)

flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

语法:flex-flow:flex-direction属性 flex-wrap属性;

flex布局子项常见属性:

  • flex 子项目占的份数  分配的是剩余空间
  • align-self 控制子项自己在侧轴的排列方式
  • order 定义子项的排列顺序,前后顺序 默认是0,越小越靠前
     

MySQL必知必会:

自然联结:

对表进行联结,应该至少有一个列出现在不止一个表当中。

 外部联结:

外部联结语法类似

 聚集函数的联结:

计算字段一定要分组

 组合查询:

使用情况:

  • 在单个查询中从不同的表当中返回类似结构的数据
  • 对单个表执行多个查询,按单个查询返回数据

union:

union的使用只需要在各条select语句之间放上关键字union。

使用规则:

  • union必须由俩条或者俩条以上的select语句组成,用union分隔。
  • 列数据类型必须兼容,类型不必完全相同。
  • union从查询结构集中去除了重复的行。union组合查询只能使用一条order by语句,必须出现在最后一条select语句之后。
  • union几乎总是完成与多个where条件相同的工作,union all为union的一种形式,如果需要每个条件的重复行,必须使用union all 而不是where

全文搜索:

出现全文搜索是因为,like和regexp是一行一行匹配的,这样效率会很低。全文搜索的这个是只搜索表的部分,MySQL不需要分别查看每一行,只用创建列中各词的一个索引,针对这些词搜索,快速有效的决定哪些词匹配。

一般在创建表的时候启用全文本搜索。在create语句当中,指定索引列  fulltext 

需要注意的是索引列必须是,char,varchar,text类型。

已经建立的表,写索引:

具体格式为 create fulltext index index_name on table_name(colum_name);

select搜索:

  • match()  指定被搜索的列(必须是之前建立索引时的列)
  • against()  指定要使用的搜索表达式 

match可以写多个,只需要和fulltext里面定义的相同,并且正确列出它们(次序正确)

全文排序会对结果排序,具有较高等级的行先返回,越前面越是你想要的数据。  

查询扩展 


查询扩展在against后面的匹配表达式,加上with query expansion语句即可。扩展查询会查俩次,第一次查询能被against语句匹配的,第二次查询能被against所匹配出来的行  去匹配其他行,会返回可能不是你想要的数据。因为我没有试出来,所以就没写列子了。

布尔文本搜索:

布尔文本搜索没有fulltext索引也可以使用,可以实现以下内容:

语法如下,在匹配表达式后面接  in boolean mode

  • 要匹配的词
  • 要排斥的词
  • 排列提示
  • 表达式分组

 

 另外在需要注意的点有:

  • 在索引全文本数据时,短词被忽略且从索引中排除。短词为那些具有3个或者3个以下字符的词(这个数目可以修改)
  • MySQL有一个带有内建的非用词(stopword)列表,这些词在索引全文本数据时,总是被忽略。如果需要,这个列表可以被忽略。
  • MySQL有一条规定,如果一个词出现了50%以上,则这个词作为一个非用词被忽略,50%规则不用于in boolean mode
  •  如果表中行数少于3行,则全文本部分会结果,因为每个词出现概率都达到了50%
  • 忽略词里面的单引号,比如don't 索引为dont
  • 对应中文不能恰当的返回全文本搜索结果
  • 仅在myisam数据引擎中支持全文本搜索

数据插入

insert

语法

 insert语句省略某些列的值,需要满足以下某个条件。

  • 该列定义允许为NULL
  • 该表定义中给出默认值。

如果数据检索是重要的,可以通过在insert 和 into 之间添加关键字low_priority 提示MySQL降低insert语句的优先级。同样适用于update语句和delete语句。 

尽量使用一条语句插入,可以提高数据库处理的性能。

插入检索的数据

insert select由一条  insert  语句和一条  select  语句

 MySQL并不关心select语句返回的列名,它使用的是列的位置,因此select中的第一列(不管列名)将用来填充表中指定的第一个列。

更新数据

update

 为了防止update语句更新时,在更新这些行中的一行或者多行时出现错误,导致update语句操作被取消,使用ignore语句忽略错误继续更新。

语法如下:

update ignore table_name set ……

删除数据

delete

 

 delete语句删除表的操作不是表而是内容,它只是完成了删除表中的所有行,而不是删除表本身。

如果想要更快的删除所有行,不要使用delete,可以使用  truncate table_name  语句,它完成相同的工作。truncate语句实际上时删除原来的表并且重新创建一个表,而不是和delete一样逐行删除表中的数据。

在使用update和delete语句时:

  • 如果不是要打算更新和删除每一行,不要使用不带where语句的update和delete语句
  • 保证每个表都有主键。
  • 在使用update和delet语句时,应该先用select语句进行测试过滤数据,看update和select语句是否正确。

 创建表:

create

 

 如果创建表的时候,指定的表名必须不存在,否则将出错,会覆盖掉之前的表。如果需要只是在一个表不存在时创建它,应该在表名后面用 if not exists

每个表只允许一个auto_increment列,而且它必须被索引(如,通过设置它为主键)。

创建表指定默认值:

在后面接 default  即可,后接默认值

MySQL不允许使用函数作为默认值,它只支持常量。

引擎类型

  • InnoDB  是一个可靠的事务处理引擎,不支持全文搜索,所以在全文搜索的时候不能使用。
  • MEMORY  在功能上等同于MyISAM,但由于数据存储在内存而不是硬盘,所以速度很快,适用于临时表。
  • MyISAM  是一个性能极高的引擎,支持全文本搜索,但是不支持事务处理

外键不能跨引擎。

更新表

alter table

  • 增加列

  •  删除列

  •  定义外键:

  •  删除整个表:

  • 重命名表:

 

 视图

视图是虚拟的表,与包含数据的表不一样。视图只包含使用时动态检索数据的查询。

为什么使用视图:

  • 重用sql语句。
  • 简单复杂的sql操作
  • 使用表的组成部分而不是整个表。
  • 保护数据
  • 更改数据格式和表示。

因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时所需的任一检索。如果你用多个联结和过滤。

视图创建和使用需要注意的:

  • 视图必须唯一命名
  • 视图数量并没有限制
  • 创建视图必须有足够的访问权限。
  • 视图可以嵌套
  • order by可以用在视图中,如果从该视图检索数据select中夜含有order by,那么该视图中的order by将被覆盖。
  • 视图不能被索引,也不能有关联的触发器(这个还不懂)或默认值。
  • 创建视图:

  •  查看创建视图

  • 删除视图:

 

或者先删除在create也是可以。

 创建视图后可以把视图当作表使用:

  •  更新视图

视图是可以更新的

以下是可以的

语句和表是一样的

但是以下情况视图不可以更新

  • 分组,使用了group by和having
  • 联结
  • 子查询
  • 聚集函数
  • distinct
  • 导出(计算)列

 需要注意的是:

当向视图插入数据时,同时也会向原表插入数据。所以插入的时候,需要注意原表是否有不可为NULL的字段。否则会导致出错,无法插入。

存储过程:

存储过程是为以后的使用而保存的一条或者多条MySQL语句的集合。可以将其视为批文件。

为什么使用存储过程:

  • 通过把处理封装在容易使用的单元中,简化复杂的操作。
  • 不要求反复建立一系列处理步骤,保证数据的完整性。
  • 简化对变动的管理
  • 使用存储过程:

MySQL称存储过程的执行为调用,因此MySQL执行存储过程的语句为call,call接受存储过程的名字以及需要传递给它的任意参数。

  • 创建存储过程:

  •  执行存储过程:

  • 删除执行过程

 如果用的是命令行窗口,它所解释的存储过程自身内的  ; 字符  它们最终不会成为存储过程的成分。因为默认的MySQL语句分隔符为;

 其中,DELIMITER //  是告诉命令行程序使用  //  作为新的语句结束分隔符,所以end后接的是 // 而不是分隔符;  执行完了后,又改回去成   ; 

除了\ 符号外,任何字符都可以作为语句分隔符。

  • 使用参数:

一般来说,存储过程并不显示结构,而是把结构返回给你指定的变量。

记录集不是允许的类型,因此,不能通过一个参数返回多个行和列。为了调用此修改过的存储过程,必须指定4个变量名称。所有的MySQL变量名称必须以@开始

 

 关键字out指出相对应的参数用来存储过程传出一个值返回给调用者。另外MySQL支持in(传递给存储过程)、out(从存储过程传出),和  inout  (对存储过程传入和传出)。

 

 

 游标

有时需要在检索出来的行中前进或者后退一行或者多行。这是使用游标的原因。

  • 定义游标

 

  • 打开与关闭游标:

  •  使用游标数据:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lecture 8 Deep Learning for NLP: Recurrent Networks

目录 Problem of N-gram Language Model N-gram 语言模型的问题Recurrent Neural Network(RNN) 循环神经网络RNN Language Model: RNN 语言模型Long Short-Term Memory Model (LSTM) 长短期记忆模型(LSTM)Gating Vector 门向量Forget Gate 忘记门Input G…

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

Nginx-rewrite模块详细介绍

Nginx-rewrite模块 前言一、Nginx-rewrite模块概述1、rewrite场景2、rewrite实现3、rewrite执行顺序4、语法格式 二、rewrite示例1、基于域名的跳转2、基于客户端IP访问跳转3、基于旧域名跳转到新域名后面加目录4、基于参数匹配的跳转5、基于目录下所有 php 结尾的文件跳转6、基…

代码报错 | 出bug-->该如何调试?

代码报错 | 出bug-->该如何调试? 什么叫做bug调试是什么?有多重要?Debug和Release的介绍调试常用的快捷键调试时查看程序当前的信息 如何写出好(易于调试)的代码对const的通俗生活中举例assert的理解 编译常见的错误…

Java程序员面试经验总结

目录 一、企业是如何筛选简历的1.简历筛选流程2.HR如何筛选简历3.部门负责人筛选简历4.总结-简历筛选规则 二、简历注意事项1.简历整体结构2.职业技能3.项目经历4.总结 三、应届毕业生改如何找到合适的练手项目1.项目来源2.如何深入学习项目3.应该学习哪些模块4.模块该如何吃透…

【owt】WebrtcNode, subscribe-sdp offer 流程(1)

sdp offer 流程 1. AmqpClient - New message received sdp offer 的消息 2023-04-26T21:54:19.790 - DEBUG: AmqpClient - RpcServer New message received {method: onTransportSignaling,args: [b149e44bb10d4e91bd162a8c6806ae7b,{sdp: v0\r\n o- 7177131362423164715 …

K8S常见应用场景(六)

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源于希腊语,意为“…

【Java系列】Mybatis-Plus 使用介绍二

序言 你只管努力,其他交给时间,时间会证明一切。 MyBatis-Plus 是 MyBatis 的增强工具,它简化了 MyBatis 的开发,并提供了许多实用的功能和工具类。下面是 MyBatis-Plus 的使用方法: 1 使用方法 1. 引入依赖 在 Maven…

MySQL数据库 9.DQL操作

目录 ​编辑 🤔前言: 🤔DQL介绍: 🤔查询种类: 1.基本查询: 🔍1.查询多个字段: 🔍2.查询所有字段: 🔍3.去除重复记录&#xff…

【数据结构】常见排序算法——常见排序介绍、插入排序、直接插入排序、希尔排序

文章目录 1.排序的概念和应用1.1排序的概念1.2排序的运用1.3常见的排序算法 2.常见的排序算法2.1插入排序2.1.1直接插入排序2.1.2希尔排序 1.排序的概念和应用 1.1排序的概念 在计算机科学中,排序是将一组数据按照指定的顺序排列的过程。排序算法由于执行效率的不同…

01_爬虫基础知识和requests模块简介

爬虫基础知识 1、爬虫简介: 爬虫的作用:帮助我们把网站信息快速提取并保存爬虫的分类: 通用爬虫聚集爬虫爬虫的安全知识:目前来说,无明确法律规定,但每个官网都有自己的爬虫协议(网址后面加/robots.txt)爬虫的爬取流程: 1、获取网页2、提取信息3、保存数据2、爬虫必须…

分布式软件架构——远程服务调用

序言 “架构师”可以是做企业战略设计的架构师,也可以说做业务流程分析的架构师。 架构师视角特指软件系统中技术模型的系统设计者。 在做架构设计的时候,架构师应该思考哪些问题、可以选择哪些主流的解决方案和行业标准做法,以及这些主流方…

【自制C++深度学习框架】前言

KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架,使用C编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计…

气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

✨博主:命运之光 ✨专栏:Java经典程序设计 前言:这篇博客在手机上打开可能会自动播放视频,视频有音乐,请及时关闭手机音乐哈🙂 目录 ✨导语 ✨引言 ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswi…

简单的UDP网络程序·续写

该文承接文章 简单的UDP网络程序 对于客户端和服务端的基本源码参考上文,该文对服务器润色一下,并且实现几个基本的业务服务逻辑 目录 demo1 第一个功能:字典翻译 初始化字典 测试代码:打印 字符串分割 客户端修改 成品效果…

idea如何一个项目启动两个tomcat服务(不同端口)

目录 第一步:创建一个普通的springboot项目 第二步:编写一个controller代码,用来接收请求 第三步:复制服务,端口设置为8081 第四步:依次访问8080、8081两个服务进行测试 第一步:创建一个普通…

基于JavaWeb的保护动物管理系统设计与实现

摘要:随着全球一些稀有物种、野生动物日益稀少,保护动物已经成为全球多个国家开始重视并投入大量物力着手解决的重要课题。动物是大自然的产物,自然界是由许多复杂的生态系统构成的。有一种植物消失了,以这种植物为食的昆虫就会消…

easyExcel导入失败提示用户第几行有误并回滚数据

思路: 在controller定义一个map,将map传入excel监听器,在监听器中处理excel的数据,读取到某一行出现错误就将错误提示信息存入map并抛出一个异常给service。在service方法上开启事务,并将异常出实现数据回滚&#xff0…

vite使用vue3 v-for渲染图片时的写法

写法一 <template><divclass"demo-img"v-for"item in demoOption":key"item.code":style"background-image: url(${getImageUrl(../assets/imge/${item.img}.jpeg)})"></div> </template><script lang&qu…

2023网安最流行的10大工具(附安装包)

从事网络安全工作&#xff0c;手上自然离不开一些重要的网络安全工具。今天&#xff0c;分享10大网络安全工具。 一、Kali Linux Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单&#xff1a;在一个实用的工具包里尽可能多的包含渗透和审计工具。Kali 实现了这…