SQLserver前五讲课堂笔记

第一讲

基本内容

  1. 为什么要学习数据库系统?
  2. 什么是数据库?
  3. 什么是数据库系统?
  4. 什么是数据库管理系统?
  5. 本课程学什么以及学到什么程度?

重点难点

  • 一组概念的区分:数据库、数据库系统和数据库管理系统
  • 熟悉表 的相关要素及术语
  • 熟悉数据库系统的构成(工作环境)
  • 了解数据库管理系统的功能:从用户角度和从系统角度

为什么要学习数据库系统?

传统社会:业务工作
信息社会:业务工作+计算机

什么是数据库?

数据库是电子化信息的集合。将信息规范化并使之电子化,形成电子信息“库”,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理

  • 数据库:Database
  • 数据库管理系统:Database Management System
  • 数据库应用:DataBase Application
  • 数据库管理员:DataBase Administrator
  • 计算机基本系统

什么是数据库管理系统

管理数据库的叫做数据库管理系统。数据库管理系统包含的功能有哪些?
从用户来看:

  • 数据库定义:定义数据库中Table的名称,标题(内涵的属性名称及对该属性值的计算)等
  • 数据库操纵:向数据库的Table中增加/删除/更新数据对数据进行查询、检索、统计等
  • 数据库控制:控制数据库中数据的使用—哪些用户可以使用,哪些不可以使用
  • 数据库各种擦组偶的执行

从系统角度来看:

  1. 语言编译器
  2. 查询优化与实现程序
  3. 存储与索引程序
  4. 事务处理程序
  5. 各种控制程序

本课程学什么及学到什么程度

  1. 数据库系统基本概念(2讲4学时):理解后续内容的基础
    ----基本概念、课程内容及作用、数据库管理系统的标准结构、数据库技术的发展史与发展趋势。

  2. 关系模型与关系运算(3讲6学时):理解数据库语言的基础、正确实现数据库操作,尤其是检索操作的基础,抽象能力训练、集合思维与逻辑思维能力训练
    —关系模型、关系运算:关系代数运算、关系元组演算、关系域演算

  3. 交互式SQL语言及其应用(含课堂训练,3讲6学时):标准数据库语言的语法及其交互式应用训练
    —SQL的各种操作语句:重点是SQL的查询与统计语句,(子模式)视图的应用语句

  4. 数据库应用程序开发(2讲4学时):嵌入式数据库语言的应用语法及其应用训练;数据库应用程序开发
    ----嵌入式SQL语句,及其与高级语言语句的结合,变量传递、结果处理、错误陷阱处理等

  5. 数据建模与数据库设计(含课堂训练,3讲6学时):理解如何对应用系统进行需求分析和抽象,设计出正确的数据库模式
    ----数据库设计的基本概念;E-R图/IDEF1X图的基本思想及其设计结果的表达方法;数据库设计训练;数据库设计过程

  6. 数据库设计理论(3讲6学时)::理解数据库设计的基本理论,掌握数据库正确性分析方法
    ------数据库设计理论:数据依赖、关系范式与模式分解.

  7. 数据库存储与索引技术(2讲4学时):掌握DMBS相关的实现技术I–数据库的基本存储与索引技术
    ----磁盘空间的管理与分配,数据组织方法、数据索引方法;

  8. 数据库基本操作的实现算法(2讲4学时):掌握DBMS相关的实现技术II—数据库的基本实现算法
    —数据库基本操作的实现算法,包括多路归并排序算法、并/交/差/积/选择/投影/连接等的实现算法、一趟算法、二趟算法、基于排序的算法、基于散列的算法等

  9. 数据库查询优化与查询实现(1讲2学时):掌握DBMS相关的实现技术III–数据库查询实现与查询优化算法
    —数据库查询语句处理,数据库查询的语法优化,数据库查询的执行优化等

  10. 数据库事务处理(2讲2学时):掌握DBMS相关的实现技术IV–事务与并发控制,故障恢复
    —数据库事务的概念,可串行性,并发控制;数据库备份、运行工日志与故障恢复

  11. 课程总结(1讲2学时)
    —梳理课程的知识脉络,回顾课程中的重点概念和知识.

