国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

sql 查詢基本語(yǔ)法

2024-07-21 02:46:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
sql 查詢基本語(yǔ)法1、計(jì)算列 select * from emp --*表示所有的 --from emp 表示從emp表查詢select empno,ename from emp;select ename,sal*12 as "年薪"from emp --as可以省略,記住“年薪“不要寫成‘年薪’,也不要寫成 年薪,方便移植select ename,sal*12 as "年薪",sal "月薪",job from empselect 5 from emp; --OK ,輸出一個(gè)常量值 --輸出的行數(shù)是emp表的行數(shù),每行只有一個(gè)字段,值是5select 5; --ok --不建議使用,沒(méi)什么實(shí)際意義注意: 在Oracle中字段的別名不允許用單引號(hào)括起來(lái) 但是SqlServer 2005中卻允許 因此為了兼容性,最好字段別名用雙引號(hào)括起來(lái),不要用單引號(hào)2、distinct【不允許重復(fù)的】selectdistinct deptno from emp; --distinct deptno 會(huì)過(guò)濾掉重復(fù)的deptno值selectdistinct commfrom emp; --distinct可以過(guò)濾掉重復(fù)的null,或者說(shuō)如果有多個(gè)null,會(huì)把一個(gè)輸出selectdistinct comm,deptnofrom emp; --distinct把comm和deptno的組合進(jìn)行過(guò)濾,查出兩兩互不相同的記錄,select distinct deptno,comm from emp--含義:把deptno和comm的組合都不重復(fù)的輸出select deptno,distinct comm from emp --error,deptno的元素多comm中的元素少select deptno,distinct comm from emp; --error,邏輯上有沖突學(xué)習(xí)方式:要多思考3.between【在某個(gè)范圍之內(nèi)】--查找工資在1500到3000之間(包括1500到3000)的所有員工的信息select * from emp where sal between 1500 and 3000;--等價(jià)于select * from emp where sal>=1500 and sal<=3000;--查找工資小于1500或者大于3000(包括1500到3000)的所有員工的信息select * from emp where sal<1500 or sal>3000;select * from emp where sal not between 1500 and 3000;4.in【屬于若干個(gè)孤立值】--把sal=1500 和sal=3000的元素輸出select * from emp where salin(1500,3000);--等價(jià)于select * from emp where sal=1500 or sal=3000--把sal不等于1500 和sal不等于3000的元素輸出select * from emp where salnot in(1500,3000);--等價(jià)于select * from emp where sal!=1500 and sal!=3000select * from emp where sal<>1500 and sal<>3000--數(shù)據(jù)庫(kù)中不等于有兩種表示:!=, <>,建議使用第二種 --多或取反是并且 非并且取反是或5、top:【最前面的若干條詩(shī)句】可用于分頁(yè)select top 2 * from emp; --篩選出前兩行數(shù)據(jù)select top 2 from emp; --errorselect top 15 percent * from emp; --如果百分比不是整數(shù)則向上取整--把工資在1500到3000 之間(包括1500和300)的員工中工資最高的前4個(gè)人的信息輸出selecttop4 * from empwheresalbetween 1500 and 3000order by sal--執(zhí)行過(guò)程 from哪個(gè)表->where->order排序->top->所有字節(jié)--desc 降序,不寫則默認(rèn)是升序(asc)6、null【沒(méi)有值,空值】 ①、零和人null是不一樣的,null表示空值,沒(méi)有值,零表示一個(gè)確定的值 ②、null 不能參與如下的運(yùn)算:<> != = ③、null可以參與如下的運(yùn)算: is not is
--輸出獎(jiǎng)金非空的員工的信息-
select * from emp where comm <> null; --輸出為空
select * from emp where comm !=null; --輸出為空
select * from emp where comm=null; --輸出為空error
--總結(jié):null不參與<> != = 運(yùn)算
--null可以參與is not is
select * from emp where comm is null; --輸出獎(jiǎng)金為空的員工的信息
select * from emp where comm is not null; --輸出獎(jiǎng)金不為空的員工的信息
④、任何類型的數(shù)據(jù)都允許是null create table t1( name nvarchar(20), cnt int, riqi datetime ) insert t1 values(null,null,null); select * from t1; ⑤、任何數(shù)字與null參與數(shù)學(xué)運(yùn)算的結(jié)果永遠(yuǎn)是null
--輸出每個(gè)員工的姓名 年薪(包含獎(jiǎng)金) comm假設(shè)是一年的獎(jiǎng)金
select empno, ename,sal*12+comm "年薪" from emp;
--此程序證明,任何數(shù)字與null參與數(shù)學(xué)運(yùn)算的結(jié)果永遠(yuǎn)是null--正確的寫法是:select empno, ename,sal*12+isnull(comm,0) "年薪" from emp;--isnull(comm,0)如果comm是null 就返回零,否則返回comm的值
7、order by【以某個(gè)字段排序】 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降序 文字描述 如果不指定排序的標(biāo)準(zhǔn),則默認(rèn)是升序,升序用asc表示,默認(rèn)可以不寫 為一個(gè)字段指定的排序標(biāo)準(zhǔn)并不會(huì)對(duì)另外一個(gè)字段產(chǎn)生影響 強(qiáng)烈建議為每一個(gè)字段都指定排序的標(biāo)準(zhǔn)例子:
--asc是升序的意思,默認(rèn)可以不寫,desc是降序select * from emp order by sal --默認(rèn)是按照升序排序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 只對(duì)a產(chǎn)生影響, 不會(huì)對(duì)后面的b、c、d產(chǎn)生影響select * from emp order by deptno,sal desc;--問(wèn)題:desc是否會(huì)對(duì)deptno產(chǎn)生影響?--答案:不會(huì)、--先按deptno升序,如果deptno相同,再按sal降序8、模糊查詢格式:
  select 字段的集合 from 表名 where 某個(gè)字段的名字 like匹配的內(nèi)容

  匹配的條件通常含有通配符

