最近编程操作数据库语句的时候出现一些问题。
关于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. EasyUI:datagrid控件简介

    EasyUI:datagrid控件简介 1,水平滚动条属性: //显示滚动条 fitColumns:false //不显示滚动条 fitColumns:true

  2. 分布式集群Session原理及实现共享

    1.什么是Session/Cookie? 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互.HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是 ...

  3. 20162324 2016-2017-2《Java程序设计》课程总结

    20162324 2016-2017-2<Java程序设计>课程总结 一.每周作业链接汇总 预备作业01 有关老师与学生关系的几个问题: 预备作业02 做中学: 预备作业03 实验楼学习: ...

  4. 【纯代码】Swift相册照片选择-支持单选或多选

    // // NAPublishAlbumTableViewController.swift //// // Created by on 2019/3/23. // Copyright © 2019年 ...

  5. Mysql导出数据结构 or 数据

    如果我们单单只想导出mysql数据表结构,通过navcat工具还不行,这时我们可以用mysqldump工具 在mysql server的安装目录:C:\Program Files\MySQL\MySQ ...

  6. Ambari Views的自定义

    下载ambari源码, ambari-views/examples/ 下面有很多例子,直接编译是不会成功的, 因为每一个例子项目都需要一个依赖 <dependency> <group ...

  7. ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐

    环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若 ...

  8. 栈的基本操作--java实现

    package com.wyl.linklist; /** * 栈的定义及相关操作 * 用数组实现栈 * 栈是一个线性表,不过进栈和出栈操作在表尾操作 * @author wyl * */ publi ...

  9. 报错Mapped Statements collection does not contain value for com.atguigu.mybatis.dao.EmployeeMapperPlus

    报错Mapped Statements collection does not contain value for com.atguigu.mybatis.dao.EmployeeMapperPlus ...

  10. [JavaScript]对象创建方法

    1.使用Object或对象字面量创建对象 (1)使用Object创建对象 var cat= new Object(); cat.name = "Tom"; cat.color= & ...