数据库抽象与演变

基本内容

  1. 数据库系统的标准结构?
  2. 数据模型?
  3. 数据库系统的演变与发展?

重点与难点

  • 一组概念的区分:三级模式两层映像,物理独立性和逻辑独立性
  • 一组概念的区分:数据-》模式-》数据模型
  • 几种数据模型的差异:网状/层次模型–>关系模型–>OO数据模型

DBMS管理数据的三个层次

  1. 局部模式:某一用户能够看到与处理的数据,全局数据中的某一部分
  2. 逻辑概念层次:从全局角度理解/管理的数据含相互关联的数据
  3. 内部层次:存储在介质上的数据,含存储路径、存储方式、索引方式

三级模式

  • 外模式:某一用户能够看到与处理的数据的结构的描述
  • 概念模式:从全局角度理解/管理数据的结构描述,含相应的关联约束
  • 内模式:存储在介质上的数据的结构描述,含存储路径,存储方式,索引方式等

两层映像

  • E-C 外模式映射概念模式,从而支持实现数据概念视图向外部视图的转换,便于用户观察和使用
  • C-I Mapping 将概念映射为内模式,从而支持实现数据概念视图向内部视图的转换,便于计算机进行存储和处理。

两个独立性

  • 逻辑数据独立性:当概念模式变化时,可以不改变外部模式(只需要改变E-C Mapping),从而无需改变应用程序
  • 物理数据独立性:当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping),从而不改变外部模式

什么是数据模型?

数据模型是对模式本身结构的抽象,模式是对数据本身形式的抽象。
比如:
关系模型:所有的模式都可为抽象表(Table)的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些[操作]和[约束]

三大经典数据模型

  • 关系模型:表
  • 层次模型:树
  • 网状模型:图

简要发展史

  1. 第一个阶段:数据库技术探索阶段(59-67) Database
  2. 第二阶段:数据库技术确立阶段(65-75) 商用网状
  3. 第三阶段:数据库技术成熟阶段(76-80s) 标准化数据库系统结构模型
  4. 第四阶段:数据库技术深化发展阶段(85年以来)

由文件系统到数据库

优点:用户不必考虑文件存储的物理细节,解脱了对物理设备存取复杂性处理的负担
不足:数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的应用程序,数据结构发生改变则更正修改应用程序,文件之间无练习,文件的记录之间无联系,共享性差,冗余度大,不一致高。

层次模型数据库、网状模型数据库到关系数据库

层次模型与网状模型数据库:

  • 数据之间的关联关系由复杂的指针系统来维系,结构描述复杂
  • 数据检索操作依赖于由指针系统指示的路径
  • 逐一记录的操作,不能有效支持记录集合的操作。

由关系数据库到对象关系数据库,面向对象数据库

关系数据库:

  • 按行按列形式组织数据:关系的第1范式
  • 数据项的不可再分特性
  • 关系运算:关系代数、元组演算、域演算—》标准SQL
  • 关系数据库设计理论

对象-关系数据库:

  • 可有效支持不满足关系第一范式的数据项
  • 以对象来封装需分解的数据项
  • 行对象与列对象:聚集对象与结构对象

面向对象数据库

  • 面向对象技术(O-O)与集合/聚集操作技术(SQL)的结合
  • 支持复杂的数据类型,数据封装与抽象数据结构
  • 支持面向对象的一些特性:类、继承、封装、多态

XML数据库

  • 是数据库的另一种形式,被称为半结构化数据库
  • 数据与数据的语义 合并在一起进行存储和处理
  • 面向数据交换而提出,在互联网世界得到广泛应用

回顾本讲学习了什么

在这里插入图片描述

第三讲 关系模型之基本概念

基本内容

  1. 关系模型概述?
  2. 什么是关系?
  3. 关系模型中的完整性约束

重点与难点

  • 一组概念的区分:围绕关系的相关概念,如域,笛卡尔积,关系,关系模式,关键字/键/码,外码/外键,主码/主键,主属性/非主属性
  • 三个完整性:实体完整性,参照完整性和用户自定义的完整性

