计算机二级VF命令语言
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单查询
SELECT……FROM……WHERE……
1、查询表中指定的字段
select 工资from 职工
去掉重复的-----distinct
select distinct工资from 职工
select 职工号,工资from 职工
2、查询表中所有字段
select * from 职工
3、有条件的查询
select distinct 仓库号from 职工where 工资>1210
select 职工号from 职工where 工资>1230
select 职工号from 职工where 工资<1250 and (仓库号="WH1" OR 仓库号="WH2")
select * from 职工where 工资>=1220 AND 工资<=1240
between……AND
select * from 职工where 工资between 1220 AND 1240
like ( %和_ )
select * from 供应商where供应商名like "%公司"
select * from 供应商where 供应商名like "%厂"
not
select * from 供应商where地址!="北京"
select * from 供应商where 地址<>"北京"
select * from 供应商where not (地址="北京")
select * from 职工where 工资not between 1220 AND 1240
select * from 供应商where 供应商名not like "%厂"
简单连接查询
多个关系中含有相同属性名时,必须用关系前缀指明属性所属的关系。否则可不加前缀。
关系名.属性名或关系名->属性名
select 职工号,城市from 职工,仓库;
where 职工.仓库号=仓库.仓库号
select 职工号,城市from 职工,仓库;
where 职工.仓库号=仓库.仓库号and 工资>1230
select 职工号,城市from 职工,仓库;
where 职工->仓库号=仓库->仓库号and 工资>1230
select 职工号,城市from 职工,仓库;
where 职工->仓库号=仓库->仓库号and 面积>400
别名.属性名或别名->属性名
select 职工号,城市from 职工a,仓库b;
where a.仓库号=b.仓库号and 面积>400
嵌套查询
检索关系X中的元组时,它的条件依赖于相关的Y中元组的属性值。
1、返回单值
查找和职工E4挣同样工资的所有职工(1250)
select 职工号from 职工where 工资=;
(select 工资from 职工where 职工号="E4")
2、返回一组值
SELECT 城市FROM 仓库WHERE 仓库号IN;
(SELECT 仓库号FROM 职工WHERE 工资=1250)
SELECT 城市FROM 仓库WHERE 仓库号IN ("WH1","WH2")
SELECT * FROM 仓库WHERE 仓库号NOT IN;
(SELECT 仓库号FROM 职工WHERE 工资<=1210)
SELECT * FROM 仓库WHERE 仓库号IN (SELECT 仓库号FROM 职工) (WH1,WH2,WH3)
SELECT * FROM 仓库WHERE 仓库号IN (SELECT 仓库号FROM 职工);
AND 仓库号NOT IN;
(SELECT 仓库号FROM 职工WHERE 工资<=1210)
或:
SELECT * FROM 仓库WHERE 仓库号NOT IN;
(SELECT 仓库号FROM 职工WHERE 工资<=1210);
AND 仓库号IN (SELECT 仓库号FROM 职工)
排序ORDER BY (ASC DESC )
select * from 职工ORDER BY 工资
select * from 职工ORDER BY 工资desc
select * from 职工ORDER BY 仓库号,工资desc
简单计算
sele count(*) from 供应商
sele count(地址) from 供应商(有重复4)
sele count(dist 地址) from 供应商(3)
sele sum(工资),avg(工资),max(工资),min(工资) from 职工
sele sum(工资)as 工资总和,avg(工资)as 工资平均值,max(工资) as 工资最大值,min(工资)as 工资最小值from 职工
sele max(工资),min(工资) from 职工where 仓库号="WH2"
sele sum(工资) from 职工where 仓库号in;
(sele 仓库号from 仓库where 城市="北京" or 城市="上海")
分组
SELECT 仓库号,AVG(工资) FROM 职工GROUP BY 仓库号SELECT 仓库号 ,COUNT(*),AVG(工资) FROM 职工;
GROUP BY 仓库号 HAVING COUNT(*)>=2
空值
SELECT * FROM 订购单WHERE 供应商号is null
SELECT * FROM 订购单WHERE 供应商号is NOT null
别名与自然连接
select 职工号,城市from 职工 a,仓库 b;
where a.仓库号=b.仓库号
SELECT 供应商名FROM 供应商 a,订购单 b,职工 c,仓库 d; WHERE a.供应商号=b.供应商号 AND b.职工号=c.职工号 AND c.仓库号=d.仓库号
内外层互相关嵌套查询
SELECT out.职工号,out.供应商号,out.订购单号,out.订购日期,out.总金额FROM 订购单 out ;
WHERE 总金额=(select MAX(总金额) FROM 订购单INNER1 WHERE out.职工号=inner1.职工号)
如果采用分组,则
SELECT 职工号,MAX(总金额) FROM 订购单GROUP BY 职工号
不能
SELECT 职工号,供应商号,MAX(总金额) FROM 订购单GROUP BY 职工号