④、任何類型的數據都允許是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 后面的內容表明在其之后的元素當做轉義字符
新聞熱點
疑難解答