资源描述:
《20120322微软》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据查询语言Selectselect目标列⑤from数据源①where简单条件②groupby分组依据③having复杂条件④orderby排序依据⑥1,select和from必不可少;2,*表示数据源中所有数据;select*fromdepartment3,selectdep_id,dep_addressfromdepartment--查询所有医生的姓名和性别selectd_name,d_sexfromdoctor4,Distinct/all各不相同,剔除重复;--统计该医院医生有多少个不同的科
2、室selectdistinctd_depidfromdoctor5,top前几个,topnpercent前百分之Nselecttop5percent*--前五个fromdoctor--练习:查询病人表中有多少个不同的状态数据,结果显示前两个selectdistincttop2p_statusfrompatient-----à注意点:distinct与topn的先后位置6,as的用法--1,起别名;,运算;,构成新的列selectp_idas编号,'姓名:'+p_nameas姓名,p_birthas
3、出生时间,year(getdate())-year(p_birth)+1as年龄frompatient--练习:查询所有病人的编号、姓名、出生月份和年龄(注意列名)selectp_idas编号,p_nameas姓名,month(p_birth)as出生月份,year(getdate())-year(p_birth)+1as年龄frompatient聚集函数:avg(),sum(),count(*)行数/count(列名)该列不包含NULL的数量,max(),min()-à所有聚集函数中,除了cou
4、nt(*)外,都不统计null值--à凡是关于数量、个数、人数等的运算使用:count(主码)selectcount(*)as病人总数,count(p_id),count(p_sex),avg(p_status),sum(p_status)frompatient--练习:统计每个科室平均有几个医生--医生总数/科室总数selectcount(d_id)/count(distinctd_depid)as平均医生数fromdoctorwhere简单条件:与列名直接相关的条件。--查询所有男病人的信息s
5、elect*frompatientwherep_sex='男'---à条件可以有多个,条件之间用notandor连接。--练习:查询所有男病人的姓名和年龄select*frompatientwherep_sex='男'-------------à查询语句的解题思路:语法分析,找定语。--练习:查询所有80后男病人的姓名和年龄selectp_nameas姓名,year(getdate())-year(p_birth)+1as年龄frompatientwhere(p_sex='男')and(year(
6、p_birth)>=1980)and(year(p_birth)<=1989)--where(p_sex='男')and(p_birth>='1980-1-1')and(p_birth<='1989-12-31')--练习:查询号科室男医生和4号科室女医生的姓名与职称selectd_name,d_professionfromdoctorwhere(d_depid=3andd_sex='男')or(d_depid=4andd_sex='女')Between…and…介于……和……之间select*f
7、rompatientwherep_birthbetween'1980-1-1'and'1989-12-31'--where(p_birth>='1980-1-1')and(p_birth<='1989-12-31')In(…,…)在(……)范围之内select*frompatientwherep_statusnotin(1,2,3)--where(p_status=1orp_status=3orp_status=2)Likenotlike用于字符串的匹配--查询姓王的医生信息select*from
8、doctorwhered_namelike'王%'----------------à通配符:%任意长的未知字符串;_任意的一个字符;‘王_’^[^王]-----练习:查询住在钟楼区的病人姓名、住址selectp_nameas姓名,p_addressas地址frompatientwherep_addresslike‘钟楼区%’ISNULL判断空值--查询出生日期未知的病人信息select*frompatientwherep_birthisnullisnotnull