- 动态SQL,就是将查询条件中的判断语句,提前在代码中判断完成,而放到数据库(如SQL Server)中执行时就是简单的、可利用索引的SQL语句了,在这个例子中,判断@userId和@menuId是否为null的代码,可能会长这个样子(如果是Dapper):var sql = new StringBuilder();sql.Append("SELECT * FROM FoodOrder WHE... 动态SQL,就是将查询条件中的判断语句,提前在代码中判断完成,而放到数据库(如SQL Server)中执行时就是简单的、可利用索引的SQL语句了,在这个例子中,判断@userId和@menuId是否为null的代码,可能会长这个样子(如果是Dapper):var sql = new StringBuilder();sql.Append("SELECT * FROM FoodOrder WHE...
- USE [数据库]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure [dbo].[存储过程名称](@name varchar(50),@state int,@capbility int,@ip varchar(50),@port int,@id int)ASSET NOCOUNT ON;BEGINdeclare @c... USE [数据库]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure [dbo].[存储过程名称](@name varchar(50),@state int,@capbility int,@ip varchar(50),@port int,@id int)ASSET NOCOUNT ON;BEGINdeclare @c...
- --sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。--注意:group by 是先排序后分组;--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有... --sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。--注意:group by 是先排序后分组;--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有...
- 锁类型描述(Shared Lock)用于只读操作数据锁定(Update Lock)用于数据的更新,在数据真正的需要更新的时候会申请升级为X锁。X(Exclusive Lock)独占锁,用于数据的更改。Key-Range Lock(稍后讨论)仅仅在 Serializable 隔离级别保护数据,以避免任何有可能使得本事务第二次读取信息产生错误的数据插入操作各个事务隔离级别下锁的使用SQL Ser... 锁类型描述(Shared Lock)用于只读操作数据锁定(Update Lock)用于数据的更新,在数据真正的需要更新的时候会申请升级为X锁。X(Exclusive Lock)独占锁,用于数据的更改。Key-Range Lock(稍后讨论)仅仅在 Serializable 隔离级别保护数据,以避免任何有可能使得本事务第二次读取信息产生错误的数据插入操作各个事务隔离级别下锁的使用SQL Ser...
- DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects.由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。DML分成交互型DML和嵌入型DML两类。依据语言的级别,DML又可分成过程性DML和非过程性DML两种。需要commit.SEL... DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects.由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。DML分成交互型DML和嵌入型DML两类。依据语言的级别,DML又可分成过程性DML和非过程性DML两种。需要commit.SEL...
- DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects.由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。DML分成交互型DML和嵌入型DML两类。依据语言的级别,DML又可分成过程性DML和非过程性DML两种。需要commit.SEL... DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects.由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。DML分成交互型DML和嵌入型DML两类。依据语言的级别,DML又可分成过程性DML和非过程性DML两种。需要commit.SEL...
- 字符串比较函数1、CHARINDEX()返回字符串中某个指定的子串出现的开始位置。CHARINDEX (<’substring_expression’>, <expression>)其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。2、PAT... 字符串比较函数1、CHARINDEX()返回字符串中某个指定的子串出现的开始位置。CHARINDEX (<’substring_expression’>, <expression>)其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。2、PAT...
- 理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。1、主键就是聚集索引这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。通常,我们会在每个表中都建立一个ID列,以区... 理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。1、主键就是聚集索引这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。通常,我们会在每个表中都建立一个ID列,以区...
- 单表查询sql的执行,大体上可以分为两步。“二级索引find”和“回表select”。“二级索引find”。有两层含义,一方面是利用二级索引去找,另一方面是利用索引进行过滤(即索引条件下推)。因此正确利用索引也有两层含义,一是利用的索引长度越多越好,二是经过索引find之后,能过滤掉的数据越多越好。“回表select”。因为二级索引毕竟包含的字段列有限,如果我们select的字段不能被索引全... 单表查询sql的执行,大体上可以分为两步。“二级索引find”和“回表select”。“二级索引find”。有两层含义,一方面是利用二级索引去找,另一方面是利用索引进行过滤(即索引条件下推)。因此正确利用索引也有两层含义,一是利用的索引长度越多越好,二是经过索引find之后,能过滤掉的数据越多越好。“回表select”。因为二级索引毕竟包含的字段列有限,如果我们select的字段不能被索引全...
- 数据定义语言(DDL)数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。DDL 的主要功能是定义数据库对象。DDL 的核心指令是 CREATE、ALTER、DROP。数据操纵语言(DML)数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行... 数据定义语言(DDL)数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。DDL 的主要功能是定义数据库对象。DDL 的核心指令是 CREATE、ALTER、DROP。数据操纵语言(DML)数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行...
- 1、#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:where username=#{username},如果传入的值是111,那么解析成sql时的值为where username="111", 如果传入的值是id,则解析成的sql为where username="id". 2、$将传入的数据直接显示生成在sql中。如:where username=${userna... 1、#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:where username=#{username},如果传入的值是111,那么解析成sql时的值为where username="111", 如果传入的值是id,则解析成的sql为where username="id". 2、$将传入的数据直接显示生成在sql中。如:where username=${userna...
- 原理是采用了预编译的方法,先将SQL语句中可被客户端控制的参数集进行编译,生成对应的临时变量集,再使用对应的设置方法,为临时变量集里面的元素进行赋值,赋值函数setString(),会对传入的参数进行强制类型检查和安全检查,所以就避免了SQL注入的产生。下面具体分析 (1):为什么Statement会被sql注入 因为Statement之所以会被sql注入是因为SQL语句结构发生了变化... 原理是采用了预编译的方法,先将SQL语句中可被客户端控制的参数集进行编译,生成对应的临时变量集,再使用对应的设置方法,为临时变量集里面的元素进行赋值,赋值函数setString(),会对传入的参数进行强制类型检查和安全检查,所以就避免了SQL注入的产生。下面具体分析 (1):为什么Statement会被sql注入 因为Statement之所以会被sql注入是因为SQL语句结构发生了变化...
- 注意:但凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分,对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,这是安全领域里的「外部数据不可信任」的原则,纵观Web安全领域的各种攻击方式,大多数都是因为开发者违反了这个原则而导致的,所以自然能想到的,就是从变量的检测、过滤、验证下手,确保变量是开发者所预... 注意:但凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分,对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,这是安全领域里的「外部数据不可信任」的原则,纵观Web安全领域的各种攻击方式,大多数都是因为开发者违反了这个原则而导致的,所以自然能想到的,就是从变量的检测、过滤、验证下手,确保变量是开发者所预...
- SQL中的随机SQL中,大部分查询都是通过SELECT语句返回,最熟悉的莫过于从一张表中进行查询返回结果,但其实还有一些返回是可以通过启用函数的,比如GETDATE()。GETDATE()方法返回当前系统时间,准确说是你的数据库服务器的时间。如果有人问程序员What’s the time? 那我想《程序员装逼指南》(如果有这本书的话)会告诉你,程序员才不会带表或者看手机呢,他会优雅地输入SE... SQL中的随机SQL中,大部分查询都是通过SELECT语句返回,最熟悉的莫过于从一张表中进行查询返回结果,但其实还有一些返回是可以通过启用函数的,比如GETDATE()。GETDATE()方法返回当前系统时间,准确说是你的数据库服务器的时间。如果有人问程序员What’s the time? 那我想《程序员装逼指南》(如果有这本书的话)会告诉你,程序员才不会带表或者看手机呢,他会优雅地输入SE...
- 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption... 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签