三体IT计划

导航

部分SQL语句

select查询(运行下面的语句,说出其含义)

select * from zgda

select all 职称 from zgda        &&all可省略,查出所有记录的职称字段值

select distinct 职称 from zgda    &&查出所有记录的职称字段值,去掉重复行。

select 姓名,性别,年龄,职称 from zgda 

select top 3 * from zgda order by 编号 desc           &&查编号最大的前3条记录

select top 50 percent * from zgda order by 年龄 desc    &&查年龄最大的前一半记录

select 姓名,性别,年龄,职称 from zgda where 性别="男"号  && 等同于:where 性别 like "男"

select 姓名,性别,年龄,职称 from zgda where 职称="讲师" order by 性别 asc,年龄 desc

select 姓名,性别,年龄,职称 from zgda where 年龄 between 40 and 50    &&包括40和50

select 姓名,性别,年龄,职称 from zgda where  年龄 >= 40 and 年龄 <=50  &&与上一句等价

select 姓名,性别,年龄,职称 from zgda where 年龄 not between 40 and 50    &&年龄不在40和50范围内

select * from zgda where 姓名 like "刘%"                    &&查询所有姓刘的记录

select * from zgda where 姓名 like "王_"     &&查询所有姓王且姓名只有两个字符的记录

select 姓名,性别,年龄,职称 from zgda where 姓名 not like "王%"  &&查询所有不姓王的记录

where后面的特殊运算符(in ;between  and ;like)

select 姓名,性别,年龄,职称 from zgda where 姓名 in ( "刘","王")   &&查姓刘和姓王的记录,与下一语句等价。

select 姓名,性别,年龄,工资,职称 from zgda where 姓名 ="刘" or 姓名 ="王"

select 姓名,性别,年龄,职称 from zgda where 职称 in ("讲师","副教授")

select 姓名,性别,年龄,职称 from zgda where 职称="讲师" or 职称="副教授"

注:in 运算符:判断表达式的值是否等于指定列表中几个值中的一个

select 职称,avg(年龄) from zgda group by 职称  &&查每种职称的职工平均年龄

select 职称,avg(年龄) 平均年龄from zgda group by 职称  &&同时给表达式avg(年龄) 命名为 平均年龄

***将上面的两条语句中的avg换成sum后,再运行,看功能是什么?

select 职称,avg(年龄) from zgda group by 职称  having avg(年龄)>40   &&平均年龄>40的分组会显示

select max(年龄) from zgda        &&查表中最大年龄值,最小用min

select职称,max(年龄) from zgda  group by 职称  &&查每种职称的职工最大年龄,最小用min

select count(*) 职工人数 from zgda             &&查表中人数,职工人数为自定义别名

select count(性别) from zgda                    &&查性别字段值的行数(计重复值)  结果为:8

select count(distinct 性别) from zgda             &&查性别字段值的行数(不计重复值)结果为:2

select 性别,count(*) 职工人数 from zgda group by 性别    &&查男女职工人数,职工人数为自定义别名

查询去向:

select * from zgda where 性别='女' into table dagirl  &&查女生记录,存于表dagirl中(use dagirl/list看结果)

select * from zgda where 性别='男' into cursor temp  &&查男生记录,存于临时表temp中(list看结果)

select * from zgda where 性别='男' into array AA   &&查男生记录,存于数组AA 中(display memory 看结果)

select * from zgda where 性别='男' to file da additive  &&以追加方式存于文本文件da.txt 中(无additive,覆盖方式)

将上一条语句改为:to screen  &&结果送到主屏幕;to printer  &&结果送到打印机

连接查询:

l 查询出给职工E3发订购单的供应商的信息.(下面的几条语句功能相同)

select g.供应商号,供应商名,地址 from 供应商 g,订购单 d where d.供应商号=g.供应商号 and 职工号="E3"

select g.供应商号,供应商名,地址 from 供应商 g inner join 订购单 d on d.供应商号=g.供应商号 where 职工号="E3"

select 供应商号,供应商名,地址 from 供应商 where 供应商号 in (select 供应商号 from 订购单 where 职工号="E3")

select * from 供应商 g where exist (select * from 订购单 d where d.职工号=“E3” and d.供应商号=g.供应商号)

l 查询出没有给职工E3发订购单的供应商的信息.

select * from 供应商 g where not exist (select * from 订购单 d where d.职工号=“E3” and d.供应商号=g.供应商号)

l 上机调试教材中的下列例子:(所用的源文件在教材中光盘中的vpf1文件夹,拷贝后要去掉”只读”属性)

13.9---13.10---13.11---13.12---13.13---13.14----13.24---13.25---13.26---13.27---13.29---13.30---13.35

posted on 2022-11-28 20:26  mbaicizhan  阅读(29)  评论(0编辑  收藏  举报