④、任何类型的数据都允许是null create table t1( name nvarchar(20), cnt int, riqi datetime ) insert t1 values(null,null,null); select * from t1; ⑤、任何数字与null参与数学运算的结果永远是null--输出奖金非空的员工的信息-select * from emp where comm <> null; --输出为空select * from emp where comm !=null; --输出为空select * from emp where comm=null; --输出为空error--总结:null不参与<> != = 运算--null可以参与is not isselect * from emp where comm is null; --输出奖金为空的员工的信息select * from emp where comm is not null; --输出奖金不为空的员工的信息
7、order by【以某个字段排序】 order by a,b --a和b都是升序 order by a,b desc --a升序,降序 order by a desc,b --a降序,b升序 order by a desc ,b desc --a降序,b降序 文字描述 如果不指定排序的标准,则默认是升序,升序用asc表示,默认可以不写 为一个字段指定的排序标准并不会对另外一个字段产生影响 强烈建议为每一个字段都指定排序的标准例子:--输出每个员工的姓名 年薪(包含奖金) comm假设是一年的奖金select empno, ename,sal*12+comm "年薪" from emp;--此程序证明,任何数字与null参与数学运算的结果永远是null--正确的写法是:select empno, ename,sal*12+isnull(comm,0) "年薪" from emp;--isnull(comm,0)如果comm是null 就返回零,否则返回comm的值
--asc是升序的意思,默认可以不写,desc是降序select * from emp order by sal --默认是按照升序排序select * from emp orderby deptno,sal;-- 先按照deptno升序排序,如果deptno相同,再按照sal升序排序select * from emp orderby deptnodesc,sal ; --先按照deptno降序排序,如果deptno相同,再按照sal升序排序, --记住sal是升序,不是降序 --order by a desc,b,c,d desc 只对a产生影响, 不会对后面的b、c、d产生影响select * from emp order by deptno,sal desc;--问题:desc是否会对deptno产生影响?--答案:不会、--先按deptno升序,如果deptno相同,再按sal降序8、模糊查询格式:select 字段的集合 from 表名 where 某个字段的名字 like匹配的内容
匹配的条件通常含有通配符
%表示任意0个或者多个字符select * from emp where ename like '%A%'; --ename 只要含有字符A就输出select * from emp where ename like 'A%'; --ename 只要首字母是A的就输出select * from emp where ename like '%A'; --ename 只要未字母是A的就输出_[这是下划线 不是减号]
表示 单个字符
[a-f]select * from emp where ename like '_A';--ename只要第二个字母是A的就输出
a到f中的任意单个字符,只能是a b c d e f中的任意一个
[a,f]select * from emp where ename like '_[A-F]%';--把ename中第二个字母是A或B或C或D或E或F的数据输出
a或f[^a-c]
不是a,也不是b,也不是c的任意单个字符select * from emp where ename like '_[^A-F]%';--把ename中第二个字母不是A也不是B也不是C也不是D也不是E也不是F的数据输出
注意: 匹配的条件必须用单引号括起来 不能省略 也不能改用双引号
通配符通配符作为不同字符使用的情况
select * from 表明 where name like '%/%%' escape'/' --把name中包含有%的输出 select * from 表明 where name like '%m%%' escape'm' // escape 后面的内容表明在其之后的元素当做转义字符
新闻热点
疑难解答