程序环境中的SQL语句
- 格式:ppt
- 大小:3.01 MB
- 文档页数:40


SQL语句:如何让字符串转化数字
和前端联调的时候,突然出现⼀个状况,新增数据的时候,⼀直报系统错误,写下此⽂,留以后反复温习。菜鸟程序员⼀名~
项⽬内容:新增产品信息
具体实现:1 获取基础信息,创建产品(调⽤接⼝传⼊的产品类型,如A作为编号的开头标识)【此时还未添加⾄数据库】
2 填⼊其他信息(产品名称等)
3 保存所有信息【此时添加⾄数据库】
在创建产品的时候需要返【产品编号】这个信息给前端,这个编号是在已有产品中取最⼤编号递增,已有的编号以产品类型编号字符为开头,如 A 第⼀个产品为A001,第⼆个产品A002......
之前⽼代码设计的时候没想过如果个数⼤于999了如何处置,所以我遇上了A999,新增⼀个产品后,没什么问题,但是再曾⼀个产品的时候,问题来了,之前的sql语句查出来的最⼤编号是A999,所以创建产品的时候是A1000,但是A1000已经存在了!* 之前的sql:
SELECT max(product_no)FROM product_infoWHERE product_type='A'结果:A999
因为字符串⽐较是从左到右的,所以从第⼆个字符开始,9都是最⼤的,因此A999是最⼤的字符
所以我们要把数字那⼀块按照正常数字⽐较⼤⼩,⽽不是按着字符串⽐较
那么遇到两个问题:1 截取字串('A999'---截取---'999')
2 转换成数字('999'---转换---999)
解决【问题⼀:截取字串处理】SUBSTR(string,start_position,[length]) 求⼦字符串,返回字符串 a、substr("A123", 1);//返回:A123,截取所有字符;
b、substr("A123", 2);//返回:123,截取从1开始之后所有字符;
c、substr("A123", 2, 2);//返回:12,截取从1开始2个字符;
d、substr("A123", 1, 100);//返回:A123,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最⼤数量返回;
一、.NET简介
.NET是微软公司推出的一种软件开发框架,它提供了一种统一的开发环境和工具集,使开发者可以更快速、更高效地开发应用程序。.NET框架包括了一系列的类库和工具,其中最重要的组成部分之一是,它是用于构建Web应用程序的工具集合。除了之外,.NET框架还包括了WinForms、WPF、WCF等工具,用于开发Windows应用程序和服务。
二、SQLSugar简介
SQLSugar是一种针对.NET评台的轻量级ORM(Object-Relational
Mapping)框架,它可以帮助开发者更加方便地进行数据库操作。SQLSugar支持多种数据库,包括SQL Server、MySQL、Oracle、SQLite等,而且它提供了强大的查询语句构建功能,使开发者可以使用流畅的API来构建复杂的SQL查询语句。
三、SQL语句
1. SQL语句是用于与数据库交互的一种特殊语法,它可以用来进行数据的查询、插入、更新和删除操作。SQL语句由一系列的关键字和表达式构成,其中最常用的关键字包括SELECT、FROM、WHERE、JOIN、INSERT、UPDATE、DELETE等。通过这些关键字和表达式的组合,开发者可以完成对数据库的各种操作。
2. SQL语句的组成 SQL语句通常包括了关键字、表名、字段名、条件表达式等部分。一个简单的SELECT语句包括了SELECT关键字和要查询的字段名,以及FROM关键字和要查询的表名。而一个复杂的查询语句可能包括多个JOIN语句用于连接多个表,以及WHERE语句用于添加查询条件。
3. SQL语句的执行
当开发者编写好了SQL语句之后,就可以通过数据库连接进行执行。执行SQL语句需要借助数据库驱动程序,它负责将SQL语句翻译成数据库可以理解的命令,并且将结果返回给开发者。在执行SQL语句的过程中,开发者可能需要注意一些潜在的问题,比如SQL注入、性能优化等。
SQL编程之SQL语⾔基础
⼀、SQL语⾔基础
1.1 常量与变量
常量也称为⽂字值或标量值,是指程序运⾏中始终不变的量。在 SQL 程序设计过程中,定义常量的格式取决于它所表⽰的值的数据类
型。
常量类型常量表⽰说明
字符串常量包括在单引号或双引号中,由字母(a~z,A~Z)、数字(0~9)、特殊符号组成。
⼗进制整型常
量使⽤不带⼩数点的⼗进制数据表⽰。⽰例:1234、321、+123、-123
⼗六进制整型
常量 使⽤前缀0x后跟⼗六进制数字串表⽰。
⽇期常量 使⽤单引号将⽇期时间字符串括起来。MySQL是按年-⽉-⽇的顺序表⽰⽇期的。中间分隔符可以⽤-,也可以⽤/、\、@、%
等特征符号。
实型常量 有定点表⽰和浮点表⽰两种⽅式。⽰例:123.4、-123.4、19E24、-83E2
位字段值 使⽤b'value'符号写位字段值。value是⼀个⽤0和1写成的⼆进制值。例如:b'0'显⽰空⽩,b'1'显⽰⼀个笑脸图标。⽰例:
select bin(b'111101'+0),oct(b'111101'+0)
布尔常量 布尔常量只包含两个可能的值:TRUE和FALSE。FALSE的数字值为0,TRUE的数字值为1。
NULL值 NULL可适⽤于各种列类型,它通常表⽰'没有值'、'⽆数据'等意义,并且不同于数字类型的0或字符串类型的空字符床。
变量就是在程序执⾏的过程中,其值是可变的。在MySQL中,存在三种类型的变量:系统变量⽤户变量
局部变量
系统变量可以分为全局(global)变量和会话(session)变量两种。
1.1.1 全局变量和会话变量
全局变量由MySQL启动时由服务器⾃动将它们初始化为默认值,这些默认值可以通过更改 my.ini ⽂件来更改。
会话变量在每次建⽴⼀个新的链接的时候,由MySQL来初始化。MySQL会将当前所有全局变量的值复制⼀份作为会话变量。也就是
说,如果在建⽴会话以后,没有⼿动更改过全局变量和会话变量的值,所有这些变量的值都是⼀样的。
在Delphi中动态地使⽤SQL查询语句Adoquerysql参数冒号
在Delphi中动态地使⽤SQL查询语句
在⼀般的数据库管理系统中,通常都需要应⽤SQL查询语句来提⾼程序的动态
特性。下⾯介绍如何在Delphi中实现这种功能。
在Delphi中,使⽤SQL查询语句的途径是:在窗体中置⼊TQuery构件,设置其SQL属性的内容值,此内容为⼀个字符串数组,数组的每个值对应⼀⾏SQL查询语句。
可以在程序设计过程中事先指定,也可以在程序运⾏中重新赋值,即可以实现动态
地改变程序中的查询语句。假定程序的窗体中有⼀个名为Query1的TQuery构件,在
程序运⾏过程中需要改变它的SQL查询语句内容,则可以引⽤以下程序⾏。Query1.close;
{先关闭以前查询的连接}
Query1.SQL.Clear;
{清除以前的查询语句}
Query1.SQL.Add('select * from mytable');
{增加新的查询语句内容为select * from mytable}
Query1.Prepare;
{发送查询到Borland Database Engine (BDE)}
Query1.open;
{建⽴新的查询语句的数据库连接}
在Delphi中,要灵活地使⽤SQL查询语句,还需要使⽤TQuery构件的Params特性,
即在查询语句中使⽤参数。Delphi中的SQL语句如需参数,则在参数名称前使⽤⼀个
冒号':'来作为标识。例如:'select * from mytable where id_no=:p'⼀句,其中p为参数,可以在程序运⾏过程进⾏在赋值。在程序运⾏期动态地创建带参数的SQL
查询语句较为复杂,其过程如下:Query1.close;
{先关闭以前查询的连接}
Query1.SQL.Clear;
{清除以前的查询语句}
Query1.Params.Clear;
{清除以前查询语句的参数}
Query1.Params.CreateParam(ftString, 'p',ptInput);