zoukankan      html  css  js  c++  java
  • 关于SQL语句中的双引号、单引号和&


    同时在此文的基础上我在补充几个常用的方法:
    sql="tb_student WHERE sname='"+student.getSname()+"'"
    将其分解:
    最外面两个"就不用理会,student.getSname()返回的是"name"的话


    1)先来看一个最简单的SQL语句
    Insert Into users(username) values("小王")
    大家来看一下,这是一个标准的SQL语句,因为username是文本型字段,所以字段值两边要加双引号,表示小王是一个字符串。

    (2)可是在ASP中,我们通常这样写
    strSql="Insert Into users(username) values('小王')"
    此时,前后的双引号表示中间是一个字符串。而小王两边的单引号是因为发生了引号嵌套,所以内层引号该为了单引号。

    (3)实际插入时,因为小王通常是从表单中获取的变量,不过因为变量不能直接写入字符串,必须通过连接符&和字符串连接在一起,所以要写成如下形式:
    myusername=Request.Form("username")
    ……
    strSql="Insert Into users(username) values('" & myusername & "')"
    很多人此时就糊涂了,为什么其中又有单引号,又有双引号啊。简单的看上面的式子,其实是由如下三部分组成的:
    字符串常数:"Insert Into users(username) values('"
    字符串变量:myusername
    字符串常数:"')"

    直接理解上面的式子可能比较困难,现在我们变量myusername的值代入就能看清楚了。假如myusername="小王",代入:
    strSql="Insert Into users(username) values('" & "小王" & "')"
    然后依次执行其中的连接运算符,结果为:
    strSql="Insert Into users(username) values('小王')"
    这就是(2)中提到的正确的SQL语句。

    到此就能看清楚了:
    式子中第1、2个双引号配套,表示这是一个字符串。第3、4个双引号配套,也表示是一个字符串。
    而式子中的单引号就是文本型字段值小王前后的单引号。

    (4)上面只有一个字段,下面来看一个有两个字段的情况:
    strSql="Insert Into users(username,password) values('" & myusername & "','" & mypassword & "')"
    其中 myusername 和mypassword 是变量。

    现在假如myusername="小王",mypassword="123456",代入其中,结果为:
    strSql="Insert Into users(username,password) values('" & "小王" & "','" & "123456" & "')"
    依次执行连接运算,结果为:
    strSql="Insert Into users(username,password) values('小王','123456')"

    (5)文本型字段值两边加引号,日期型两边加#,数字、逻辑两边什么都不用加。
    如下面age是数字,submit_date是日期型。
    strSql="Insert Into users(username,password,age,submit_date) values('" & myusername & "','" & mypassword & "'," & myage & ",#" & mysubmit_date & "#)" 
    注意这里根据字段的类型两边加上相应的符号,或者不加。假如myusername="小王",mypassword="123456",myage=20,mysubmit_date="2004-4-1",代入其中,结果为:
    strSql="Insert Into users(username,password,age,submit_date) values('" & 小王" & "','" & "123456" & "'," & 20 & ",#" &
    "2004-4-1" & "#)"
    这里的20很特殊,运算时,首先会自动转换为字符串,因为这里参与运算的都是字符串。结果为:
    strSql="Insert Into users(username,password,age,submit_date) values('" & 小王" & "','" & "123456" & "'," & "20" & ",#" &
    "2004-4-1" & "#)" 
    依次执行连接运算,结果为:
    strSql="Insert Into users(username,password,age,submit_date) values('小王','123456',20,#2004-4-1#)"
    这正是我们需要的标准的SQL语句

  • 相关阅读:
    subString用法
    [转]Apache Commons工具集简介
    MyEclipse发布项目更改项目名
    ubuntu下设置文件权限
    mysql数据库中实现内连接、左连接、右连接
    hibernate中onetomany实例一
    hibernate中manytoone实例一
    FireFox中使用ExtJs日期控件错误的解决方法
    Ext.ux.form.SearchField使用方法
    mysql kill操作
  • 原文地址:https://www.cnblogs.com/wenrenhua08/p/3993613.html
Copyright © 2011-2022 走看看