




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单查询由SELECT和FROM构成的无条件查询,或由SELECT、FROM和WHERE构成的条件查询。 一般格式: SELECT DISTINCT 字段名表 FROM 数据库名!表名 SELECT DISTINCT 字段名表 FROM 数据库名!表名 WHERE 条件 ( DISTINCT短语功能是去掉重复值)select 工资 from 职工select distinct 工资 from 职工select * from 仓库select 职工号 from 职工 where 工资1230select distinct 仓库号 from 职工 where 工资1210select 职工号 from 职工 where 工资1230)and(职工.仓库号=仓库.仓库号)select 职工号,城市 from 职工,仓库 where (面积400)and(职工.仓库号=仓库.仓库号)嵌套查询查询结果出自一个表但条件却涉及另外的多个相关表。 一般格式: SELECT DISTINCT 字段名表 FROM 数据库名!表名 WHERE 字段名 IN (SELECT 字段名 FROM 另一表名)select 城市 from 仓库 where 仓库号 in;(select 仓库号 from 职工 where 工资=1250)select * from 仓库 where 仓库号 not in;(select 仓库号 from 职工 where 工资=1210)select * from 仓库 where 仓库号 not in;(select 仓库号 from 职工 where 工资=12 OR =12 AND =12 OR 年龄=12 AND 年龄=46 2字符串匹配查询可以使用LIKE运算符。 select * from 供应商 where 供应商名 like “%公司” 通配符“%”表示0个或多个字符,另外还有一个通配符“_”表示一个字符或汉字。 3SQL中“!=”及“NOT”的应用。 select * from 供应商 where 地址!=北京select * from 职工 where 工资 not between 1220 and 1240 2008年4月份考试试题:(8)在SQL的WHERE子句的条件表达式中,字符串匹配(模糊查询)的运算符是 LIKE 。排序将查询结果排序可以使用ORDER BY短语,格式如下: ORDER BY 字段名1ASC|DESC,字段名2ASC|DESC select * from 职工 order by 工资select * from 职工 order by 仓库号,工资简单的计算查询SQL语言功能完备,它不仅具有一般的检索能力,而且还有计算方式的检索,用于计算机检索的函数有: COUNT计数 SUM求和 AVG计算平均值 MAX不最大值 MIN求最小值这些函数可以用在SELECT短语中对查询结果进行计算。select count(distinct 地址) from 供应商select count(*) from 供应商select sum(工资) from 职工select sum(distinct 工资) from 职工select sum(工资) from 职工 where 仓库号 in;(select 仓库号 from 职工 where 城市=北京 or 城市=上海)select avg(面积) from 仓库 where 仓库号 not in;(select 仓库号 from 职工 where 工资=1210)select avg(面积) from 仓库 where 仓库号 not in;(select 仓库号 from 职工 where 工资=2利用空值查询(IS NULL)select * from 订购单 where 供应商号 is nullselect * from 订购单 where 供应商号 is not null 2006年9月份考试试题:(10)在 SQL 语句中空值用【10】表示。(IS NULL) 2007年9月份考试试题:(6)如下命令查询雇员表中“部门号“字段为空值的记录SELECT * FROM 雇员WHERE部门号【6】 。 (IS NULL) 2008年4月份考试试题:(11)在SQL中,要查询表S在AGE字段上取空值的记录,正确的SQL语句为: SELECT * FROM S WHERE AGE IS NULL 别名与自联接查询SQL中允许在FROM短语中为关系名定义别名。 select 供应商名 from 供应商,订购单,职工,仓库;where 地址=北京 and 城市=北京;and 供应商.供应商号=订购单.供应商号;and 订购单.职工号=职工.职工号;and 职工.仓库号=仓库.仓库号select 供应商名 from 供应商 s,订购单 p,职工 e,仓库 w;where 地址=北京 and 城市=北京;and s.供应商号=p.供应商号;and p.职工号=e.职工号;and e.仓库号=w.仓库号以上的操作中别名不是必须的,但在关系的自联接操作中,别名是必不可少的。 SQL的自联接是将同一关系与其自身进行联接。这种联接是根据一个表中出自同一值域的两个不同字段进行一对多联系。 实例说明:有这样一个名称为雇员的关系: select s.雇员姓名, 领导 ,e.雇员姓名 from 雇员 s,雇员 e;where s.雇员号=e.经理内外层互相关嵌套查询是一种内外层互相关的查询,这种查询内层查询的条件需要外层查询提供,而外层查询的条件需要内层查询的结果。 以前的我们学的是外层查询需要内层查询提供条件值,而内部查询和外部查询无关。select out.职工号,out.供应商号,out.订购单号,out.订购日期,out.总金额;from 订购单 out where 总金额=;(select max(总金额) from 订购单 inner1;where out.职工号=inner1.职工号)使用量词和谓词的查询1. 量词查询格式: ANY|SOME|ALL(子查询)实例说明:select distinct 仓库号 from 职工 where 工资=any;(select 工资 from 职工 where 仓库号=wh1)select distinct 仓库号 from 职工 where 工资=;(select min(工资) from 职工 where 仓库号=wh1)select distinct 仓库号 from 职工 where 工资=all;(select 工资 from 职工 where 仓库号=wh1)select distinct 仓库号 from 职工 where 工资=;(select max工资) from 职工 where 仓库号=wh1)select distinct 仓库号 from 职工 where 工资=;(select max(工资) from 职工 where 仓库号=wh1) 2. 谓词查询格式: NOT EXISTS(子查询)实例说明:select * from 仓库 where not exists;(select * from 职工 where 仓库号=仓库.仓库号)select * from 仓库 where not in;(select 仓库号 from 职工)select * from 仓库 where 仓库号 not in;(select 仓库号 from 职工)select * from 仓库 exists;(select * from 职工 where 仓库号=仓库.仓库号)select * from 仓库 where exists;(select * from 职工 where 仓库号=仓库.仓库号)select * from 仓库 where 仓库号 in;(select 仓库号 from 职工)超联接查询前面我们学的联接只是查询出满足联接条件的信息,而超联接查询功能更加强大,可以根据需要查询出更多联接情况的信息,有四种联接情况的格式: 1普通联接(内部联接) 基本格式:SELECT FROM 左表 INNER JOIN 右表 ON 联接条件 WHERE 其它条件 select 仓库.仓库号,城市,面积,职工号,工资;from 仓库 join 职工;on 仓库.仓库号=职工.仓库号select 仓库.仓库号,城市,面积,职工号,工资;from 仓库 inner join 职工;on 仓库.仓库号=职工.仓库号select 仓库.仓库号,城市,面积,职工号,工资;from 仓库,职工 where 仓库.仓库号=职工.仓库号2左联接 基本格式:SELECT FROM 左表 LEFT JOIN 右表 ON 联接条件 WHERE 其它条件 除满足联接条件的记录出现在查询结果中外,左表中不满足联接条件的记录也出现在查询中,而相关的右表查询字段值是NULL。 例:select 仓库.仓库号,城市,面积,职工号,工资;from 仓库 left join 职工;on 仓库.仓库号=职工.仓库号3右联接 基本格式:SELECT FROM 左表 RIGHT JOIN 右表 ON 联接条件 WHERE 其它条件 除满足联接条件的记录出现在查询结果中外,右表中不满足联接条件的记录也出现在查询中,而相关的左表查询字段值是NULL。 例:select 仓库.仓库号,城市,面积,职工号,工资;from 仓库 right join 职工;on 仓库.仓库号=职工.仓库号4全联接 基本格式:SELECT FROM 左表 FULL JOIN 右表 ON 联接条件 WHERE 其它条件 查询的左右表各个字段的所用值全部显示,有满足联接条件的记录在同行输出,不满足联接条件的字段相应列将显示为NULL。 例: select 仓库.仓库号,城市,面积,职工号,工资;from 仓库 full join 职工;on 仓库.仓库号=职工.仓库号注意:超联接查询中多个表联接时,要注意FROM后中间表是连接前后表的纽带必是与前后表都有联接关系的,另外FROM后表名的顺序与条件ON的顺序是相反的。 例:select 仓库.仓库号,城市,供应商名,地址;from 供应商 join 订购单 join 职工 join 仓库;on 职工.仓库号=仓库.仓库号;on 订购单.职工号=职工.职工号;on 供应商.供应商号=订购单.供应商号集合的并运算SQL支持集合的并(UNION)运算,可以将具有相同查询字段个数且对应字段值域相同的SQL查询语句用UNION短语联接起来,合并成一个查询结果输出。 select * from 仓库 where 城市=北京;union;select * from 仓库 where 城市=上海 2006年4月份考试试题:(11)SQL支持集合的并运算,运算符是 【11】 。 (UNION)Visual FoxPro中SQL SELECT的几个特殊选项1显示排序查询中的部分结果 基本格式: SELECT TOP 数字 PERCENT FROM 表名 WHERE ORDER BY TOP短语必须与ORDER BY短语同时使用才有效。 “数字”在没PERCENT时是1至32767间的数,有PERCENT时是0.01至99.99间的实数。 select * top 3 from 职工 order by 工资 descselect * top 30 percent from 职工 order by 工资 2007年4月份考试试题:(11)“歌手”表中有“歌手号”、“姓名”和“最后得分”三个字段,“最后得分”越高名次越靠前,查询前10名歌手的SQL语句是 SELECT * 【11】 FROM 歌手 ORDER BY 最后得分 【12】 (TOP 10)、(DESC)2将查询结果存放到数组中 在SQL查询语句的尾部添加INTO ARRAY 可以将查询的结果放入指定的数组中。此操作的主要目的通常是将一个表中的查询数据添到另一个已存在的表中。 select * from 职工 into array tmp 3将查询结果存放到临时表中 在SQL查询语句的尾部添加INTO CURSOR 可以将查询的结果放入指定的临时表中。此操作的通常是将一个复杂的查询分解,临时表通常不是最终结果,可以接下来对临时表操作得到最终结果。生成的临时表是当前被打开的并且是只读的,关闭该文件时将自动删除。 select * from 职工 into cursor tmp4将查询结果存放到永久表中 在SQL查询语句的尾部添加INTO DBF|TABLE 可以将查询的结果放入新生成的指定表中。 select * top 3 from 职工 into table highsal order by 工资 desc 2006年9月份考试试题:(9)在 SQL SELECT 语句中为了将查询结果存储到永久表应该使用【9】短语。(INTO TABLE 或 INTO DBF)5将查询结果存放到文本文件中 在SQL查询语句的尾部添加TO FILE 可以将查询的结果放入新生成的指定.TXT文件中。 select * top 3 from 职工 to file tmp order by 工资 desc 6将查询结果直接输出到打印机 在SQL查询语句的尾部添加TO PRINTER PROMPT可以将查询的结果直接输出到打印机。 select * top 3 from 职工 to printer prompt order by 工资 desc7.将查询结果直接输出到屏幕使用短语TO SCREENselect * from 职工 to screen插入数据Visual FoxPro中有标准格式和特殊格式两中。标准格式: INSERT INTO 表名(字段名表) VALUES(插入值表达式1,插入值表达式2,) 例:insert into 职工(职工号,仓库号,工资) values(e9,wh9,1800)特殊格式: INSERT INTO 表名 FROM ARRAY 数组名 | FROM MEMVAR FROM ARRAY 数组名 说明从指定的数组中插入记录值 FROM MEMVAR 说明根据同名的内存变量来插入记录值,如果同名的变量不存在,那么相应的字段为默认值或空值。更新数据格式:UPDATE 表名 SET 字段名1=表达式1 ,字段名2=表达式2 WHERE 条件例:update 职工 set 工资=工资*1.10 where 仓库号=wh9“ 2006年4月份考试试题:(31)要使”产品”表中所有产品的单价上浮8,正确的SQL命令是A)UPDATE 产品 SET 单价=单价+单价*8 FOR ALL B)UPDATE 产品 SET 单价=单价*1.08 FOR ALLC)UPDATE 产品 SET 单价=单价+单价*8 D)UPDATE 产品 SET 单价=单价*1.08删除数据格式:DELETE FROM 表名 WHERE 条件是逻辑删除指定表中满足条件的记录,如果 要物理删除记录需要继续使用PACK命令。delete from 职工 where 仓库号=wh94.4.1 表的定义 一般格式:CREATE TABLE|DBF 表名(字段1名 类型(宽度)NULL|NOT NULLCHECK 规则ERROR 提示信息DEFAULT 默认值PRIMARY KEY|UNIQUE, 字段2名 类型(宽度),) create database 订货管理1create table 仓库1(;仓库号 c(5) primary key,;城市 c(10)表的删除一般格式:DROP TABLE 表名drop table 仓库1delete database 订货管理1 2005年4月份考试试题:(26)在Visual FoxPro中,删除数据库表S的SQL命令是_。A)DROP TABLE SB)DELETE TABLE SC)DELETE TABLE S.DBFD)ERASE TABLE S表结构的修改格式1:ALTER TABLE 表名 ADD|ALTER COLUMN 字段名1 类型(宽度,小数位) NULL|NOT NULLCHECK 规则表达式 ERROR 提示信息DEFAULT 默认值 PRIMARY KEY|UNIQUE 格式2:ALTER TABLE 字段名1 ALTER COLUMN 字段名2 NULL|NOT NULL SET DEFAULT 默认值SET CHECK 规则 ERROR 提示信息 DROP DEFAULTDROP CHECK 格式3:ALTER TABLE 表名1 DROP COLUMN 字段名 RENAME COLUMN 字段名1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辅警招聘考试综合提升试卷附答案详解(研优卷)
- 2022年2月韶关市直遴选面试真题附解析
- 2022年11月三明市税务系统遴选面试真题带详细解析
- 2025年行政执法基础知识综合练习题含答案详解(综合卷)
- 2025年皖北煤电集团总医院招聘24人笔试备考题库及1套参考答案详解
- 丽江云南丽江市交通运输综合行政执法支队执法辅助人员招聘6人笔试历年参考题库含答案详解(满分必刷)
- Chlorogentisylquinone-生命科学试剂-MCE
- 2025企业员工雇佣合同协议
- 2025企业间借款合同范本2
- 2023-2024学年河北省保定市曲阳县统编版六年级下册期末考试语文试卷
- 公司岗变薪变管理制度
- 2025年六五环境日生态环保常识及法律知识有奖竞答题库及答案(共90题)
- 上海市社区工作者管理办法
- 湖南师范大学学位英语历年考试真题
- NLP神经语言学培训课件(PPT 164页)
- 脑卒中康复PPT医学课件
- 老年人的居家护理课件
- PCB 企业生产工艺及风险点
- 消防安全工作台账-消防台账记录
- 中医肿瘤临床路径
- 中考数学《分式及分式方程》计算题(附答案)
评论
0/150
提交评论