mysql是用双引号还是单引号

2019-05-31 19:10:24 czh500 阅读数 12005
  • DML:插入、修改、删除数据

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    1915人学习 刘运强
    免费试看

mysql数据库中,如果字符串中包含单引号或双引号,该怎么处理?

直接po截图和代码

大家也可以参考这篇帖子

处理方式

1.使用转义

2.如果字符串中包含单引号时,就在字符串外面包一层双引号,如果字符串中包含双引号时,就在字符串外面包一层单引号

3.如果字符串中包含单引号时,那就在单引号旁边多加一个单引号,然后再在字符串外面包一层单引号,如果字符串中包含双引号时,那就在双引号旁边多加一个双引号,然后再在字符串外面包一层双引号。

通过下面这2张截图,大家应该也可以明白。

2017-08-09 21:14:12 menghuanzhiming 阅读数 10254
  • DML:插入、修改、删除数据

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    1915人学习 刘运强
    免费试看

1.mysql的字段名、表名通常不需要加任何引号,如果非要加上引号,必须加反引号;
2.mysql的列别名可以不加引号,如果加引号,单引号和双引号以及反引号都可以;
3.mysql的表别名不可以加引号;
4.单引号和双引号都可以表示字符串;

2019-06-03 00:00:49 czh500 阅读数 2318
  • DML:插入、修改、删除数据

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    1915人学习 刘运强
    免费试看

mysql中双引号和单引号有什么区别

前2天看到有人问,mysql中双引号和单引号有什么区别?

我就直接po代码和截图了,如下

select * from employees where last_name = 'K_ing';

select * from employees where last_name = "K_ing";

由此可见,mysql中,其实单引号和双引号没啥区别,单引号和双引号都可以表示字符串

mysql的别名可以不加引号,如果加引号,单引号和双引号以及反引号都可以,如下

SELECT
	email m, #不加引号
	last_name AS `name`, #反引号(着重号)
	salary 'sa', #单引号
	job_id AS "job" #双引号
FROM
	employees;

mysql的字段名、表名通常不需要加任何引号,如果非要加上引号,必须加反引号,如下

SELECT
	`email`, #加反引号(着重号)
	last_name,
	salary,
	`job_id` #加反引号
FROM
	`employees`; #加反引号

 

2018-12-16 11:44:56 czh500 阅读数 2609
  • DML:插入、修改、删除数据

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    1915人学习 刘运强
    免费试看

单独使用时,单引号和双引号没有区别;

需要嵌套使用时,双引号和单引号可以互相嵌套。使用的结果是把内部的内容当做整体一个字符串变量。

SELECT * FROM da_track WHERE act= '1002001021' AND data_time LIKE '2018-04-01%';

SELECT * FROM da_track WHERE act= "1002001021" AND data_time LIKE "2018-04-01%";
在查询时没有区别。
SELECT SUM(uid) AS 总人数 FROM da_track WHERE act= '1002001021' AND data_time LIKE '2018-04-01%'

SELECT SUM(uid) AS '总人数' FROM da_track WHERE act= '1002001021' AND data_time LIKE '2018-04-01%'

以及

SELECT SUM(uid) AS "总人数" FROM da_track WHERE act= '1002001021' AND data_time LIKE '2018-04-01%'

也没有区别,因为varchar变量类型,一般情况是需要使用引号来标识的,但是中文在mysql里面自动识别了,加不加引号都一样可以运行。

2019-06-22 18:34:09 u012060033 阅读数 3568
  • DML:插入、修改、删除数据

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    1915人学习 刘运强
    免费试看

目录

1 单引号,双引号

1.1 单引号

1.2 双引号

2 反引号


1 单引号,双引号

MySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如:

'an apple'

"a book"

1.1 单引号

一般应使用英文单引号,如果字符串内需要包含单引号时,除了使用转义的办法外,我们可以选用一对双引号来包括字符串,这样字符串内的单引号被视作普通字符,无需特殊处理

例如  Johnson's mother

select "Johnson's mother",'Johnson''s mother','Johnson\'s mother';

1.2 双引号

与单引号对应,使用英文双引号引用的字符串内需要包含双引号时,除了使用转义的办法外,我们可以用一对单引号来包括字符串,这样字符串内的双引号被视作普通字符,无需特殊处理。

例如  He said: "Go away" 

select 'He said: "Go away"' ,"He said: ""Go away""" ,"He said: "Go away"" ;

2 反引号

反引号,一般在ESC键的下方。它是为了区分MYSQL的保留字普通字符而引入的符号。

MySQL里使用一对反勾号“ ` ”将识别符括起来,一般情况下可以不用,单是如果识别符出现关键字冲突或标识符的写法可能产生歧义的情况下就必须使用。例如:

create table t1 (id int primary key ,desc varchar(10)); -- 这句会报错

create table t1 (id int primary key,`desc` varchar(10)); -- 这句客成功运行

另外,如果SQL服务器模式包括ANSI_QUOTES模式选项,还可以用双引号替代反勾号将识别符括起来:

mysql> CREATE TABLE "test" (col INT); 
 ERROR 1064: You have an error in your SQL syntax. (...)mysql> SET sql_mode='ANSI_QUOTES';mysql> CREATE TABLE "test" (col INT);Query OK, 
0 rows affected (0.00 sec)

之前报错,设置SQL服务器模式包括ANSI_QUOTES模式后,运行成功。

举个例子:

SELECT `select` FROM `test` WHERE select='字段值'

在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。
另外:建表的时候一般都会将表名,库名都加上反引号来保证语句的执行度。反引号`,数字1左边的符号。
保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。

create table desc报错
create table `desc`成功
create table `test`成功
drop table test成功

保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。

create table `test`(`desc` varchar(255))成功
insert into test(desc) values('fxf')失败
insert into test(`desc`) values('fxf')成功

 

mysql 单引号 双引号

阅读数 4698