您的位置:首页 > 数据库

SQL语句练习-过滤数据

2011-04-04 14:09 411 查看
=============================================================
标题:SQL语句练习-过滤数据
备注:
日期:2011.4.3
姓名:朱铭雷
=============================================================
等于操作符



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




BETWEEN操作符




空值(NULL)检查



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



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




圆括号



列出价格为10美元以上且由DLL01或BRS01制造的所有产品。
如果去掉圆括号



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



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



列出除DLLO1外的所有供应商制造的产品,同样的功能也可以使用不等于操作符来实现。
通配符
用来匹配值得一部分的特殊字符,只能用于文本字段。
LIKE(谓词)操作符
告知DBMS,后跟的搜索条件利用通配符匹配而不是直接相等匹配。
百分号(%)通配符
表示任何字符出现任意次数。



检索任意以Fish开头的词,Fish之后可以有任意数量的任意字符。
如果是Access数据库,要使用*代替%。
使用多个%通配符



检索任何位置包含文本bean bag的值,不论其前后出现什么字符,甚至没有任何其他字符。
下划线(_)通配符
“_”与“%”用途一样,但_只能匹配单个字符。如果是Access数据库,要使用“?”代替“_”。



需要注意的问题
有些DBMS,比如Access,用空格来填补字段内容。比如某列有50个字符,而存储的文本为Fish bean bag toy,则填满该列需要在文本后附加33个空格。这对上述SQL语句可能会有影响。可能要在搜索条件的最后加一个%通配符:'__ inch teddy bear%'。
方括号([])通配符
指定一个字符集,必须匹配指定位置的一个字符,有些DBMS不支持该通配符。



检索所有名字以J或M开头的联系人。
前缀字符^



查询不以J或M开头的任意联系人。
通配符经验法则
不要过分使用,在确实要使用时,最好不要放在搜索条件的开始处,仔细查看通配符的位置,千万不可放错地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: