sql语句中的单双引号

txtSQL = "select * from Line_Info where id = '" & Trim(txt1.Text) & "'"

    有谁还记得这个sql语句中的''与""以及各个空格之间的关系吗?今天被问到了同样的问题,害怕理解有偏差,而且确实也挺模糊的,总归之前欠下的债还是要还回来啊。

    让我欣慰的是,当年令人头疼的字符串拼接问题终于找到了正解,看来凡事不能将就啊。记得在自己敲学生的时候就有跟同学讨论过这个问题,关于sql语句的拼接以及单引号‘’和双引号"",到底怎么解释。当时每个人都有每个人的理解,我也固执的按着自己的理解开始了接下来的学习任务,毕竟语句就是那个语句,格式深深记在了自己的脑子里,照着葫芦画瓢的事情谁不会干。殊不知自己的理解又一次在今天遭到了质疑,尽管请教了两位同学,但两位同学的理解与自己的理解偏差不大,仍保留着部分疑问未解决。有句话叫做:不将就。是的,有疑问的地儿是不能放过的,关键是自己还要给别人解释呢,不能弄个错误的理解解释给别人听吧。

    接下来就让我们一起看看让人头晕的符号吧!

    首先我们知道这是一个常用的sql语句。

    接下来就是将sql语句进行拆解:

    变量名:txtSQL

    表达式:"select * from Line_Info where id = '" & Trim(txt1.Text) & "'"

    继续拆表达式中的各个元素:(需要声明的是:" "之中是字符串," " 和 " "之间用&连接

    元素1:  字符串     select * from Line_Info where id = '

    元素2:  运算符     字符串连接符(&--用于连接前后两个字符串,注意&就相当于一个断点,所以它前后的引号肯定不会是一对)

    元素3:  控件属性   Trim(txt1.Text)(其返回值就是一个字符串类型,trim是将其中的空格去掉,以和数据库中的数据格式匹配)(因为Trim(txt1.Text)是一个变量,如果直接写在" " 中是取不到它的值的,所以必须截断字符串,将变量拼接进去)

    元素4:  运算符     字符串连接符(&--用于连接前后两个字符串)

    元素5:  字符串    '


    经过这样一拆分,想必大家也能很快的明白整条语句是怎么连接在一起的了。其实我们在数据库中执行的语句很简单,只需把查询条件写清楚即可:select * from Line_Info where id = '1',直接执行就可得到结果。只不过在VB窗体中需要先定义好变量,并通过自定义函数ExecuteSql,来执行Sql语句,set mrc=ExecuteSql(txtSQL,MsgText) 其中txtSQL和MsgText是两个参数,txtSQL是指上边用来执行的Sql语句:select * from Line_Info where ....     MsgText则是指执行完Sql语句后的弹出框提示。


    针对上边的语句还有一个问题就是:' ' 与 " " 括的内容分别是什么?

    ' ' 内是输入sql中的查询信息的, " " 是来输入的字符串,简单来说,单引号是给sql语句使用的,而双引号是给VB使用的。


             select * from Line_Info where id = '1'至于数据库中执行这句话时什么情况加' '什么时候不加,就要看查询的数据类型了。

    字符常量:通常一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号' '把一个字符括起来作为字符常量。大小写字母代表不同的字符常量;单引号中的空格也是;字符常量只能包含一个字符,且只能用单引号括起来。如'A'、'x'、'D'、 '?'、'3'、'X'等都是字符常量。对于字符来说,'x'和'X'是两个不同的字符。
    特点:
    1.字符常量只能用单引号括起来,不能用双引号或其它括号。
    2.字符常量只能是单个字符,不能是字符串。
    3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算
    字符串常量:字符串常量是用双引号括起来的,在C语言中系统会在每个字符串的最后自动加入一个'\0'作为字符串的结束标志。语言是相通的。
     
    区别:'Z'是字符常量,占一个字节;"Z"是字符串常量,占两个字节,其中一个放'\0'。
    它们两个的用法都明白了,区别就知道了  
        
    终于解决了当年的未解之谜,心情顿时开阔了不少 哈哈哈~  在此还要感谢问我和我问过的同学们,让我对知识加深了理解,也体会到对知识不能过于将就,多讨论,多探究!

  • 5
    点赞
  • 34
    评论
  • 12
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值