MySQL数据入库时特殊字符处理详解
在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“”)开头,称为转义字符。 MySQL 识别下列转义字符:
0
一个 ASCII 0 (NUL) 字符。
'
一个 ASCII 39 单引号 (“'”) 字符。
"
一个 ASCII 34 双引号 (“"”) 字符。
一个 ASCII 8 退格符。
一个 ASCII 10 换行符。
r
一个 ASCII 13 回车符。
t
一个 ASCII 9 制表符(TAB)。
z
ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。)
一个 ASCII 92 反斜线 (“”) 字符。
%
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
_
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意如果在某些正文环境内使用 “%” 或 “_”,将返回字符串 “%” 和 “_” 而不是 “%” 和 “_”。
字符串中包含引号的可以有下列几种写法:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。
你也可以继续使用在引号前加一个转义字符“”来转义的方式。
一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。
下面显示的 SELECT 演示引号和转义是如何工作:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', ''hello
时间: 2013-11-04
本文实例讲述了php+mysqli预处理技术实现添加.修改及删除多条数据的方法.分享给大家供大家参考.具体分析如下: 首先来说说为什么要有预处理(预编译)技术?举个例子:假设要向数据库添加100个用户,按常规思路,就是向数据库发送100个执行请求,此时,按照 mysql 数据库的工作原理,它需要对每一条执行语句进行编译(这里就有100次).所以,这里的效率是非常低的. 预处理(预编译)技术的作用,就是减少编译的次数和时间,以提高效果.通过一个案例来说明,预处理(预编译)技术是如何做到的(好吧,先
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. where子句的位置,在同时使用ORDER BY 和WHERE子句时应该让ORDER BY 位于where之后,否则会产生错误. 1.不匹配检查 复制代码 代码如下: SELECT vend_id FROM products where vend_id <>1003 等同于 复制代码 代码如下: SELECT vend_id
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 计算次序: where 可以包含任意数目的and和or,允许两者结合以进行复杂和高级的过滤.但是SQL在操作or之前会优先的处理AND操作符.如果想优先的使用or的条件可以使用括号. in:为什么要使用in操作符?其优点具体如下. 1.在使用长的合法选项清单时,in操作符的语法更清楚直观 2.在使用IN时,计算的次序更容易管理
1.1 什么是数据库 数据库(database)是一个以某种有组织的方式存储的数据集合. 保存有组织的数据的容器(通常是一个文件或一组文件) 注意:人们通常使用数据库来代表他们使用的数据库软件.其实这是不正确的,确切的说,数据库软件应该成为DBMS(数据库管理系统).数据库是通过DBMS创建和操作的容器.数据库可以是保存在硬件设备上的文件,但也可以不是.在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库:你使用的是DBMS,它替你访问数据库. 1.2 表 表(ta
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 拼接字段 存储在数据库表中的数据一般不是应用程序所需要的格式.我们需要直接从数据库中检索出转换.计算或格式化过的数据:而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化. 计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的
MySQL的当前版本为版本5,以下列出最近版本的主要更改: 4.---------InnoDB引擎,增加了事务处理.并.改进全文搜索等支持. 4.1--------对函数库.子查询.集成帮助等重要增加. 5.-------------增加了存储过程.触发器.游标.视图等 以上内容是小编给大家介绍MYSQL必知必会读书笔记的相关知识,希望对大家有所帮助!
1.备份数据库(单个表备份) bk_table.bat 复制代码 代码如下: mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database1 table1>table1.sql mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database2 table2>table2.sql mysqld
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | J
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用通配符的技巧: 1.不要过度使用通配符.如果其他操作符能达到通配符相同的效果,应该优先的使用其他操作符 2.在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处.把通配符置于搜索模式的开始处,搜索起来是最慢的. 3.仔细注意通配符的位置,如果放错了地方,可能不会返回想要的结果 注意事项: 区分大小写:
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显示的数据会与其他的地方顺序不同.出现这种情况很正常.如果没有明确排序查询结果.则返回的数据没有特殊意义.返回数据的顺序可能是是数据被添加到表中的顺序,也可能不是.只要返回相同数目的行,就是正常. 注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的.同样,
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. show column from tablename: 对每一个字段返回一行,行中包含字段名,数据类型.是否允许NULL.键信息.默认值以及其他信息. describe 语句: MySQL支持使用describ作为show columns from 的一种快捷方式.describ tablename 所支持的其他的show语句: show s
工作环境 Windows Server 2003 ,MySQL安装目录 D:\MySQL , WinRAR 安装目录 C:\Program Files\WinRAR\WinRAR.exe 备份数据存储的路径为 E:\数据备份,好了下面开始写DOS批处理命令了. 复制代码 代码如下: set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" md "E:\数据备份\%ymd%" "D:\MySQL\bin\mysqldump.ex
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 其实,检索出的数据并不是以纯随机顺序显示的.如果不排序,数据一般将以它底层表现中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能依赖该排序顺序. 在多个列上将序排列 :如果想在多个列上进行将序排列,必须每个列指定DESC关键字
MySQL的max()函数是用来找出一个记录集中的最大值记录. 要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1
使用MySQL CONCAT()函数将两个字符串连接起来,形成一个单一的字符串.试试下面的例子: mysql> SELECT CONCAT('FIRST ', 'SECOND'); +----------------------------+ | CONCAT('FIRST ', 'SECOND') | +----------------------------+ | FIRST SECOND | +----------------------------+ 1 row in set (0.00
MySQL的SUM函数是用来找出记录中各种的字段的总和. 要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | Jo
IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10); -> 0 mysql> select IFNULL(1/0,10); -> 10 mysql> select IFNULL(1/0,'yes'); ->
在MySQL中,函数不仅可以出现在select语句及其子句中,而且还可以出现在update.delete语句中. 常用的函数有: 1. 字符串函数:主要用于处理字符串. 2. 数值函数:主要用于处理数字. 3. 日期和时间函数:主要用于处理日期和事件. 4. 系统信息函数:获取系统信息. 1. 使用字符串函数: 虽然每种数据库都支持SQL,但是每种数据库拥有各自所支持的函数. 1.1 合并字符串函数concat() 和 concat_ws(): 在MySQL中可以通过函数concat()和con
在使用MYSQL过程中,经常会使用到触发器,但是有时使用不当会造成一些麻烦.有没有一种办法可以控制触发器的调用呢? 触发器顾名思义就是数据库在一定的调条件自动调用的SQL语句,触发器拒绝了人工调用的过程,由数据库MYSQL数据库自动的调用,执行更加高效. 如何禁用触发器呢? 1.新建两张表: 表demo_1: CREATE TABLE `demo_1` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `STUNAME` varchar(3
最近写一些mysql的存储过程和函数,发现网上比较有价值的文档很少,大都是照着手册上抄来的,有些实际问题解决不了,比如用变量作表名. 经过反复调试,总算找到解决办法,一下是一些简单的记录,比较零碎.部分内容转自http://my.opera.com/Dereky/blog/show.dml/322997 1.用变量做表名: 简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mssql的解决方法是将整条sq
序列是一组整数1,2,3,...中生成的顺序.序列中经常使用的数据库,因为很多应用都需要一个表中的每一行包含一个独特的值和序列提供了一个简单的方法来产生.本章介绍如何使用MySQL中的序列. 使用自动递增列: 在MySQL中使用序列最简单的方法是定义一个AUTO_INCREMENT列,剩下的事情留给MySQL处理. 实例: 试试下面的例子.这将创建表之后,它会在此表中它不是必需的记录ID插入几行,因为它由MySQL自动递增. mysql> CREATE TABLE insect -> ( -&
理解新概念 Python V2.2 中引入了迭代器的思想.唔,这并不十分正确:这种思想的"苗头"早已出现在较老的函数 xrange() 以及文件方法 .xreadlines() 中了.通过引入 yield 关键字,Python 2.2 在内部实现的许多方面推广了这一概念,并使编程定制迭代器变得更为简单( yield 的出现使函数转换成生成器,而生成器反过来又返回迭代器). 迭代器背后的动机有两方面.将数据作为序列处理通常是最简单的方法,而以线性顺序处理的序列通常并不需要都同时实际 存在