SQL语言中 like is = 有什么区别啊?

来源:百度知道 编辑:UC知道 时间:2024/05/18 11:55:43
经常混淆他们 请问各问高手 他们到底有什么区别 各自什么时候用啊 ?????????????

万分感谢了 帮帮忙吧!!!!!!!!!
select sname from s where sdept like 'cs'and sage<20;


select sname from s where sdept= 'cs'and sage<20;
执行起来有区别吗?

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?

大家的回答有点问题吧 '_阳%' 这样写不行吧 中文不是占两个字符吗 不应该是'__阳%'吗???? 我说的对不???????

接binjly,is一般用于特殊的比较,比如sdept is null。
“执行起来有区别”,你没有给like加通配符%、_,这样的话两条语句是没有区别的。

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?
where name like '_阳%'

关于是"_"还是"__"的问题,看数据库系统的支持程度,绝大多数数据库是会认识"_"为一个中文字或一个字母的,不用担心。
另外,Access的通配符是?和*

like
通常与 % 或 _ 一起使用
如: 字段名 like %变量%
表示:查询该字段 相似于 “变量” 的记录

=
如: 字段名=变量
表示:查询该字段 等于 “变量” 的记录

回答:查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?
where name='_阳'
这时应该用 =

like可以进行模糊查询 比如 name like '%yinyin%' 匹配的就是XXXyinyinXXX,能查到yinyin1987
而=只能进行精确查询 比如 name = "yinyin" 匹配的只有"yinyin",查不到yinyin1987

=是固定的,比如说 name='abc',查询到满足的结果的name必须是'abc'的。
like可以和通配符联合使用,比如说 name like ‘%abc',查询到的结果name是以’abc‘结尾的,前面可以有任意字符。如果name like 'abc'则效果和=’abc‘一样。

你写的那两个语句效果一样。

查名字中第二个字为"阳"字的学生的姓名 学号
的where 句该怎么写啊?