SQL语句练习-过滤数据

来源:互联网 发布:windows phone x86 编辑:程序博客网 时间:2024/06/07 00:55

=============================================================

标题:SQL语句练习-过滤数据

备注:

日期:2011.4.3

姓名:朱铭雷

=============================================================

等于操作符

只返回prod_price等于3.49的行。这里通过WHERE字句按“相等测试”过滤数据。除等于操作符外,SQL还支持以下条件操作符。

BETWEEN操作符

空值(NULL)检查


空值NULL,与字段包含0,空字符,空格不同。

AND操作符

检索由供应商DLL01制造且价格小于等于4美元的所有产品的ID,价格和名称。

OR操作符

圆括号

列出价格为10美元以上且由DLL01BRS01制造的所有产品。

如果去掉圆括号

结果与上面截然不同,原因在于计算次序。SQL在处理OR操作符之前,优先处理AND操作符。则SQL理解为由供应商BRS01制造的价格为10美元以上的产品,或者由供应商DLL01制造的任何产品,而不管其价格如何。由此看出括号的重要性,它可以明确的分组操作符,消除歧义。

IN操作符

检索供应商DLL01BRS01制造的所有产品,与OR操作符的功能相同。

NOT操作符

列出除DLLO1外的所有供应商制造的产品,同样的功能也可以使用不等于操作符来实现。

通配符

用来匹配值得一部分的特殊字符,只能用于文本字段。

LIKE(谓词)操作符

告知DBMS,后跟的搜索条件利用通配符匹配而不是直接相等匹配。

百分号(%)通配符

表示任何字符出现任意次数。

检索任意以Fish开头的词,Fish之后可以有任意数量的任意字符。

如果是Access数据库,要使用*代替%

使用多个%通配符

检索任何位置包含文本bean bag的值,不论其前后出现什么字符,甚至没有任何其他字符。

下划线(_)通配符

_”与“%”用途一样,但_只能匹配单个字符。如果是Access数据库,要使用“?”代替“_”。

需要注意的问题

有些DBMS,比如Access,用空格来填补字段内容。比如某列有50个字符,而存储的文本为Fish bean bag toy,则填满该列需要在文本后附加33个空格。这对上述SQL语句可能会有影响。可能要在搜索条件的最后加一个%通配符:'__ inch teddy bear%'

方括号([])通配符

指定一个字符集,必须匹配指定位置的一个字符,有些DBMS不支持该通配符。

检索所有名字以JM开头的联系人。

前缀字符^

查询不以JM开头的任意联系人。

通配符经验法则

不要过分使用,在确实要使用时,最好不要放在搜索条件的开始处,仔细查看通配符的位置,千万不可放错地方。

原创粉丝点击