VFP实验5 SQL语言的应用-参考答案
visual foxpro SQL语句的各种答案
~~~D现有三个自由表:学生信息表:{<myStudent.dbf>},由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在院系(Sdept)五个属性组成,其中为Sno主码。
课程信息表:{<myCourse.dbf>},由课程号(Cno)、课程名(Cname)、选修课号(Cpno)、学分(Ccredit)四个属性组成,其中Cno为主码。
学生选课表:{<mySC.dbf>},由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,主码为(Sno, Cno)。
请按下面要求写出SQL代码:(1) 查询所有学生的全部信息。
(5分)(2) 查询选修了课程“3503”的学生的学号及其成绩,查询结果按分数降序排列。
(5分)(3) 删除姓张的学生记录。
(5分)(4) 查询其他系中比生物系某一学生年龄小的学生的姓名和年龄。
(10分)~(1) select * from myStudent 或select sNo,Sname,Ssex,Sage,Sdept from myStudent(2) select Sno,Grade from mySC where Cno='3503' order by Grade desc(3) delete from myStudent where Sname like '张%'(4) select Sname,Sage from mySTudentwhere Sage < any (select Sage from myStudent where Sdept = '生物系')and Sdept <> '生物系'~~~D现有三个自由表:学生信息表:{<myStudent.dbf>},由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在院系(Sdept)五个属性组成,其中为Sno主码。
VFP第五章SQL
1. SQL命令动词 要记住,这个表 格可以出题,选 择、填空都可 能.
在VFP中不能使用命令 GRANT、REVOKE
SQL功能
命令动词
数据查询
数据定义 数据操纵
select
Create,drop ,alter Insert, update delete Grant revoke
Select from xs,cj where xs.xh=cj.xh
select * from cj && *表示什 么意思? 表示cj表的所有字段.
4.2.3嵌套查询(必考题)
NOT IN是排除的意思 Select * from xs where xh not in (select xh from cj) &&排除掉了在CJ表中出现的XH ,也就是所有选过课的学生被排 除掉了,剩下来的就是没有选过 课的学生信息。 In:只在….范围内的意思。
连接查询。 凡要从两个表里查询记录的话, 一定要对两个表进行联接,否则 是不能进行查询的.
最常用的连接是普通连接: (1)Select ….from 表1名字, 表2 名 where 表1名.字段名=表2 .相同字段名 Select …. From xs,cj where xs. xh =cj.xh (2)等价于(1):select…..from 表1名 join 表2名 on 表1名.字段名=表2 . 相同字段名
4.2.4 也考过 成绩 not Between 20 and 100用关系 运算符来改写:成绩<20 or 成绩>100 Select xh from cj where cj in(60,70,80) &&查询cj=60 or cj=70 or cj=80的学 生xh
vf数据库sql部分的答案
vf数据库sql部分的答案一、用SQL完成以下查询1检索在北京的供应商的名称。
select 供应商名from 供应商where 地址='北京'2.检索出向供应商s3发过订购单的职工的职工号和仓库号。
select 职工号from 订购单where 供应商号='s3'select 仓库号from 职工where 职工号='e3'3.检索出和职工e1、e3都有联系的北京的供应商的信息。
select 供应商号from 供应商where 地址='北京select 供应商号,职工号from 订购单where 职工号='e1' or 职工号='e3' and 供应商号='s4' or 供应商号='s7'4.检索出向s4供应商发出订购单的仓库所在的城市。
select 职工号from 订购单where 供应商号='s4'select 仓库号from 职工where 职工号='e1' or 职工号='e7' or 职工号='e3'select 城市from 仓库where 仓库号='wh2' or 仓库号='wh1'5.检索出由工资多于1230元的职工向北京的供应商发出的订购单号。
sele订购单号from 订购单where;(供应商号in (sele供应商号from 供应商where 地址= '北京')) ;and (职工号in (sele职工号from 职工where 工资>1230))6.检索出所有仓库的平均面积。
Select avg(面积) as '平均面积' from 仓库7.检索出每个仓库中工资多于1220元的职工个数。
sele count(职工号) as 职工号个数from 职工where 工资>12208.检索出工资低于本仓库平均工资的职工信息。
vfp5 SQL
TO PRINTER:将查询结果送打印机打印。
分组 GROUP BY子句用来定义或者划分字段的值成为多个 组,它能控制和影响查询的结果。 【例16】列出成绩表中选修3门课以上的学生姓名、 成绩及课程门数。 SELECT 姓名,成绩,CNT(课程号) AS门数; FROM XSQK,CJ; WHERE XSQK.学号=CJ.学号; GROUP BY CJ.学号; HAVING COUNT(CJ.学号)>=3
数据查询命令 SELECT [ALL|DISTINCT] [<表别名1>.]<表达式1> AS <列名1>] [,[<表别名2>.]<表达式2> AS <列名2>]…] FROM [数据库名!]<表名>[逻辑别名] [[INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER] JOIN [,<数据库2>!<表名2>[<逻辑别名2>]ON联接条件…] [INTO DBF|TABLE|CURSOR <表名>] [WHERE <连接条件> [AND <连接条件>…] [AND|OR <条件表达式>[AND|OR <条件表达式>…]]] [GROUP BY<分组表达式>[,<分组表达式>…]] [HAVING <筛选条件>] [UNION[ALL]SELECT <语句>] [ORDER BY <排序项> [ASC|DESC][,<排序项>…]]
【例13】查询信息系和计算机系的读者人数 SELECT CNT(*) FROM DZ ; WHERE 单位=“计算机系” OR 单位=[信息系] 或SELECT CNT(*) FROM DZ ; WHERE 单位 IN (“计算机系” ,[信息系]) 4.对查询结果排序(ORDER BY…[ASC|DESC]) 【例14】按数学成绩升序检索出学生信息 SELECT * FROM XSCJ ORDER BY 数学 【例15】按数学成绩降序检索出学生信息 SELECT * FROM XSCJ ORDER BY 数学 DESC
05Visual FoxPro中SQL语言的应用
22
5.2.1 单表查询(11)
3. 对查询结果排序
用户可以用ORDER BY子句对查询结果按照一个或多 个属性列的升序(ASC)或降序(DESC)排列, 缺省值为升序。
例5-23:查询所有学生的入学成绩,查询结果按入学成绩的 降序排列。 select 学号,姓名,入学成绩; from 学生表; Order by 入学成绩 desc
4
过程化语言示例
煮饭
买米 淘米 开始煮 等待 饭好
江西财经大学信息管理学院《数据 库应用》课程组
5
非过程化语言示例
饭店吃饭
点菜 上菜
江西财经大学信息管理学院《数据 库应用》课程组 6
5.1 SQL语言概述(3)
SQL语言结构简洁,功能强大,简单易学。 SQL语言是关系数据库管理系统的标准语言。 SQL分成3类: 以记录为
江西财经大学信息管理学院《数据 库应用》课程组 15
5.2.1 单表查询(4)
2. 选择表中的若干元组 选择一个表中的若干元组(或记录)操作,是对 该表实行选择操作。其方法是使用SELECT语 句的WHERE子句中的条件。
江西财经大学信息管理学院《数据 库应用》课程组
16
5.2.1 单表查询(5)
分组汇总 排序
简单格式:
select 字段列表 from 数据来源列表 where 条件
江西财经大学信息管理学院《数据 库应用》课程组 12
5.2.1 单表查询(1)
1. 单表基本查询 单表查询的含义:from子句只有一个数据表。 (1) 查询所有列
例5-1:返回“学生表”中的所有行和所有列。 open database “d:\我的数据库项目\数据库\教学管理数据 库.dbc“ select *; from 教学管理数据库!学生表 例5-2:查询成绩表中的所有记录。 open database “d:\我的数据库项目\数据库\教学管理数据 库.dbc“ select *; from 成绩表
数据库原理复习资料5、vfp数据库的操作及sql语言的应用.docx
班级: ___________ 姓名:______________ 学号:________________ 成绩:__________一、选择题1. 1.命令SELECTO的功能是_A _______ 。
A、选择区号最小的空闲工作区B、选择区号最大的空闲工作区C、选择当前工作区的区号加1的工作区D、随机选择一个工作区的区号2.以下叙述中,错误的是—C_oA、工作区的系统别名和用户定义的数据表别名可以交替使用B、在某个工作区打开的数据表原名和工作区别名可以交替使用C、在某个工作区打开的数据表原名和数据表别名可以交替使用D、在选择工作区时,可以用工作区号、系统别名或打开的数据表别名3.VFP中的SET RELATION关联操作是一种_人__ 。
A、逻辑连接B、物理连接C、逻辑排序D、物理排序4.建立两个数据表关联,要求_____ D_oA、两个数据表都必须排序B、关联的数据表必须排序C、两个数据表都必须索引D、被关联的数据表必须索引5.下列叙述正确的是_C—oA、一个数据表被更新时,它所有的索引文件会自动被更新B、一个数据表被更新时,它所有的索引文件不会自动被更新C、一个数据表被更新吋,处于打开状态下的索引文件会自动被更新D、当两个数据表用SET RELATION TO命令建立关联后,调节任何一个数据表的指针时,另一个数据表的指针将会同步移动6.两个数据表结构相同,若要将STD1.DBF中的纪录追加到STD2.DBF之后,应使用命令组BA、USE STD1B、USE STD2APPEND TO STD2 APPEND FROM STD1C、USE STD1D、USE STD2COPY TO STD2 COPY FROM STD 17.VFP屮,下列概念屮正确的是_A—oA、在同一个工作区中,某一时刻只能有一个表文件处于打开状态B、一个表文件可以在不同的工作区屮同时打开C、U PDATE命令中的两个表必须按相同关键字建立索引D> JOIN命令生成的表文件可以与被连接的表在一个工作区内同吋打开1. B2. A3. C4. A5. A 6・ C 7. D 8・ B 9. C10. D 11. A 12. D 13. A 14. C 15. C 16. D 17. B 18. B1.下列命令中,用于打开数据库设计器的是_B—。
实验5 sql语句练习——图书馆数据库答案
实验5sql语句练习——图书馆数据库实验5 sql语句练习——图书馆数据库实验目的(1)了解SQL Server数据库的逻辑结构和物理结构;(2)了解表的结构特点;(3)了解SQL Server的基本数据类型;(4)了解空值概念;(5)学会在企业管理器中创建数据库和表;(6)学会使用T-SQL语句创建数据库和表。
(7)学会使用T-SQL语句更新数据。
(7)学会使用T-SQL语句创建多种查询。
实验准备首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。
然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。
此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。
实验内容假设有5本书设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。
三个表的结构如图:列名说明数据类型约束说明书号图书唯一的编号定长字符串,长度为10 主键书名图书的名称定长字符串,长度为50 空值作者图书的编著者名定长字符串,长度为30 空值出版社图书的出版社定长字符串,长度为30 空值单价出版社确定的图书的单价浮点型,Float 空值读者表结构假设有10位读者列名说明数据类型约束说明读者号读者唯一的编号定长字符串,长度为10 主键姓名读者姓名定长字符串,长度为8 非空值性别读者性别定长字符串,长度为2 非空值办公电话读者办公电话定长字符串,长度为8 空值部门读者所在部门定长字符串,长度为30 空值列名说明数据类型约束说明读者号读者的唯一编号定长字符串,长度为10 外码,引用读者表的主键书号图书的唯一编号定长字符串,长度为20 外码,引用图书表的主键借出日期借出图书的日期定长字符串,长度为8 非空值归还日期归还图书的日期定长字符串,长度为8 空值主键为:(读者号,图书号)(1)用Sql语句创建图书馆数据库Create database Lab05(2)用Sql语句创建上述3个表create table book(bookId char(10)primary key,bookName varchar(50),bookWriter varchar(30),bookPublish varchar(30),bookPrice float)create table reader(readerId char(10) primary key,readerName varchar(8)not null,readerSex char(2)not null,readerOfficeTel char(8),readerDepartment varchar(30))create table 借阅表(readerId char(10),bookId char(10),checkOutTime char(8),checkInTime char(8),primary key(readerId,bookId),foreign key (readerId) references reader(readerId),foreign key (bookId) references book(bookId),)(3)基于图书馆数据库的3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)alter table book add ISBN char(10)2)为刚添加的ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为‘7111085949’ALTER TABLE book ADD CONSTRAINT ISBNDEF DEFAULT ('7111085949') FOR ISBN 3)删除图书表中ISBN列增加的缺省值约束alter table book drop ISBNDEF4)删除图书表中新增的ISBN列ALTER TABLE book DROP COLUMN ISBN5)查询全体图书的图书号、书名、作者、出版社和单价select bookId,bookName,bookWriter,bookPublish,bookPricefrom book6)查询全体图书的信息,其中单价打8折,并设置该列的别名为‘打折价’select bookId,bookName,bookWriter,bookPublish,(bookPrice*0.8) as打折价from book7)显示所有借阅者的读者号,并去掉重复行select distinct readerIdfrom 借阅表8)查询所有单价在20—30元之间的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPrice between 20 and 309)查询机械工业出版社、科学出版社、人民邮电出版社的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish in('机械工业出版社' , '科学出版社','人民邮电出版社') 10)查询既不是机械工业出版社、人民邮电出版社、也不是科学出版社出版的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish not in('机械工业出版社' , '科学出版社','人民邮电出版社') 11)查询姓名的第二个字符是’建’,并且只有2个字的读者的读者号及姓名select readerId,readerNamefrom readerwhere readerName like '_建'12)查询姓名不是以‘王’、‘张’或‘李’开头的所有读者的读者号及姓名【方式一】查询出来的结果有问题!select readerId,readerNamefrom readerwhere readerName not in ('王%','张%','李%')【方式二】select readerId,readerNamefrom readerwhere readerName not in(select readerNamefrom readerwhere readerName like'王%'or readerName like'张%'or readerName like'李%' )13)查询无归还日期的借阅信息select book.bookId,book.bookName,reader.readerId,reader.readerName,借阅表.checkOutTime as 借书时间,借阅表.checkInTime as 还书时间from 借阅表,book,readerwhere 借阅表.bookId = book.bookIdand 借阅表.readerId = reader.readerIdand 借阅表.checkInTime is null14)查询机械工业出版社图书的平均价格、最高价、最低价select avg(bookPrice)as 平均价格,max(bookPrice) as 最高价,min(bookPrice) as 最低价from bookwhere bookPublish = '机械工业出版社图书'15)查询读者的基本信息及借阅情况select reader.readerId,reader.readerName ,借阅表.bookId,book.bookName,book.bookPublishfrom reader , 借阅表,bookwhere reader.readerId = 借阅表.readerIdand book.bookId = 借阅表.bookIdand 借阅表.readerId ='1000000007'16)查询至少借阅过1本机械工业出版社出版的图书的读者的读者号、姓名、书名及借阅本数,并按借阅本书多少降序排列select r.Rno,Rname,count(borrow.Bno) 借阅册数from borrow,b,rwhere b.bno=borrow.bno and press='机械工业出版社' and borrow.rno=r.rnogroup by r.rno,Rnameorder by count(borrow.Bno) desc17)查询与‘王小平’的办公电话相同的读者的姓名/* 使用“自连接方式”求解*/select b.readerName,b.readerId,a.readerOfficeTelfrom reader a, reader bwhere a.readerName like '王小平'and a.readerOfficeTel = b.readerOfficeTel/*18)查询所有单价小于平均单价的图书的书号、书名及出版社select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice <(select avg(bookPrice) as averagePricefrom book)19)查询‘科学出版社’的图书单价比‘机械工业出版社’最高单价还高的图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPublish like '科学出版社' and bookPrice >(select max(bookPrice)from bookwhere bookPublish = '机械工业出版社')20)查询‘科学出版社’的图书中单价比‘机械工业出版社’最低单价高的图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice <(select max(bookPrice)from bookwhere bookPublish = '机械工业出版社')and bookPublish like '科学出版社'21)创建机械工业出版社图书的视图CREATE VIEW 机械工业出版社ViewASSELECT bookId,bookName,bookPriceFROM bookWHERE bookPublish = '机械工业出版社'22)创建一个借阅统计视图,名为CountView,包含读者的读者号和总借阅本数CREATE VIEW CountViewASSELECT readerId as 读者号,count(*) as 总借阅本数FROM 借阅表GROUP BY readerId23)创建一个借阅统计视图,名为CountView10,包含借阅总本数打于2的读者号和总借阅本数CREATE VIEW 借阅统计视图ViewASSELECT readerId as 读者号,count(*) as 总借阅本数FROM 借阅表GROUP BY readerIdHA VING COUNT(*) >2。
VF中常用SQL命令使用方法
VF中常用SQL命令使用方法SQL(结构化查询语言)是关系型数据库管理系统中最常用的查询语言。
在VF中,使用SQL命令可以对数据库进行增删改查等操作。
以下是VF中常用的SQL命令使用方法:1.创建表格(CREATETABLE):用于创建数据库中的表格。
语法如下:```sqlCREATE TABLE table_namecolumn1 data_type,column2 data_type,...```例如:```sqlCREATE TABLE customersid INT PRIMARY KEY,name VARCHAR(50),age INT,email VARCHAR(100)```2.插入数据(INSERTINTO):用于向表格中插入新的数据。
语法如下:```sqlINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);```例如:```sqlINSERT INTO customers (id, name, age, email)```3.更新数据(UPDATE):用于更新表格中的数据。
语法如下:```sqlUPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;```例如:```sqlUPDATE customersSET age = 26WHERE id = 1;```4.删除数据(DELETEFROM):用于从表格中删除数据。
语法如下:```sqlDELETE FROM table_name WHERE condition;```例如:```sqlDELETE FROM customers WHERE id = 1;```5.查询数据(SELECT):用于从表格中查询数据。
语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```例如:```sqlSELECT * FROM customers WHERE age > 25;```6.排序数据(ORDERBY):用于按照指定列对查询结果进行排序。
数据库原理中SQL语句实验指导书及答案
实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
VF SQL语言练习 附正确答案
select 学生.性别,count(性别) as 人数 from 学生 group by 性别
2.查找男生入学最高分,显示字段为:姓名、男性最高分
select 学生.姓名,max(入学总分) as 男性最高分 from 学生
3.查找89年6月出生的学生清单,显示所有字段。
9.查询每门功课的平均分,显示字段为课程名,平均分
select 课程.课程名,成绩.成绩,avg(成绩) as 平均分 from 成绩 inner join 课程 on 成绩.课程号=课程.课程号 group by 课程名
10.查询专业名中的前三个字符为“计算机”的学生的平均分,显示字段为专业、平均分
on 成绩.课程号=课程.课程号;
where 成绩>80
select 学生.学号,学生.姓名,课程.课程名,成绩 from 学生,课程,课程 where 课程名="c语言程序设计" and 成绩>80 and 学生.学号=成绩.学号 and 成绩.课程号=课程.课程号
8.使用学生表查询姓刘的学生清单。
select * from 学生 where 姓名 like "刘%"
select 学生.专业,avg(成绩) as 平均分 from 成绩 inner join 学生;
on 学生.学号=成绩.学号;
where 专业 like "计算机%"
11.查询成绩大于80分的课程名,显示课程名和平均分
select 课程.课程名,avg(成绩) as 平均分 from 成绩 inner join 课程;
select * from 学生 where 出生日期 between {^1989-06-01} and {^1989-06-30}
计算机VFP程序设计第五章 关系数据库标准语言SQL(一)
第五章关系数据库标准语言SQL一、SQL简介SQL(Structured Query Language)是结构化查询语言的缩写。
例1:SQL是哪几个英文单词的缩写?( )A)Standard Query LanguageB)Structured Query LanguageC)Select Query LanguageD)以上都不是二、数据查询1、简单查询格式:SELECT ——FROMSELECT:给出要在查询结果中显示的字段名、表达式或常量FROM:给出了查询的数据来源于哪个表例1:从student中查询所有学生的姓名、出生日期、入学分数例2:查询所有学生的详细信息备注:* 表示显示表中所有字段练习1:从职工中检索所有的工资值练习2:检索仓库关系中的所有元组例3:查询显示所有学生的姓名,年龄,院系号,入学分数和增加了5%后的入学分数,并将增加了5%的入学分数显示为“新分数”SELECT 姓名,INT((DATE( )-出生日期)/365) 年龄,院系号,入学分数, ;入学分数*1.05 AS 新分数 FROM student备注:AS 的用法2、条件查询格式:SELECT ——FROM——WHEREWHERE:给出查询的条件(1)WHERE条件中常见的关系运算例:查询显示入学分数在500分以上的学生的姓名和入学分数SELECT 姓名,入学分数 FROM student WHERE 入学分数>578 例:查询2系和4系中所有82年以后出生的非党员的学生的姓名,出生日期,入学分数SELECT 姓名,出生日期,入学分数 FROM student WHERE ;(院系号="2" OR 院系号="4") AND 出生日期>={^1982/1/1} and 党员=.F.备注:WHERE 的用法练习:检索工资多于2220元的职工号(2)WHERE条件中特殊运算符的应用(p118)1、NOT ,!= ,<>例:查询所有不是83年出生的学生2、LIKE :字符匹配运算符。
vfp
VFP实验报告实验(一)数据表的基本操作实验目的:1.掌握建立表与复制表的操作2.掌握数据表的显示与维护3.掌握索引和数据统计的使用实验内容与步骤:1、建立表与复制表操作:(1)建立一个职工表(zg.dbf),字段有:职工号(C,6),姓名(C,8),性别(L),出生日期(D),职称(C,10),基本工资(N,8,2),津贴(N,8,2),实发工资(N,8,2),其内容如下:(2)按上面的内容输入到表中,其中实发工资这个字段不用输入数据(3)修改职工表表结构,在实发工资前增加一个新的字段,扣款(N,8,2),并给这个字段添加相应的数据。
(4)将zg.dbf的表结构复制到新表zg1.dbf中。
Use zg.dbfCopy stru to zg1.dbfUse zg1.dbfDisp stru(5)将zg.dbf 中的所有男教师的记录都复制到zg2.dbf中。
Use zg.dbfCopy to zg2.dbf for 性别=.T.Use zg2.dbfbrowse2、写出下列显示表记录的命令。
(1)显示zg.dbf中所有的讲师Use zg.dbfList for 职称=”讲师”(2)显示所有女教师的姓名List 姓名for 性别=.F.(3)显示70年后出生的教师List for year(出生日期)>1970(4)显示第三条记录的内容Go 3disp(5)显示前三条男教师的姓名,出生日期,职称Locate 姓名,出生日期,职称for 性别=.T.DispContDispContdisp(6)从第3条记录开始显示到末尾记录Go 3DispList rest(7)显示所有男教授的姓名、年龄、基本工资List 姓名, yesr(date ())-year (出生日期),基本工资for 性别=.T. and 职称=”教授”(8)显示所有男性教授或副教授List for 性别=.T. and (职称=”教授” or 职称=”副教授”)(9)显示所有姓林的教师List for substr(姓名,1,2)=”林”(10)显示姓名中有“林”字的记录。
SQL语言习题参考答案
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'(3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND = AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE ='天津' AND COLOR='红' AND = AND =。
Visual FoxPro数据库程序设计实训指导实验5 结构化查询语言SQL
命令格式:
ALTER TABLE <表名> ALTER <字段名> <字段类型>[(<字段宽度>[,<小数位数>])]
【例5-4】把xs表的学号字段宽度改为8。 ALTER TABLE xs ALTER 学号 C(8)
3
嵌套查询
在SQL中,一个SELECT—FROM—WHERE语句称为一个查询模块。 将一个查询模块嵌套在另一个查询模块的WHERE条件中的查询称为嵌套 查询。
5.2 实验内容
5.2.3 SQL的数据操纵功能
1
插入记录
命令格式:
INSERT INTO <表名>[(<字段名1>[,<字段名2>,…])] VALUES(<表达式1>[,<表达式2>,…])
(5)查询满足条件的记录
在SELECT语句中加入WHERE <条件>子句,可查询满足条件的记录。
5.2 实验内容
5.2.2 SQL的数据查询功能
1
简单查询 (6)使用关键字LIKE进行模糊查询 LIKE关键字的一般形式为“列名 LIKE 字符串常量”。列名的 类型必须为字符型。字符串常量中可使用通配符“%”和“_”,其 中: %:代表任意长度(长度可以为0)的字符串; _(下划线):代表任意一个字符。 所有通配符都必须在LIKE子句中才有意义,否则将被当作普通 字符处理。
5.2 实验内容
5.2.1 SQL的数据定义功能
2
修改表结构
(1)增加新字段
命令格式:
ALTER TABLE <表名> ADD <字段名> <字段类型>[(<字段宽度>[,<小数位数>])]
5、VFP数据库的操作及SQL语言的应用
数据库技术及应用第五章VFP数据库的操作班级:姓名:学号:成绩:一、选择题1.1.命令SELECT 0 的功能是__A____。
A、选择区号最小的空闲工作区B、选择区号最大的空闲工作区C、选择当前工作区的区号加1的工作区D、随机选择一个工作区的区号2.以下叙述中,错误的是___C___。
A、工作区的系统别名和用户定义的数据表别名可以交替使用B、在某个工作区打开的数据表原名和工作区别名可以交替使用C、在某个工作区打开的数据表原名和数据表别名可以交替使用D、在选择工作区时,可以用工作区号、系统别名或打开的数据表别名3.VFP中的SET RELATION关联操作是一种__A____。
A、逻辑连接B、物理连接C、逻辑排序D、物理排序4.建立两个数据表关联,要求_____D_。
A、两个数据表都必须排序B、关联的数据表必须排序C、两个数据表都必须索引D、被关联的数据表必须索引5.下列叙述正确的是__C____。
A、一个数据表被更新时,它所有的索引文件会自动被更新B、一个数据表被更新时,它所有的索引文件不会自动被更新C、一个数据表被更新时,处于打开状态下的索引文件会自动被更新D、当两个数据表用SET RELATION TO 命令建立关联后,调节任何一个数据表的指针时,另一个数据表的指针将会同步移动6. 两个数据表结构相同,若要将STD1.DBF中的纪录追加到STD2.DBF之后,应使用命令组__B____。
A、 USE STD1B、 USE STD2APPEND TO STD2 APPEND FROM STD1C、 USE STD1D、 USE STD2COPY TO STD2 COPY FROM STD17.VFP中,下列概念中正确的是__A____。
A、在同一个工作区中,某一时刻只能有一个表文件处于打开状态B、一个表文件可以在不同的工作区中同时打开C、UPDATE命令中的两个表必须按相同关键字建立索引D、JOIN命令生成的表文件可以与被连接的表在一个工作区内同时打开1.B 2.A 3.C 4.A 5.A 6.C 7.D 8.B 9.C 10.D 11.A 12.D 13.A 14.C 15.C 16.D 17.B 18.B1.下列命令中,用于打开数据库设计器的是__B____。
VFP命令和SQL命令(习题参考)
期末考试的上机随机抽查一套第1套有两个数据表:学生信息表(XS.DBF)和学生成绩表(CJ.DBF)。
其数据形式如下:2、建立程序文件COM-SQL711.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)(1)正确修改每个学生的“成绩合格否”字段,并填入学生成绩表CJ.DBF中。
规定笔试成绩<60或上机成绩为“缺考”或“不及格”,则该字段值为.F.,否则为.T.;(2)在学生成绩表CJ.DBF中,查询并显示成绩合格学生的考号、姓名、笔试成绩和上机成绩;(3)逻辑删除学生成绩表CJ.DBF中,上机考试缺考的考生;(1)VFP命令:USE CJREPLACE ALL成绩合格否 WITH .T. FOR 笔试成绩>=60 AND (上机成绩=“及格” OR上机成绩=“优”)SQL命令:UPDATE CJ SET 成绩合格否=.T. WHERE笔试成绩>=60 AND (上机成绩=“及格” OR上机成绩=“优”)(2) VFP命令:SELECT 1USE XSINDEX ON 考号 TAG KHSELECT 2USE CJSET RELATION TO 考号 INTO XSLIST 考号,XS.姓名,笔试成绩,上机成绩 FOR成绩合格否=.T.SQL命令:SELECT XS.考号,姓名,笔试成绩,上机成绩 FROM XS,CJ WHERE XS.考号=CJ.考号 AND 成绩合格否=.T.(3)VFP命令:USE CJDELETE FOR 上机成绩=“缺考”SQL命令:DELETE FROM CJ WHERE上机成绩=“缺考”第2套有两个数据表:职工数据表(ZGB.DBF)和工资数据表(GZB.DBF)。
其数据形式如下:2、建立程序文件COM-SQL712.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 SQL语言的应用
【实验目的】
1.掌握SQL的基本语句的使用
2.掌握SELECT命令的基本用法
3. 掌握对查询的结果进行处理
4.掌握用查询设计器建立查询的方法
【实验内容与操作步骤】
说明:红色字体为答案
设置VFP的默认工作目录为D:\EX7,并完成以下各操作,将操作结果存入D:\EX5文件夹中。
1、使用SQL语句实现下列功能:
(
creat table 学生成绩(学号C(7),姓名C(8),入学成绩N(5,1))
(2)使用ALTER TABLE命令,增加一个字段:性别C(2),并将“学号”的字段长度改为8。
alter table 学生成绩add 性别C(2)
alter table 学生成绩alter 学号C(8)
(
insert into 学生成绩values("0503102","李丽",680,"女")
insert into 学生成绩values("0603101","王庆",600,"男")
或者是:
Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503101”,”张海”,660,”男”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503102”,”李丽”,680,”女”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0603101”,”王庆”,600,”男”)
庆”,600,”男”)
(4)使用DELETE 删除“王庆”的记录。
dele from 学生成绩where 姓名="王庆"
(5)使用UPDATE命令将所有人的“入学成绩”置为0。
update 学生成绩set 入学成绩=0
2、使用SQL语句中的SELECT命令来实现下列查询:
(1)查询“学生.dbf”表中全部记录,输出“学号”、“姓名”、“性别”、“出生日期”和“入学成绩”这5个字段的内容;
select 学号,姓名,性别,出生日期,入学成绩from 学生
(2)查询“学生.dbf”表中的性别为男的所有内容,并按“学号”的降序排列;
select * from 学生where 性别=”男” order by 学号
(3)查询“学生.dbf”表中的全部学生中的入学最高分;
select max(入学成绩) from 学生
(4)查询“学生.dbf”表中的数学专业和英语专业的学生的学号,姓名和专业;
select 学号,姓名,专业from 学生where 专业=”数学” or 专业=”英语”
(5)查询“学生.dbf”表中的入学成绩在550到650之间的学生的学号,姓名和入学成绩,并按“入学成绩”的降序排序;
select 学号,姓名,入学成绩from 学生where 入学成绩>=550 and 入学成绩<=650 order by 入学成绩
(6)利用学生表中的数据创建一个查询,其结果包含学号、姓名、性别、出生日期、专业和入学成绩6个字段,查询结果按入学成绩由高分到低分排序,并将查询结果保存到一个“学生情况表.DBF”文件中;
select 学号,姓名,性别,出生日期,专业,入学成绩from 学生order by 入学成绩desc into table 学生情况表
【思考题】
请参考教材6.4.3 嵌套查询、6.4.4 多表联接查询、6.4.5查询结果输出处理做如下练习。
写出相应的SQL命令并上机运行。
(1)查询“学生.dbf”和“学生其它情况.dbf”表中的所有姓“李”的学生的学号、姓名和身份证;
(2)查询“成绩.dbf”和“课程.dbf”表中的选修“计算机基础”的所有学生的学号和成绩,按“学号”的升序进行排序,并输出到TEST文件中;
(3)查询“学生.dbf”、“成绩.dbf”和“课程.dbf”表中的选修“电脑文秘应用”的所有学生的学号,姓名,课名和总评(总评=(平时+期中+期末)/3);。