关系模型的三要素

  • 基本结构
  • 基本操作(并、差、广义积、选择、投影、交、连接、除)
  • 完整性约束:实体完整性、参照完整性和用户自定义的完整性

关系模式与关系

  • 同一关系模式下,可有很多的关系
  • 关系模式是关系的结构,关系是关系模式在某一时刻的数据
  • 关系模式是稳定的,而关系是某一时刻的值,是随时间可能变化的

关系的特性

  • 列是同质:即每一列中的分量来自同一域,是同一类型的数据
  • 不同的列可来自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

外码

  • 关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键

参照完整性

如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的Pk值,或者为空值

DBMS对关系完整性的支持

  • 它使用户可以自行定义有关的完整性约束条件
  • 当有更新操作发生时,DBMS将自动按照完整性约束条件检验更新操作的正确性,即是否符合永辉自定义的完整性。

本讲回顾

在这里插入图片描述

第四讲:关系代数

基本内容

  1. 关系代数之基本操作
  2. 关系代数之扩展操作
  3. 关系代数之组合与应用训练
  4. 关系代数之复杂扩展操作(选学)

重点与难点

  • 关系代数基本操作:并、差、积、选择、投影
  • 关系代数扩展操作:交、 θ − \theta- θ连接、自然连接
  • 关系代数复杂扩展操作:除、外连接
  • 书写关系代数的基本思维训练:一个集合,施加
    一个操作得到一个集合,依次施加关系代数操作,进而得到所需结果“以集合为中心”
    .

集合操作

在这里插入图片描述

纯关系操作

在这里插入图片描述

  • 定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果是一个关系,记作:R ∪ \cup S,它由或者出现在关系R中,或者出现S中的构成。

在这里插入图片描述

  • 定义:假设关系R和关系S是并相容的,则关系R与关系S的差运算结果也是一个关系,记作:R-S,它由出现在关系R中但不出现在关系S中的元组构成。

在这里插入图片描述

  • 汉语中的“是…但不含…”通常意义是差运算的要求
  • 首先要准确理解汉语的查询要求,然后再找到正确的操作

