A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢勇 黑马帝   /  2011-9-17 19:14  /  1787 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天我忘记密码了,让老罗帮我查了下密码,然后他贴了两个查询语句:
SELECT  username  FROM  jrun_members WHERE   email="cosmosxy2012@yahoo.cn"
SELECT  `password`  FROM  jrun_members WHERE   email="cosmosxy2012@yahoo.cn"
可以看出password两边用了那个符号(我还以为是单引号,但仔细一看原来不是单引号,是波浪线下边那个符号,我先称它为标注符号);
然后我用mysql和oracle分别试验了(oracle用的toad,mysql用的ems)一下发现在字段两边加标注符号和不加对mysql是没有影响的,查出的都是正确结果,但在oracle中就不一样了,不加正确,加的话报错(ORA-00911: 无效字符)
那么这个标注符号的意义在哪里,难道就是mysql中特意支持这个符号吗
还有注意这个符号和单引号是完完全全不同的如果将上面的语句改为:
SELECT  ’password‘  FROM  jrun_members WHERE   email="cosmosxy2012@yahoo.cn"
那么查出的就是password这个字符串了

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-9-17 21:48:12
沙发
mysql和oracle对SQL的支持有差别,加`,就是为了区别字段名称,
如果加上'就是,字符串了,where之后的语句相当于没用了
回复 使用道具 举报
黑马网友  发表于 2011-9-17 22:28:52
藤椅
我也试过,我以前在where条件后面加上 name = 123,与 name='123',与name = "123" 在mysql里面是一样的效果
回复 使用道具 举报
黑马网友  发表于 2011-9-18 19:38:10
板凳
加~说明是本表里的字段,区别与sql中的关键字,比如你创建一个用户create user 'user' identified by 'password' 这样允许的,并且在oralce中如果不加也是可以执行的,只是加了的话可读性更强。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马