最近编程操作数据库语句的时候出现一些问题。
关于Insert字符串 ,在(单引号,双引号)这个方面发生了问题,其实主要是因为数据类型和变量在作怪。

下面我们就分别讲述,虽然说的是Insert语句, 但是Select、Update、Delete语句都是一样的。

假如有下述表格:         
mytabe         
字段1    username     字符串型(姓名)         
字段2    age          数字型(年龄)         
字段3    birthday      日期型(生日)         
字段4    marry        布尔型(是否结婚,结婚为True,未结婚为False)         
字段5    leixing       字符串型(类型)

1.     插入字符串型

假如要插入一个名为张红的人,因为是字符串,所以Insert语句中名字两边要加单撇号,数值型可以不加单引号

如:          strsql=“Insert into mytable(username) values(‘张红')”

如果现在姓名是一个变量thename,则写成

strsql=”Insert into mytable(username) values(‘” & thename & “')”        说明:&改为+号也可以吧,字符串连接

这里Insert into mytable(username) values(‘
 是张红前面的部分,thename是字符串变量,   ')
  是张红后面的部分。

将thename变量替换成张红,再用&将三段连接起来,就变成了 strsql=“Insert into mytable(username) values(‘张红')”。

如果要插入两个字段,如姓名为“张红”,类型为“学生”

strsql=“Insert into mytable(username,leixing) values(‘张红','学生')”

如果现在姓名是一个变量thename,类型也是一个变量thetype,

则写成:          strsql=”Insert into mytable(username,leixing) values(‘” & thename & “','” & thetype & “')”

和第一个例子一样,将thename和thetype替换后,再用连接符,就连接成和上面一样的字符串了。

2.     插入数字型

假如插入一个年龄为12的记录,要注意数字不用加单撇号:

strsql=“Insert into mytable(age) values(12)”          如果现在年龄是一个变量theage,则为:

strsql=“Insert into mytable(age) values(“ & theage & “)”

这里Insert into mytable(age) values(是12前面的部分,theage是年龄变量,)是12后面部分。

将theage替换,再用&连接符将三部分连接起来,就变为了和上面一样的字符。

3.     插入日期型

日期型和字符串型类似,但是要将单撇号替换为#号。(不过,access数据库中用单撇号也可以)

strsql=“Insert into mytable(birthday) values(#1980-10-1#)”

如果换成日期变量thedate          strsql=“Insert into mytable(birthday) values(#” & thedate & “#)”

4.     插入布尔型

布尔型和数字型类似:只不过只有两个值 True和False,

如:          strsql=“Insert into mytable(marry) values(True)”

如果换成布尔变量themarry

strsql=“Insert into mytable(birthday) values(” & themarry& “)”

5.     综合示例

插入一个姓名为张红,年龄为12的记录

strsql=“Insert into mytable(username,age) values(‘张红',12)”

仔细注意上式:因为姓名是字符串,所以张红两边加了单撇号;年龄是数字,所以没有加单撇号。

如果换成字符串变量thename和数字变量theage,则变为:

strsql=“Insert into mytable(username,age) values(‘” & thename & “',” & theage & “)”

注意上式,总之,替换变量,再连接后要完成和上边一样的字符串。

6.     小窍门

要把下面的语句题换成变量的写法:    
   strsql=“Insert into mytable(username) values(‘张红')”

第一步:先把张红抹去,在原位置  加 两个引号

strsql=“Insert into mytable(username) values(‘”   “')”

第二步:在中间添加两个连接符&

strsql=“Insert into mytable(username) values(‘” & & “')”

第三步:把变量写在两个连接符之间

strsql=“Insert into mytable(username) values(‘” & thename & “')” -

我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处。因为对于主键为字符串类型的查询语句,加不加单引号的性能是相差百倍一上的。参看:一个单引号引发的MYSQL性能问题分析

数据库SQL、SQLite语句单引号、双引号的用法的更多相关文章

  1. 转发:【PHP】转义和过滤html单、双引号及HTML标签

    一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: 1.addslashes — 使用反斜线引用(转义)字符串: 返回字 ...

  2. include 语句中使用双引号与括号有什么区别?

    Include 的语法 你在学习如何构造函数时,看到了不同的 include 语句: # include <iostream> # include "distance.h&quo ...

  3. Linux中的元字符和转义符 单引号 硬引号 双引号 软引号

    Linux中的元字符和转义符  单引号  硬引号  双引号  软引号 Linux就这个范儿 Linux就这个范儿 P182单引号:硬引号,所有元字符特殊意义都会关掉双引号:软引号,只允许出现特定元字符 ...

  4. PHP中单引号双引号使用原则

    PHP中单引号双引号使用原则   1.PHP中尽量用单引号,HTML代码全部用双引号   2.在包含变量的时候,用双引号可以简化操作   3.复杂的情况下用大括号包起来   4 PHP引号还有一个用处 ...

  5. PostgreSQL的SQL语句中的双引号引发的问题

    最近开发一个WEB的ETL工具需要用到不同的数据源.第一次用POSTGRESQL发现一个双引号引发的问题: 标准的SQL是不区分大小写的.但是PostgreSQL对于数据库中对象的名字允许使用支持大小 ...

  6. python中的单引号,双引号,三引号

    转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...

  7. Python 基础 (单、双引号区别) 不断补充

    最近开始学习Python ,一些小细节的东西不是很理解,所以就记录一下,方便自己以后查看. 我的Python环境: Mac pro 10.12.3,Python3.5 ,Pycharm 多句题外话:公 ...

  8. sql server单引号和双引号的区别

    --当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔--当 SET QUOTED_IDENTIFIER 为 OFF(默认值)时,表达式中的文 ...

  9. python:单引号,双引号和三引号

    python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的需要表示一个字符串对象的话,单引号和双引号没有区别 为什么需要单引号和双引号同时支持,而一般都是”呢? 比如” 双引号’里面有 ...

  10. XML中& <> 单引号' 双引号 " 报错

    由于xml中 这些字符是特殊字符,所以把&改成&  就行了 ,注意后面一定要带一个分号; <         <         小于号>         >  ...

随机推荐

  1. jQuery垂直滑动切换焦点图

    在线演示 本地下载

  2. 《Maven实战》第10章 使用Maven进行测试

    10.2maven-surefire-plugin插件 [生命周期]的[阶段]与[插件]的[目标]绑定 default生命周期的test阶段:使用单元测试框架运行测试 Maven内置绑定:defaul ...

  3. Kotlin 卸载APP自身

    package com.example.batdw01.myapplication import android.net.wifi.WifiManager import android.support ...

  4. Swift学习笔记 - 位移枚举的按位或运算

    在OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift里面却不能这么做,下面来讲解一下如何在swift里面使用 OC的位移枚举的区分 ...

  5. JavaEE之反射

    反射定义简单表述: 对于任意一个(动态的)运行中的类,我们都可以解剖它,获取类中的构造方法,成员变量,成员方法. 类的加载 (1)加载 就是指将class文件读入内存,并为之创建一个Class对象. ...

  6. Hibernate关联关系映射之一对一关联关系

    人和身份证之间就是一个典型的一对一关联关系.实现一对一关联关系映射的方式有两种一种是基于外键,一种是基于主键,下面我们先看基于外键的关联方式 首先看他们的实体类 Person类 ? 1 2 3 4 5 ...

  7. Hardware Prefetcher

    硬件预取选项,指CPU有硬件预取功能,在CPU处理指令或数据之前,它将这些指令或数据从内存预取到L2缓存中,借此减少内存读取的时间,帮助消除潜在的瓶颈,以此提高系统效能.通常情况下建议设置为Enabl ...

  8. springBean的作用域

    Bean的作用域有五个类别 1.singleton,不写的话默认也是这个,这个的意思就是,单例的,就是说,不管你new多少次,都是一个对象 2.prototype,就是说每次new一个bean都是一个 ...

  9. 因磁盘爆满而导致NameNode HA无法启动

    场景回顾: 测试集群节点分配:35,36是namenode且开启HA,37,38,39即作为datanode,又作为journalnode. 某时间 38节点磁盘爆满,集群中hdfs及依赖的服务全部宕 ...

  10. mysql desc esc 基本命令总结

    asc 按升序排列desc 按降序排列 下列语句部分是Mssql语句,不可以在access中使用. SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操 ...