最近编程操作数据库语句的时候出现一些问题。
关于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. level-13

    如何调试IE浏览器 1.打开IE浏览器,F12打开开发者模式.(针对IE7及以上) 2.针对IE6浏览器.使用虚拟机或者用ietester 什么是CSS hack?在 CSS 和 HTML里如何写 h ...

  2. winrar5.0注册码

    新建一个文本文档,输入横线内的内容 ---------------------------------------------------------------------------------- ...

  3. H5新特性---新应用

    1.持久化本地存储 可以不通过第三方插件实现数据的本地存储 2.WebSocket 页面之间可以双向通信 3.服务器推送事件(SSE) 从Web服务器将消息推送给浏览器(在手机中常见) 例如: < ...

  4. 20162326 《Java程序设计》第3周学习总结

    20162326 <Java程序设计>第3周学习总结 教材学习内容总结 这周我通过课堂学习了VIM的列编辑crtl+v,shift+i shift+a·分别是左侧插入和右侧插入.还学习了使 ...

  5. MD5key.java

    代码如下: package com.lekou.utils; public class MD5key { ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; , , , , , , , , ...

  6. 配置阿里云maven中央库

    <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> ...

  7. 比较好的SQL语句

    批次导数据表头 SELECT [运单号] , [运单号] AS [订单号] , [运单号] AS [订单号] , [运单号] , SUM([price] * [ProductNum]) AS [订单总 ...

  8. combox datagrid重复请求问题

    html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url:然后又调用js初始化代码请求一次url ...

  9. Oracle数据库常用监控语句

    --在某个用户下找所有的索引 select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name from ...

  10. python3.7安装模块MySQLdb报错error: Microsoft Visual C++ 14.0 is required.

    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools&quo ...