sql 必知必会学习笔记(二)
2011-04-26 12:05
295 查看
三、过滤数据
①、select column1,column2 from table1 where column1=value;
对于value值,有的用单引号,有的不用单引号;单引号用来限定字符串。
用来与字符串类型的列进行比较的值用单引号,用来与数值列进行比较的值不需要用单引号。
<>和!=通常可以互换使用,参照DBMS的文档,看它支持哪一种。
②、select column1,column2 from table1 where column1 between A and B;
在ms sql 中between匹配的范围包括A 和B.
③、select column1,column2 from table1 where column1 is null;
检查null时专用。null不同于空格、空字符串,0.
四、高级过滤
组合where子句
①、 select column1,column2 from table1 where column1=value1 and column2 <>value2;
and操作符: 检索满足所有条件的集合。
②、 select column1,column2 from table1 where column1=value1 or column2=value2;
or操作符: 检索匹配任一个条件的集合。
and的操作优先级和比or的优先级高,所以当where子句中同时有and和or时,建议使用小括号给括起来。
③、select column1,column2 from table1 where column1 in (value1,value2);
in取括号中的合法值,合法值之间用逗号分隔,整个合法值都放在小括号之间。字符串用单引号引起来。
in操作符和not操作法完成相同的功能。
in的优点:
♢ 在使用长的选项清单时,用in 更清楚、直观。
♢in操作符一般比or操作符速度快。
♢in的最大优点是可以包括其他select语句,能更动态的建立where子句。
④、select column1,column2 from table1 where column1 not in (value1,value2);
not总与其他操作符一起使用,用来否定其后的条件。
五、用通配符进行过滤
在搜索子句中使用通配符过滤,必须使用like,like之时DBMS,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行匹配;
①、select column1,column2 from table1 where column1 like '%f%y%';
通配符%可以位于搜索模式的任意位置,它匹配任意字符出现任意次数,可以是零个,一个,多个。
当数据库某个字段是固定长度,而存储的数据达不到固定长度时,会在该数据的后边自动填写上空格。
比如char(10)类型的字段,存储了‘abc’,在数据库中实际存储为abc三个字母后边会有七个空格,在使用通配符时,
要记住使用%在字符的最后'abc%'进行匹配
②、select column1,column2 from table1 where column1 like '_bet';
通配符_匹配单个字符。
③、select column1,column2 from table1 where column1 like '[JM]%'
方括号[],用来指定一个字符集,它必须匹配指定位置(通配符所在的位置)的一个字符。
例子中匹配以J或者M开头,后边跟着任意字符的 column1 列。
注:只有ms access、ms sql 、 Sybase Adaptive Server支持,是否支持请查阅DBMS帮助文档。
通配符[]可以使用前缀字符^(脱字号)来否定。[^ab],不是a或者b.
通配符的搜索效率比较低,所以:
♢、不要过分使用通配符。如果其他字符能达到目的,应该使用其他操作符。
♢、确实需要使用通配符时,尽可能不要将 通配符放到搜索模式的开始处,放在开始搜索是最慢的。
♢、仔细注意通配符的位置,放错就会得不到想要的结果。
①、select column1,column2 from table1 where column1=value;
对于value值,有的用单引号,有的不用单引号;单引号用来限定字符串。
用来与字符串类型的列进行比较的值用单引号,用来与数值列进行比较的值不需要用单引号。
<>和!=通常可以互换使用,参照DBMS的文档,看它支持哪一种。
②、select column1,column2 from table1 where column1 between A and B;
在ms sql 中between匹配的范围包括A 和B.
③、select column1,column2 from table1 where column1 is null;
检查null时专用。null不同于空格、空字符串,0.
四、高级过滤
组合where子句
①、 select column1,column2 from table1 where column1=value1 and column2 <>value2;
and操作符: 检索满足所有条件的集合。
②、 select column1,column2 from table1 where column1=value1 or column2=value2;
or操作符: 检索匹配任一个条件的集合。
and的操作优先级和比or的优先级高,所以当where子句中同时有and和or时,建议使用小括号给括起来。
③、select column1,column2 from table1 where column1 in (value1,value2);
in取括号中的合法值,合法值之间用逗号分隔,整个合法值都放在小括号之间。字符串用单引号引起来。
in操作符和not操作法完成相同的功能。
in的优点:
♢ 在使用长的选项清单时,用in 更清楚、直观。
♢in操作符一般比or操作符速度快。
♢in的最大优点是可以包括其他select语句,能更动态的建立where子句。
④、select column1,column2 from table1 where column1 not in (value1,value2);
not总与其他操作符一起使用,用来否定其后的条件。
五、用通配符进行过滤
在搜索子句中使用通配符过滤,必须使用like,like之时DBMS,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行匹配;
①、select column1,column2 from table1 where column1 like '%f%y%';
通配符%可以位于搜索模式的任意位置,它匹配任意字符出现任意次数,可以是零个,一个,多个。
当数据库某个字段是固定长度,而存储的数据达不到固定长度时,会在该数据的后边自动填写上空格。
比如char(10)类型的字段,存储了‘abc’,在数据库中实际存储为abc三个字母后边会有七个空格,在使用通配符时,
要记住使用%在字符的最后'abc%'进行匹配
②、select column1,column2 from table1 where column1 like '_bet';
通配符_匹配单个字符。
③、select column1,column2 from table1 where column1 like '[JM]%'
方括号[],用来指定一个字符集,它必须匹配指定位置(通配符所在的位置)的一个字符。
例子中匹配以J或者M开头,后边跟着任意字符的 column1 列。
注:只有ms access、ms sql 、 Sybase Adaptive Server支持,是否支持请查阅DBMS帮助文档。
通配符[]可以使用前缀字符^(脱字号)来否定。[^ab],不是a或者b.
通配符的搜索效率比较低,所以:
♢、不要过分使用通配符。如果其他字符能达到目的,应该使用其他操作符。
♢、确实需要使用通配符时,尽可能不要将 通配符放到搜索模式的开始处,放在开始搜索是最慢的。
♢、仔细注意通配符的位置,放错就会得不到想要的结果。
相关文章推荐
- sql 必知必会学习笔记(三)
- sql必知必会学习笔记-一,了解SQL
- sql 必知必会学习笔记(二)
- SQL必知必会学习笔记
- SQL必知必会学习笔记大总结
- sql 必知必会学习笔记(三)
- SQL学习笔记8 ---触发器
- SQL学习笔记7 游标 约束 索引 触发器
- 黑马程序员之SQL学习笔记
- SQL语句学习笔记
- Oracle基础学习笔记(五) (PL/SQL)
- Spring boot 和 mybatis 学习笔记3--动态sql
- php学习笔记(二)php与mysql连接与用php发送SQL查询
- OAF学习笔记-8-在AM中直接调用sql 语句(PLSQL函数)
- Mybatis学习笔记(八)——动态SQL
- 黑马程序员之SQL server基础学习笔记(三)
- PL/SQL 学习笔记(三)----- 从多个表中提取数据
- SQL学习笔记之数据库专题(二):Android下SQL数据库开发
- 转:C#制作ORM映射学习笔记二 配置类及Sql语句生成类
- sql语句学习笔记(8)-添加约束,实现数据完整性