%
表示任意0個(gè)或者多個(gè)字符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的就輸出
_[這是下劃線 不是減號(hào)]
表示 單個(gè)字符
select * from emp where ename like '_A';--ename只要第二個(gè)字母是A的就輸出
[a-f]
a到f中的任意單個(gè)字符,只能是a b c d e f中的任意一個(gè)
select * from emp where ename like '_[A-F]%';--把ename中第二個(gè)字母是A或B或C或D或E或F的數(shù)據(jù)輸出

[a,f]
a或f

[^a-c]
不是a,也不是b,也不是c的任意單個(gè)字符select * from emp where ename like '_[^A-F]%';--把ename中第二個(gè)字母不是A也不是B也不是C也不是D也不是E也不是F的數(shù)據(jù)輸出

注意: 匹配的條件必須用單引號(hào)括起來(lái) 不能省略 也不能改用雙引號(hào)

通配符
通配符作為不同字符使用的情況

  select * from 表明 where name like '%/%%' escape'/' --把name中包含有%的輸出  select * from 表明 where name like '%m%%' escape'm' // escape 后面的內(nèi)容表明在其之后的元素當(dāng)做轉(zhuǎn)義字符


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 称多县| 兴业县| 和政县| 晋中市| 威信县| 罗源县| 彭山县| 乌拉特后旗| 江阴市| 东光县| 万宁市| 青阳县| 康马县| 澄江县| 西藏| 象山县| 金溪县| 遵义县| 汨罗市| 徐闻县| 宜宾市| 嘉定区| 吉林省| 张北县| 南华县| 德安县| 敦化市| 北辰区| 灌云县| 揭西县| 新宾| 宁蒗| 忻州市| 泽州县| 石狮市| 闽侯县| 闽侯县| 当涂县| 石首市| 秦安县| 昌吉市|