广义笛卡尔积

  • 关系R(< a 1 , a 2 , . . . . , a n a_1,a_2,....,a_n a1,a2,....,an>)与关系S(< b 1 , b 2 , . . . , b m b_1,b_2,...,b_m b1,b2,...,bm>)的广义笛卡尔积(简称广义积,或积或笛卡尔积运算结果也是一个关系,记作:R × × ×,它由关系R中的元组与关系S的元组进行所有可能的拼接(或串接)构成…

选择

  • 定义:给定一个关系R,同时给定一个选择的条件condition(简记con),选择运算结果也是一个关系,记作 σ c o n ( R ) \sigma_{con}(R) σcon(R),它从关系R中选择出满足给定条件condition的元组构成

投影

  • 定义:给定一个关系R,投影运算结果也是一个关系,记作 Π A R \Pi_{A}R ΠAR,它从关系R中选出属性包含在A中的列构成.
  • 投影操作从给定关系中选出某些列组成新的关系,而选择的操作是从给定关系中选出某些行组成新的关系
    在这里插入图片描述

第五讲–关系代数之扩展操作

  • 假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系,记作:R ∩ S \cap{S} S,它由同时出现在关系R和关系S中的元组构成。

θ − 连接 \theta-{连接} θ连接

  • 投影与选择操作只是对单个关系(表)进行操作,而实际应用中往往涉及多个表之间的操作,这既需要 θ − 连接 \theta-{连接} θ连接
  • 定义:给定关系R和关系S,R与S的 θ \theta θ连接运算结果也是一个关系,记作R ⋈ A θ B S \Join_{A\theta{B}}S AθBS,它由关系R和关系S的笛卡尔积中,选取R中属性A与S中属性B之间满足 θ \theta θ条件的元构成。

自然连接

  • 定义:给定关系R和关系S,R与S的自然连接运算结果也是一个关系,记作R ⋈ \Join ,它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组所构成。

小结

在这里插入图片描述

关系代数操作之组合与应用训练

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例1:查询学习课程号为002的学生学号和成绩

Π S # , S c o r e ( σ C # = " 002 " ( S C ) ) \Pi_{S\#,Score}(\sigma_{C\#="002"(SC)}) ΠS#,Score(σC#="002"(SC))

例2:查询学习课程号为001的学生学号、姓名

Π S # , S n a m e ( σ C # = " 001 " ( S t u d e n t ⋈ S C ) ) \Pi_{S\#,Sname}(\sigma_{C\#="001"(Student\Join{SC})}) ΠS#,Sname(σC#="001"(StudentSC))

例3 查询学习课程名称为数据结构的学生学号、姓名和这门课程的成绩.

Π S # , S n a m e ( σ C n a m e = " 数据结构 " ( S t u d e n t ⋈ S C ⋈ C o u r s e ) ) \Pi_{S\#,Sname}(\sigma_{Cname="数据结构"}(Student\Join{SC}\Join{Course})) ΠS#,Sname(σCname="数据结构"(StudentSCCourse))

外连接

  • 两个关系R与S进行连接时,如果关系R(或S)中的元组在S(或R)中找不到相匹配的元组,则为了避免该元组信息丢失,从而将该元组与S(或R)中假定存在的全为空值的元组形成连接,放置在结果关系中,这种连接称之为外连接.

小结

在这里插入图片描述

  • Select: Π \Pi Π
  • From: σ \sigma σ
  • Where: × \times ×

第五讲–关系模型之关系演算

基本内容

  • 关系演算之关系元组演算
  • 关系演算之关系域演算
  • 关系演算之安全性
  • 关于三种关系运算的一些观点

重点与难点

  • 关系元组演算公式的递归定义;关系域演算公式的递归定义
  • 关系元组演算公式:与 ∧ \land ,或 ∨ \vee , ¬ \neg ¬非,存在量词 ∃ \exists ,全称量词 ∀ \forall
  • 用关系元组演算公式表达查询的思维训练
  • 用QBE语言表达查询的思维训练
  • 关系元组演算、域演算和关系代数在表达查询方面的思维差异

关系演算公式之与、或、非运算符

1.检索出年龄小于20岁并且是男同学的所有学生。

{ t ∣ t ∈ S t u d e n t ∧ t [ S a g e ] < 20 ∧ t [ S e x ] = ′ 男 ′ } \{t|t\in{Student}\land{t[Sage]<20}\land{t[Sex]='男'}\} {ttStudentt[Sage]<20t[Sex]=}

2、检索出年龄小于20岁或者03系的所有男生

{ t ∣ t ∈ S t u d e n t ∧ ( t [ S a g e ] < 20 ∨ t [ D # ] = ′ 0 3 ′ ) ∧ t [ S e x ] = ′ 男 ′ } \{t|t\in{Student}\land({t[Sage]<20}\vee{t[D\#]='03'})\land{t[Sex]='男'}\} {ttStudent(t[Sage]<20t[D#]=03)t[Sex]=}

3、检索出不是03系的所有学生

{ t ∣ t ∈ S t u d e n t ∧ ¬ ( t [ S a g e ] < 20 ∧ t [ S e x ] = ′ 男 ′ ) } \{t|t\in{Student}\land{\neg{(t[Sage]<20\land{t[Sex]='男'})}}\} {ttStudent¬(t[Sage]<20t[Sex]=)}

4.检索计算机系的所有同学

{ t ∣ t ∈ S t u d e n t ∧ ∃ ( u ∈ D e p t ) ( t [ D # ] = u [ D # ] ∧ u [ D n a m e ] = ′ 计算 机 ′ ) } \{t|t\in{Student}\land{\exists(u\in{Dept)(t[D\#]=u[D\#]\land{u[Dname]='计算机'})}}\} {ttStudent(uDept)(t[D#]=u[D#]u[Dname]=计算)}

5. 求没学过李明讲授任一门课程的学生姓名(全没学过)

π S n a m e ( S t u d e n t ) − π S n a m e ( σ T n a m e = ′ 李 明 ′ ( S t u d e n t ⋈ S c ⋈ C o u r s e ) ) \pi_{Sname}(Student)-\pi_{Sname}(\sigma_{Tname='李明'}(Student\Join{Sc}\Join{Course})) πSname(Student)πSname(σTname=(StudentScCourse))

6.求至少学过一门李明老师讲授课程的学生姓名(至少学过一门)

π S n a m e ( σ T n a m e = ′ 李 明 ′ ( S t u d e n t ⋈ S c ⋈ C o u r s e ) ) \pi_{Sname}(\sigma_{Tname='李明'}(Student\Join{Sc}\Join{Course})) πSname(σTname=(StudentScCourse))

关系元组演算之应用训练将关系代数转换为元组演算

关系域演算公式

关系域演算公式的基本形式: { < x 1 , x 2 , . . . . , x n > ∣ P ( x 1 , x 2 , . . . , x n ) } \{<x_1,x_2,....,x_n>|P(x_1,x_2,...,x_n)\} {<x1,x2,....,xn>P(x1,x2,...,xn)}。其中, x i x_i xi代表域变量或常量,P为以 x i x_i xi为变量的公式.公式P可以递归地进行构造:

  • 如果P是公式,那么 ¬ P \neg{P} ¬P也是公式
  • 如果P1,P2是公式,则 P 1 ∧ P 2 , P 1 ∨ P 2 P_1\land{P_2},P_1\vee{P_2} P1P2,P1P2
  • 如果P是公式,x是域变量,则 ∃ ( x ) ( P ( x ) ) \exists{(x)(P(x))} (x)(P(x)) ∀ ( x ) ( P ( x ) ) \forall{(x)(P(x))} (x)(P(x))也是公式.
  • 需要时可加括弧
  • 上述运算符的优先次序自高至低为:

关系域演算与关系元组演算的比较

元组演算的基本形式:{t|P(t)}
域演算的基本形式:{ < x 1 , x 2 , . . . , x n > ∣ P ( x 1 , x 2 , . . . , x n ) <x_1,x_2,...,x_n>|P(x_1,x_2,...,x_n) <x1,x2,...,xn>P(x1,x2,...,xn)}

  • 元组演算是以元组为变量,以元组为基本处理单位,先找到元组,然后找到元组分量,进行谓词判断;域演算是以域变量为基本处理单位,先有域变量,然后再判断由这些域变量组成的元组是否存在或是否满足谓词判断。
  • 公式的运算符( ∧ ( 与 ) 、 ∨ ( 或 ) 、 ¬ ( 非 ) 、 ∃ ( 全称量词 ) 和 ∀ ( 存在量词 ) \land(与)、\vee{(或)}、\neg{(非)}、\exists{(全称量词)}和\forall{(存在量词)} ()()¬()(全称量词)(存在量词))是相同的,只是其中的变量不同
  • 元组演算和域演算可以等价互换。

基于关系域演算的QBE语言

关系域演算语言QBE

域演算语言QBE

  • QBE:Query By Example
  • 1975年由M.M.Zloof提出,1978年在IBM370上实现
  • 特点:操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可。
  • 是一种高度非过程化的查询语言
  • 特别适合终端用户的使用

QBE操作框架由四个部分构成

  • 关系名区:用于书写欲

第n讲

基本内容

  1. SQL语言概述?
  2. SQL语言之DDL-定义数据库
  3. SQL语言之DML-操纵数据库

重点与难点

  1. SQL-DDL的基本语句:CREATE DATABASE,CREATE TABLE
  2. SQL-DML的基本语句:INSERT,DELETE,UPDATE,SELECT
  3. SQL-SELECT语句的训练:正确表达各种查询需求

SQL语言提出和发展

1974年,有Boycel和Chamber提出
1975-1979年,由IBM的San Jose研究室在System R上首次实现,称为Sequel --》SQL
1986年由ANSI/ISO推出SQL标准:SQL-86
1992年ANSI/ISO推出SQL标准:SQL-89
1992年进一步推出了SQL标准:SQL-92,又称为SQL2
     是SQL-89的超集
     增加了新特性,如新数据雷兴国,更丰富数据操作,更强完整性支持等
     原SQL-89被称为entry-SQL,扩展的被称为Intermediate和Full级

理解查询需求

利用SQL语言建立数据库

学生选课数据库SCT
学生表Student

Create Table Student(S# char(8) not null,Sname char(10),Sex char(2),
Sage integer,D# char(2),Sclass char(6));

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

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

相关文章

荣耀笔记本IP地址查看方法详解:轻松掌握网络配置技巧

在数字化时代的浪潮中&#xff0c;笔记本电脑已经成为我们生活和工作中不可或缺的重要工具。对于荣耀笔记本用户而言&#xff0c;掌握基本的网络配置技巧显得尤为重要。其中&#xff0c;查看IP地址是连接网络、配置设备、排除故障等场景下的关键步骤。本文将详细介绍荣耀笔记本…

基于单片机的无人监守点滴控制系统设计

摘要 &#xff1a; 在当代社会 &#xff0c; 点滴是一种常用的诊疗方法 。 为了减轻医护人员的压力 &#xff0c; 设计了一种基于单片机的无人监守点滴控制系统&#xff0c; 该系统共由 2 个板子组成 &#xff0c; 其中一个主控板子 &#xff0c; 一个检测板子 。 检测板与…

Flutter全面支持六大平台的开发,那鸿蒙呢?

Hi,大家好&#xff0c;今天带大家了解一下flutter3的新特性&#xff0c;flutter已经实现了对六大平台的支持&#xff0c;flutter进一步进化&#xff0c;对于鸿蒙系统目前没有明确的支持&#xff0c;不过相信不久的将来一定会支持的。 一、futter3的新特性 Flutter 3 在发布后…

部署LVS—DR群集

1、LVS-DR工作流向分析 &#xff08;1&#xff09;客户端发送请求到 Director Server&#xff08;负载均衡器&#xff09;&#xff0c;请求的数据报文&#xff08;源 IP 是 CIP,目标 IP 是 VIP&#xff09;到达内核空间。 &#xff08;2&#xff09;Director Server 和 Real Se…

【SpringBoot】Spring Boot 中高级特性详解

文章目录 1. 异步处理1.1 什么是异步处理&#xff1f;1.2 实现异步处理1.2.1 启用异步支持1.2.2 使用 Async 注解1.2.3 调用异步方法 2. 安全管理2.1 Spring Security 集成2.2 基础安全配置2.2.1 添加依赖2.2.2 默认配置2.2.3 自定义用户认证 3. 监控和调试3.1 Spring Boot Act…

missing authentication credentials for REST request

1、报错截图 2、解决办法 将elasticsearch的elasticsearch.yml的 xpack.security.enabled: true 改为 xpack.security.enabled: false

如何在 Windows 上安装 MySQL(保姆级教程2024版)

MySQL 是最流行的数据库管理系统 (DBMS) 之一。它轻量、开源且易于安装和使用&#xff0c;因此对于那些刚开始学习和使用关系数据库的人来说是一个不错的选择。 本文主要系统介绍Windows的环境下MySQL的安装过程和验证过程。 目录 1 安装过程 1.1 前置要求 1.2 下载并安装 …

图解Transformer学习笔记

教程是来自https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/ 图解Transformer Attention为RNN带来了优点&#xff0c;那么有没有一种神经网络结构直接基于Attention构造&#xff0c;而不再依赖RNN、LSTM或者CNN的结构&#xff0c;这就是Trans…

1.0 Android中Activity的基础知识

一&#xff1a;Activity的定义 Activity是一个应用组件&#xff0c;它提供了一个用户界面&#xff0c;允许用户执行一个单一的、明确的操作&#xff0c;用户看的见的操作都是在activity中执行的。Activity的实现需要在manifest中进行定义&#xff0c;不让会造成程序报错。 1.…

完美的移动端 UI 风格让客户无可挑剔

完美的移动端 UI 风格让客户无可挑剔

JUnit 5学习笔记

JUnit 5 学习笔记 1.JUnit5的改变2.JUnit5常用注解及测试2.1 DisplayName/Disabled/BeforeEach/AfterEach/BeforeAll/AfterAll2.2 Timeout2.3 RepeatedTest 3.断言3.1 简单断言3.2 数组断言3.3 组合断言3.4 异常断言3.5 超时断言3.6 快速失败 4.前置条件5.嵌套测试6.参数化测试…

2.2 利用MyBatis实现CRUD操作

MyBatis 是一个半自动的持久层框架&#xff0c;它简化了数据库操作&#xff0c;允许开发者通过 XML 或注解的方式来配置 SQL 语句&#xff0c;实现数据的增删改查&#xff08;CRUD&#xff09;操作。 1. 环境搭建 引入依赖&#xff1a;在项目中添加 MyBatis 以及数据库驱动的…

【每日刷题】Day65

【每日刷题】Day65 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. LCR 175. 计算二叉树的深度 - 力扣&#xff08;LeetCode&#xff09; 2. 序列找数_牛客题霸_牛客网…

upload-labs第十二关教程

upload-labs第十二关教程 一、源代码分析代码审计 二、绕过分析截断绕过magic_quotes_gpc函数介绍关闭magic_quotes_gpc上传eval.png文件使用burpsuite进行抓包修改放包&#xff0c;查看是否上传成功使用中国蚁剑进行连接 一、源代码分析 代码审计 $is_upload false; $msg …

2024年6个恢复删除数据的方法,看这篇就够了~

在数字化飞速发展的今天&#xff0c;数据已成为我们生活中不可或缺的组成部分&#xff0c;它记录着我们的记忆、创意和辛勤付出。然而&#xff0c;生活总是充满意外&#xff0c;我们可能会遭遇数据意外删除或丢失的困境。在这种关键时刻&#xff0c;如何高效、准确地恢复数据就…

PG数据库插入数据,正则字段的反斜杠丢了

问题描述 将公司数据发现场&#xff0c;导入后发现正则的\"丢"了。其实&#xff0c;是当成转义符了。但是根据下面PG官网提示自PostgreSQL9.1开始默认值就是on&#xff0c;现场肯定是有人主动off了。太坑了~~~ standard_conforming_stringson,\失去了转义&#xff0…

【Kafka】Kafka Producer 分区-05

【Kafka】Kafka Producer 分区-05 1. 分区的好处2. 分区策略2.1 默认的分区器 DefaultPartitioner 3. 自定义分区器 1. 分区的好处 &#xff08;1&#xff09;便于合理使用存储资源&#xff0c;每个Partition在一个Broker上存储&#xff0c;可以把海量的数据按照分区切割成一块…

MyBatis的逆向工程详细步骤操作

1. MyBatis的逆向工程详细步骤操作 文章目录 1. MyBatis的逆向工程详细步骤操作2. 逆向工程配置与生成2.1 MyBatis3Simple&#xff1a;基础版&#xff0c;只有基本的增删改查2.1.1 第一步&#xff1a;在pom.xml 中添加逆向工程插件2.1.2 第二步&#xff1a;配置 generatorConfi…

Ubuntu 18.04下普通用户的一次提权过程

Ubuntu 18.04下普通用户的一次提权过程 一.背景介绍:二.主要调试过程:三.相关命令:1.设置BMC密码,获取BMC IP2.找一台ubuntu搭建TFTP服务,用来替换grub.cfg文件3.从调试服务器的/boot/grub/grub.cfg中提取出recovery mode的配置,简化并生成新的配置文件grub.cfg,放在tftp服务的…

万能破题方法包(3)暴力破解法

一、前言 暴力破解法是指通过尝试所有可能的密码组合来破解密码 1.1、概念 暴力破解法是一种通过尝试所有可能的密码组合来破解密码的方法。它基于暴力的方式&#xff0c;不依赖于任何密码漏洞或特殊技巧&#xff0c;而是通过穷举所有可能性来找到正确的密码。 1.2、解决步骤 …