当前位置:文档之家› 《数据的查询操作》

《数据的查询操作》

《数据的查询操作》
《数据的查询操作》

《数据的查询操作》

第八次作业1

1.检索年龄大于18岁的女学生的学号和姓名(注意:要给列起别名);

use学生课程数据库

select sno,sname

from student

where sage>18 and ssex='女'

2.检索所有男学生选修的课程号和课程名称(仅在结果中列出10%的数据行)。

use学生课程数据库

select top(10)percent https://www.doczj.com/doc/3615785442.html,o,cname

from student,sc,course

where student.sno=sc.sno and https://www.doczj.com/doc/3615785442.html,o=https://www.doczj.com/doc/3615785442.html,o and ssex='男'

3.查询年龄大于18,并不是信息管理也不是计算机科学的学生的姓名和性别(复合查询);

select sname,ssex

from student

where sage>18 and sdept not in('信息管理','计算机科学')

4..查询以“DB_”开头,和倒数第二个汉字为“导”字的课程信息(模糊查询);

select*

from course

where cname like'DB_%'or cname like'%导_'

5.查询student表和sc表的交叉连接;

select*

from student cross join sc

6.检索王同学不学的课程的课程号和课程名称;

select cno,cname

from course

where cno not in(select cno from sc where sno in(select sno

from student

where sname='王%'))

7.检索全部学生都选修的课程号和课程名称;

SELECT cno,cname

FROM course

WHERE NOT EXISTS

(SELECT*FROM student

WHERE NOT EXISTS

(SELECT*

FROM SC

WHERE SC.Sno=Student.Sno AND https://www.doczj.com/doc/3615785442.html,o=https://www.doczj.com/doc/3615785442.html,o))

8.检索所有课程的成绩均高于90分的学生的姓名和年龄;

select sname,sage

from student

where sno in

(select sno

from sc

group by sno

having MIN(grade)>90)

go

9.求刘老师所授的每门课程的平均成绩;

select cno,AVG(grade)

from sc

where cno in(select cno from course where cname in(select job from teacher

where ename like'刘%'))

Group by cno

10.求年龄大于所有女同学的男学生的姓名和年龄

select sname,sage

from student

where sage>all(select sage from student where ssex='女')and ssex='男'

11.求每个学生的总分,要求输出学号和总分数(要求依然保持学生原有的明细分数,并按学号分组汇总)

select sno,grade

from sc

order by sno

COMPUTE SUM(grade)by sno

12.查询各不同平均成绩所对应的学生人数(要求显示各组的单项人数)

select avgr,COUNT(*)

from (select sno,AVG(grade)from sc

group by sno)as sg(sno,avgr)

GROUP BY avgr

13.查询年龄小于18岁和大于20岁的学生的所有信息(要求用并运算实现union);select*

from student

where sage<18

union

select*

from student

where sage>20

14.查询即选修了‘1001’号课程有选修了‘1003’号课程的学生的学号(要求用用交运

算实现intersect);

select sno

from sc

where cno='1001'

intersect

select sno

from sc

where cno='1003'

15.查询选修了‘1002’号课程,但不是工业工程系的学生的学号(要求用差运算实现except)

select sno

from sc

where cno=1002

except

select sno

from student

where sdept!='工业工程'

16.创建一个公用表,该表由课程号、人数和最高分组成,用于存放各门课程的课程号、选修该课的人数及该门课的最高分数,查询该公用表,并按照课程号排序。

WITH gongyongbiao(cno,amount,maxgrade)

AS(SELECT https://www.doczj.com/doc/3615785442.html,o,COUNT(*),MAX(grade)

FROM course,sc

WHERE https://www.doczj.com/doc/3615785442.html,o IS NOT NULL

GROUP BY https://www.doczj.com/doc/3615785442.html,o)

SELECT cno,amount,maxgrade

FROM gongyongbiao

第八次作业2

1.在学生信息表中进行自联接查询,并在连接时使用内链接,返回籍贯是“河南”或者“北

京”的学生学号、姓名、班级编号及籍贯信息。

select student.sno,sname,class,jiguan

from student

where jiguan=‘河南’or jiguan=‘北京’

2.查询人数超过45人所在班级中的学生的学号、姓名和班级名称。

Select 学号,姓名,班级名称

From 学生信息a,班级信息b

Where a.班级编号=b.班级编号 and a.班级编号 in(select 班级编号 from 班级信息where 人数>45)

3.对于成绩大于等于90的数据进行查询,并返回考试成绩的学生的学号、姓名、性别、籍

贯和所在班级名称及年级信息。(用EXISTS编写语句)

Select a.sno,a.sname,a.ssex,a.jiguan,b.class,b.grade

From 学生信息a inner join 班级信息b

On a.班级编号=b.班级编号

Where exists(select* from 成绩表 where 学号=a.学号 and grade>=90)

4.查询出任意一个大于平均成绩的学生的学号、姓名、班级编号、课程编号和成绩信息。

Select a.sno,a.sname,a.class,https://www.doczj.com/doc/3615785442.html,o,b.grade

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where grade>any(select avg(grade) from 成绩表)

5.查询学生姓名为“李文东”所在班级的学生信息,要求返回学生的学号、姓名、性别、

班级编号、班级名称和年级信息

Select a.sno,a.sname,a.ssex,b.banjibianhao,b.banjimingcheng,b.nianjixinxi From 学生信息a inner join 班级信息b on a.班级编号=b.班级编号

Where a.班级编号=(select 班级编号 from 学生信息 where sname=‘李文东’)

6. 查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,成绩按降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。

Select a.学号,a.姓名,a.班级编号,b.课程编号,b.成绩

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where a.学号 not in(select 学号 from 学生信息 where 班级编号 in

(select 班级编号 from 课程信息 where 开课系别=‘计算机系’))

Order by 成绩 desc

Select a.学号,a.姓名,a.班级编号,b.课程编号,b.成绩

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where a.班级编号 not in(

(select 班级编号 from 课程信息 where 开课系别=‘计算机系’)) Order by 成绩 desc

《数据查询与操作》实验答案

《数据查询与操作》实验 一、实验目的与要求 1、理解简单查询和复合查询的意义。 2、掌握SELECT语句和各子句的使用。 3、掌握多表查询和子查询的使用。 4、掌握INSERT、UPDATE和DELETE语句的使用。 二、实验平台 1、操作系统:Windows XP或Windows 2003 2、数据库管理系统:SQL Server 2005 三、实验内容 1.在“人事管理系统”中,新增一个员工信息(员工编号…100508?、员 工姓名…小龙女?、所在部门编号…10001?、籍贯…河南?)。 USE人事管理系统 GO insert into员工信息(籍贯,所在部门编号,员工姓名,员工编号) values('河北','10001','小龙女','100508 ') GO 2.将“人事管理系统”数据库的“员工信息”表中籍贯为“河南”并且所 在部门编号为”10001”数据插入到“新员工信息”表中。 USE人事管理系统 GO insert into新员工信息(员工编号,员工姓名,所在部门编号) select员工编号,员工姓名,所在部门编号 from员工信息 where所在部门编号='10001'and籍贯='河南' GO 3.在“人事管理系统”数据库“部门信息”表中,将部门的员工人数设 置为10。

GO update部门信息set员工人数=10 GO 4.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”, 并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。 USE人事管理系统 GO update员工信息 set所在部门编号=10006 where入职时间between'2005-05-01'and'2007-05-01' and文化程度='大专' GO 5.在“人事管理系统”数据库中对部门进行了重组和调整,原来编号 为10006的部门名称变为“市场开发部”,人数也调整为20人。 USE人事管理系统 GO update部门信息 set部门名称='市场开发部',员工人数=20 where部门编号=10006 GO 6.在“人事管理系统”数据库中,编号为“100503”的新员工升级为正 式员工,需要在“新员工信息”表中删除他的记录。 USE人事管理系统 GO delete from新员工信息where员工编号=100503 GO 7.在“人事管理系统”数据库中,删除“新员工信息”表中所有在编号 为“10005”部门工作的员工记录。 USE人事管理系统 GO delete from新员工信息where所在部门编号=10001 GO 8.在“人事管理系统”数据库中,需要删除5%的员工信息。

数据库基础操作语句

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

MYSQL数据库基本操作命令

MYSQL数据库基本操作命令 用户名和密码:123456 创建一个名称为mydb1的数据库。 create database mydb1; 查看所有数据库 show databases; 创建一个使用utf-8字符集的mydb2数据库。 create database mydb2 character set utf8; 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。 create database mydb3 character set utf8 collate utf8_general_ci; 显示库的创建信息 show create database mydb3; 删除前面创建的mydb1数据库 drop database mydb1; 查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312; alter database mydb2 character set gb2312; show create database mydb2; 备份库 1、准备库的数据 create database mydb1; use mydb1; create table test ( id int ); insert into test(id) values(1); select * from test; 2、删除库:drop database mydb1; 3、 4.1 创建库:create database mydb1; 4.2 \. test.sql (通过执行脚本文件实现) 5、

创建一个员工表 use mydb1; 进入库 create table employee ( id int, name varchar(20), gender varchar(4), birthday date, entry_date date, job varchar(40), salary double, resume text )character set utf8 collate utf8_general_ci; 查看库中所有表 show tables; 查看表的创建细节 show create table employee; 查看表的结构 desc employee; 在上面员工表的基本上增加一个image列。 alter table employee add image blob; 修改job列,使其长度为60。 alter table employee modify job varchar(60); 删除sex列。 alter table employee drop gender; 表名改为user。 rename table employee to user; 修改表的字符集 alter table user character set gb2312; show create table user; 列名name修改为username alter table user change column name username varchar(20); 使用insert语句向表中插入一个员工的信息。 insert into employee(id,username,birthday,entry_date,job,salary,resume)

数据库操作及查询

第三章数据库操作及查询§1刨建数据库表 一、表的分类:库表、自由表。 二、数据库表与自由表的区别 库表:各个表之间有关联 特点:A:长表名和长字段名。 B:每个字可以有提示和注释。 C:可以定义缺省值。 D:字段级的规则和记录级的规则。 自由表: foxbase 表,独立 三、表结构的定义 操作方法:A:表设计器 B:命令create < 表名> 四、表记录的输入 1、追加方式 2、定义结构时同时输入

五、表记录添加 1)、键盘输入 2)、从已有文件中追加 A、INSERT –SQL 命令 命令格式: INSERT INTO 表名[(字段名1[,字段名2,…])] V ALUES(表达式1[,表达式2,…]) 功能:在表尾追加一个新记录,并直接输入记录数据。 说明:表不必事先打开,字段与表达式的类型必须相同。 例如:INSERT INTO TEACHER(BH,XM,XB,JBGZ)V ALUES (“02005”,“张华”,“女”,2021) B、APPEND 命令 格式:APPEND [BLANK] 功能:向表中追加记录 说明:使用BLANK子句能在表尾追加一条空记录。若不选取则进入全屏幕编缉方式。 C、APEND FROM 命令

格式:APPEND FROM <文件名> FIELDS <字段名表> [FOR< 条件>][[TYPE ] DELIMITED[WITH <定界符>/WITH BLANK/WITH TAB]/SDF/XLS]] 功能:在当前的表尾部追加一批记录,这些记录来自于指定的文件。 说明:1、源文件的类型可以为表、系统数据格式文件、定界格文本文件、Excel文件。 2、执行该文件时源表不用打开。 例如:先将表数据导入到EXCEL表中,然后再追加到空表中。 appe from tyty type xls 六、表的打开和关闭 1、表的打开 A: 命令 use B: “文件”——“打开” C:在窗口菜单的“数据工作”期命令来打开 2)、表的关闭 A、命令:

数据库基本操作习题与答案

第三章数据库基本操作 一、选择题 1. 如果需要给当前表增加一个字段,应使用的命令是________。 A) APPEND B) INSERT C) EDIT D) MODIFY STRU 2. 设表文件及其索引已打开,为了确保指针定位在物理记录号为1的记录上,应该使用命令________。 A) SKIP 1 B) SKIP -1 C) GO 1 D) GO TOP 3. 要显示数据库中当前一条记录的内容,可使用命令________。 A) LIST B) BROWSE C) TYPE D) DISPLAY 4. 在当前表中,查找第2个女同学的记录,应使用命令________。 A) LOCATE FOR 性别="女" B) LOCATE FOR 性别="女" NEXT 2 C) LIST FOR 性别="女" CONTINUE D) LOCATE FOR 性别="女" CONTINUE 5. Visual FoxPro的数据库表之间可建立两种联系,它们是________。 A) 永久联系和临时联系B) 长期联系和短期联系 C) 永久联系和短期联系D) 长期联系和临时联系 6. 数据库表的索引中,字段值不能有重复的索引有________种。 A) 1 B) 2 C) 3 D) 4 7. 建立表间临时关联的命令是________。 A) LET RELATION TO命令 B) JOIN命令 C) SET RELATION TO命令 D) 以上都不是 8. 通过关键字建立表间的临时关联的前提是________。 A) 父表必须索引并打开B) 子表必须索引并打开 C) 两表必须索引并打开D) 两表都不必索引 9. 查询设计器的“筛选”选项卡上,“插入”按钮的作用是________。 A) 用于增加查询输出字段B) 用于增加查询的表 C) 用于增加查询去向D) 用于插入查询输出条件 10. 在多工作区的操作中,如果选择了4,7,8号工作区并打开了相应的数据库,在命令窗口执行命令SELECT 0,其功能是________。 A) 选择4号工作区为当前工作区B) 选择0号工作区为当前工作区 C) 选择7号工作区为当前工作区D) 选择8号工作区为当前工作区 11. 表结构中空值(NULL)的含义是________。 A) 空格B) 尚未确定

BCB讲座第十五讲简单数据库查询操作.

简单数据库查询操作 上一讲我们学习了数据库编程的基础知识,并对 MP3Collect 进行了一番改造,使其具有数据库访问能力。在本讲中,我们首先设置三个数据库元件 Query1、DataSource1和 DBGrid1的属性,接下来学习如何通过 Query 控件实现简单的数据库查询操作。 设置控件属性 Query1控件的用途是查询数据库,获取可以显示在窗体中的数据。 Query 控件和 Table 控件一样,它们都是从 VCL 类 TDataSet (数据集元件中继承来的,都代表数据库中一组记录的集合。不同的是, Table 控件代表库中实际存在的一个数据表对象, 而 Query 控件则代表一次查询的结果。 Query 控件支持通过 SQL 进行查询,因此比 Table 控件具有更大的灵活性,它可以同时访问多个数据表, 可以灵活访问数据表中的行和列,可以实现十分复杂的条件查询。 SQL 的全称是结构化查询语言,它是一种标准的数据库查询语言,具有自己的关键字(SQL 中的关键字是不分大小写的, SELECT 和 Select 的作用是相同的和语法,典型的 SQL 查询语句如下所示: SELECT [字段名 ] FROM [数据表名 ] WHERE [条件子句 ] 其中 SELECT 、 FROM 和 WHERE 都是 SQL 的关键字。 SELECT 代表查询操作, “字段名”表示返回的记录集中所包含的字段,字段名可以使用通配符 *,表示查询的数据表中的所有字段, “数据表名”表示在哪个数据表中进行查询, “条件子句”为查询的条件。 了解了 SQL 的基本语法后, 下面我们来设置 Query1控件的 SQL 属性。在对象监视器中双击 Query1控件的 SQL 属性(该属性为 TStrings*类型 ,打开字符串列表编辑器,在其中输入这样两句“ Select * From MP3Info”和“ Order by FileName ASC”。注意第二句要另起一行,这样在后面的编程中可以很方便地改变记录的排序方式。这两句合在一起的意思是获取 MP3Info 数据表中的所有记录,并以 FileName 字段为基

实验3数据表中的数据操作

实验3数据表中的数据操作 一、已知一个已经建好的数据库factory,现在该数据库上存在三个表 1.职工表worker,其结构为 (职工号 number(4) ,姓名 char(8), 性别 char(2) , 出 生日期 date, 党员否 number, 参加工作时间 date , 部门号 number(4),其中职工号为主键 2.部门表 department 结构为 ( 部门号 number(4) , 部门名称 varchar(20) ) ,其 中部门号为主键. 通常的部门信息有人事部,市场部,财务处等等 3.职工工资表 salary 其结构为 ( 职工号 number(4) ,姓名 char(10) , 日期 date, 工资 number(10,2) ) . 其中职工号和日期为关键字 现按照如下要求完成各项操作,写出对应的SQL语句 1.写出建立三个表的Create table语句 2.向department 表中插入数据( 部门号为10, 部门名称为审计处) 的insert 语句 3.查询职工的所有基本信息 4.显示所有职工的年龄 5.显示所有职工中的最大年龄 6.求出各部门的党员的人数 7.显示所有职工的姓名和2004年1月的工资 8.显示所有职工的职工号,姓名,部门名称, 2004. 2的工资,并按照部门顺序进行排列 9.显示部门名及该部门所有职工的平均工资 10.显示所有平均工资高于1200的部门名称和对应的平均工资 二、以scott用户连接数据库, 1) 查询emp表中的所有人的姓名。 2) 用别名把上面查询结果中的列名ename改为汉字:姓名。 3) 查询emp表中的不重复的部门号。 4) 查询emp表中,工资额大于2000的员工的姓名及其工资额。 5) 查询emp表中,工资额界于2000与3000之间的员工姓名及其工资额。 6) 查询emp表中,ename列以字母A开头的员工的姓名。 7) 查询emp表中,ename列含有字母A的员工的姓名。 8) 查询emp表中,ename列第三个字母为A的员工的姓名。 9) 查询emp表中,姓名及工作额,要求工资按照降序排序。 10)查询emp表中,补贴为NULL的员工的姓名。 实验要求: 请将所写的语句在系统中验证,并书写实验报告

JAVA数据库基本操作增删改查(精)

JAVA 数据库基本操作, 增删改查 package mypack; JAVA 数据库基本操作, 增删改查 import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; public class DbOper {//查询多行记录public ArrayList select({Connection conn =null; ResultSet rs =null; try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(; conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =new Titles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione { e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione { e.printStackTrace(;}}//TODO 自动生成catch 块 return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null; ResultSet rs =null; try {PreparedStatement pstmt =null; Titles t =new Titles(;

Excel表格中数据比对和查找的几种技巧总结

Excel表格中数据比对和查找的几种技巧经常被人问到怎么对两份Excel数据进行比对,提问的往往都很笼统;在工作中,有时候会需要对两份内容相近的数据记录清单进行比对,需求不同,比对的的目标和要求也会有所不同。下面Office办公助手(https://www.doczj.com/doc/3615785442.html,)的小编根据几个常见的应用环境介绍 一下Excel表格中数据比对和查找的技巧。 应用案例一:比对取出两表的交集(相同部分) Sheet1中包含了一份数据清单A,sheet2中包含了一份数据清单B,要取得两份清单共有的数据记录(交集),也就是要找到两份清单中的相同部分。 方法1:高级筛选 高级筛选是处理重复数据的利器。

选中第一份数据清单所在的数据区域,在功能区上依次单击【数据】——【高级】(2003版本中菜单操作为【数据】——【筛选】——【高级筛选】),出现【高级筛选】对话框。 在对话框中,筛选【方式】可以根据需求选取,例如这里选择“将筛选结果复制到其他位置”;【列表区域】就是之前所选中的第一份数据清单A所在的单元格区域;【条件区域】则选取另外那份清单B 所在的单元格区域。如下图所示: 点击【确定】按钮后,就可以直接得到两份清单的交集部分,效果如下图。其中两个清单中虽然都有【西瓜】和【菠萝】,但是由于数量不一致,所以没有作为相同记录被提取出来。

这个操作的原理,就是利用了高级筛选功能对于匹配指定条件的记录进行筛选的功能,把两张表中的任意一张作为条件区域,在另外一张表中就能筛选出与之相匹配的记录,忽略掉其他不相关的记录。 需要注意的是,使用高级筛选的时候务必注意两个清单的标题行要保持一致(高级筛选中作为条件区域的前提),并且在选取【列表区域】和【条件区域】的时候都要把标题行的范围包含在其中。 方法2:公式法 使用公式进行比对的方法有很多,如果是单列数据对比比较常用的函数是COUNTIF函数,如果是多列数据记录对比,SUMPRODUCT 函数比较胜任。 在其中一张清单的旁边输入公式: =SUMPRODUCT((A2&B2=Sheet2!A$2:A$13&Sheet2!B$2:B$13)*1 )

查询及数据库操作

1. 索引 Index on 基本工资tag 11 asc / desc &&升序/降序&&建立索引Browse Set order to tag 11 Browse Set order to tag 0 Browse Set order to tag 11 Delete tag l l &&删除 Delete tag all 2 .统计 Count to … for… 第四章查询及数据库操作4.1显示查询 1 .Display /list /browse for 2. Locat for …. Continue.. 例如:set default to E:\VFP资料 use 人事档案 list for 性别="女" locat for 性别="男" display continue display continue display 3.快速查询(通过索引) 例如:index on 出生日期tag cs seek {^1972-3-4} display 4.多工作区的查询 Select 区号||区别名 例如:close all select 1 use 人事档案 select 2

use 部门 browse select 1 browse select 2 browse 例2:select 2 browse go 1 display select 1 go 1 display 5.访问非当前工作区的记录 格式; 别名.字段 例如:查询刘红所在部门名称及出生日期 close all sele 1 use 人事档案 sele 2 use 部门 sele 人事档案 locat for 姓名="刘红" sele 部门 locate for 部门编号=人事档案.部门编号 sele 人事档案 display 姓名,出生日期,部门.部门名称 例如:查询李明所在部门电话和领导姓名 查询所有人的部门领导和姓名 有效性规则的建立: 例如1: 合乎婚姻法的记录性规则: 性别=”男”and 婚否=.t. and 2008-year(出生日期)>=22or 性别=”女”and 婚否=.t.and2008-year(出生日期)>=20or not 婚否 有效性规则的建立首先要在数据库表中进行,其次再打开表的设计器,分别进行字段有效性规则的设置和记录有效性规则的设置

数据结构中的,线性表的c语言表示和插入,删除,查找操作程序

#include #include #define MaxSize 100 typedef struct { int data[MaxSize]; int length; } SqList; void InitList(SqList *L) { // 传入的参数用指针 L->length = 0; return; } int GetLength(SqList L) { return L.length; } int GetElem(SqList L, int i, int *e) { if (i < 1 || i > L.length){ /*无效的i值*/ return 0; }else { *e = L.data[i - 1]; //改变指针的值前面用* return 1; } } int Locate(SqList L, int x) /*按值查找*/ { int i = 0; while (L.data[i] != x){ /*查找值为x的第1个结点*/ i++; } if (i > L.length){ return (0); /*未找到*/ }else{ return (i+1); } } int InsElem(SqList *L, int x, int i) { int j; if (i < 1 || i > L->length +1){ /*无效的参数i*/ return 0; } for (j = L->length; j >= i; j--) { /*将位置为i的结点及之后的结点后移*/ L->data[j] = L->data[j - 1]; } L->data[i - 1] = x; /*在位置i处放入x*/ L->length++; /*线性表长度增1*/

实验2-数据查询的简单操作

实验2数据库的简单查询 一、实验目的 掌握单表查询中各个子句(Select、From、Where、Group、Having、Order)的用法,特别要掌握比较运算符和逻辑运算符的使用。 二、实验环境 Windows XP操作系统,SQL Server 2005软件。 三、实验课时 2课时。 四、实验内容 在已建立的数据库和数据表的基础上,用Select语句完成下列查询操作。 1、查询全体学生的学号和姓名。 SELECT sno,sname FROM student; 2、查询全体学生的所有基本信息(仅针对Student表)。 SELECT* FROM student; 3、对SC表查询全体学生的选课记录,在显示结果中为“Grade”列增加5分。SELECT sno,cno,grade=grade+5 FROM sc; 4、查询全体学生的学号和姓名,将原来的英文列名设置中文别名。 SELECT sno AS学号,sname AS姓名 FROM student; 5、显示所有选课学生的学号,去掉重复结果。 SELECT DISTINCT sno FROM sc; 6、查询成绩在80分以上的学生选课记录。 SELECT* FROM sc WHERE grade>80;

7、查询经济系所有学生的学号和姓名。 SELECT sno,sname FROM student WHERE sdept='经济'; 8、查询成绩在80~90分的学生选课记录。 SELECT* FROM sc WHERE grade BETWEEN 80 AND 90; 9、查询年龄不在22~25的学生记录。 SELECT* FROM student WHERE sage NOT BETWEEN 22 AND 25; 10、查询所有姓“刘”的学生记录。 SELECT* FROM student WHERE sname LIKE'刘%'; 11、查询无考试成绩(成绩为空值)的学号、课程号。SELECT sno,cno FROM sc WHERE grade IS NULL; 12、查询考试成绩非空值的学号、课程号。 SELECT sno,cno FROM sc WHERE grade IS NOT NULL; 13、查询数学系年龄小于20岁的学生记录。 SELECT* FROM student WHERE sdept='数学'AND sage<20; 14、查询选修了“101”或“102”课程的选课记录。SELECT* FROM sc WHERE cno in('101','102');

《数据的查询操作》

《数据的查询操作》 第八次作业1 1.检索年龄大于18岁的女学生的学号和姓名(注意:要给列起别名); use学生课程数据库 select sno,sname from student where sage>18 and ssex='女' 2.检索所有男学生选修的课程号和课程名称(仅在结果中列出10%的数据行)。 use学生课程数据库 select top(10)percent https://www.doczj.com/doc/3615785442.html,o,cname from student,sc,course where student.sno=sc.sno and https://www.doczj.com/doc/3615785442.html,o=https://www.doczj.com/doc/3615785442.html,o and ssex='男' 3.查询年龄大于18,并不是信息管理也不是计算机科学的学生的姓名和性别(复合查询); select sname,ssex from student where sage>18 and sdept not in('信息管理','计算机科学') 4..查询以“DB_”开头,和倒数第二个汉字为“导”字的课程信息(模糊查询); select* from course where cname like'DB_%'or cname like'%导_' 5.查询student表和sc表的交叉连接; select* from student cross join sc 6.检索王同学不学的课程的课程号和课程名称; select cno,cname from course where cno not in(select cno from sc where sno in(select sno from student where sname='王%')) 7.检索全部学生都选修的课程号和课程名称; SELECT cno,cname FROM course WHERE NOT EXISTS (SELECT*FROM student WHERE NOT EXISTS

数据库查询操作详解

一、数据查询-----单表查询 (1)查询语句格式 Select [all|distinct] <目标列表达式> [,<目标列表达式>]…… From <表名或视图> [,<表名或视图>]…… [where <条件表达式>] [group by <列名1> [having <条件表达式>]] [order by <列名2> [asc|desc]] ; 注:[all|distinct]中all为缺省值,取消结果中的重复列则用distinct; [asc|desc]中asc为缺省值,表示按照升序排列。对于空值,若按照升序排,则含空值的元组显示在最后面;若按降序排,则空值的元组最先显示。 (2)查询指定列 a)查询部门表dept中所有部门的详细信息,并且列名用汉字表示。 select DNO,DNAME,ADDR from dept; b)查询部门表dept中人力资源部的部门编号。 select DNO from dept where DNAME='人力资源部'; <目标列表达式>中各个列的先后顺序可以与表中的顺序不一致. (3)查询全部列 查询全体学生的详细记录 Select * From Student ; (4)将查询结果的列名用别名显示 查询部门表dept中所有部门的详细信息,并且列名用汉字表示。 select DNO部门编号,DNAME部门名称,ADDR部门地址 from dept; (5)在查询的结果中插入新的一列用来显示指定的内容 Select Sname NAME ,’Year of Birth:’BIRTH ,Sbirth BIRTHDAY ,Sdept DEPARTMENT From Stuent ; 则显示的结果中,每个元组的第二列均为”Year of Birth:”,此列在原数据库中是不存在的. (6)查询经过计算的值 Select 子句的<目标列表达式> 不仅可以是表中的属性列,也可以是表达式。 例:查询全体学生的姓名及其出生年月 Select Sname ,2004 – Sage /*当时年份减去年龄为出生年月

VFP数据库的基本操作习题

1.在Visual FoxPro的命令窗口中输入CREATE DATA命令以后,屏幕会出现一个创建对 话框,要想完成同样的工作,还可以采取如下步骤( )。 A)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“数据库”单选按钮,再单击“新建文件”命令按钮 B)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“数据库”单选按钮,再单击“向导”命令按钮 C)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“表”单选按钮,再单击“新建文件”命令按钮 D)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“表”单选按钮,再单击“向导”命令按钮 2.一个数据库名student,要想打开数据库,应使用命令()。 A)OPEN student B)OPEN DATA student C)USE DATA student D)USE student 3.在使用USE命令打开表文件时,能够同时自动打开一个相关的()。 A)备注文件B)文本文件C)内存变量文件D)屏幕格式文件 4.删除数据库表中的记录有()方式。 A)1种B)2种C)3种D)4种 5.如果需要给当前表末尾增加一个空白记录,应使用的命令是()。 A)APPEND B)APPEND BLANK C)INSERT D)EDIT 6.要从表中物理删除一条记录,应使用命令()。 A)首先用DELETE命令,然后用ZAP命令 B)直接用ZAP命令 C)首先用DELETE命令,然后用PACK命令 D)直接用DElETE命令 7.要彻底删除表中的所有记录,可以使用命令( )。 A)PPEND B)DELETE C)ZAP D)RECALL 8.用命令REPLACE修改记录的特点是()。 A)边查阅边修改B)数据表之间自动更新 c)成批自动替换D)按给定条件顺序修改更新 9.职工数据表中有D型字段“出生日期”,苦要显示职工生日的月份和日 期,应当使用命令()。 A)?姓名+MONTH(出生日期)+”月”+DAY(出生日期)+“日” B)?姓名+STR(MONTH(出生日期)+”月”+DAY(出生日期))+”日” c)?姓名+SUBSTR(MONTH(出生日期))+”月”+SUBSTR(DAY(出生日期)) +”日“ D)?姓名+STR(MONTH(出生日期),2)+”月”+STR(DAY(出生日期),2) +”日” 10.在以下各命令序列中总能实现插入一条空记录并使其成为第八条记录的是()。 A)SKIP 7 B)GOTO 7 INSERT BLANK INSERT BLANK C)LOCATE FOR RECNO( )=8 D)GOTO 7 INSERT BLANK INSERT BIlANK BEFORE

数据库基本操作sql查询

数据库实验--练习一 (一)分别用SQL管理平台和SQL语句建立学生课程数据库 (1)在D盘根目录下创建数据库,名称为自己姓名的全拼,包含一个主 数据文件,逻辑名为“S学号”,物理名为“S学号.mdf”,初始大 小为10MB,最大尺寸为20MB,增长方式为10%;包含一个次 数据文件,逻辑名为“T学号”,物理名为“T学号.ndf”,其他参 数与主数据文件相同;包含一个事务日志文件,逻辑名为“姓的 全拼”,物理名为“姓的全拼.ldf”,初始大小为5MB,最大尺寸 为10MB,增长方式为10%。 create database wujunmin ON(NAME='S101270035', FILENAME='D:\S101270035.mdf', SIZE=10, MAXSIZE=20, filegrowth=10% ), (NAME='T101270035', FILENAME='D:\T101270035.ndf', SIZE=10, MAXSIZE=20, filegrowth=10% ) log on ( NAME='Wu', FILENAME='D:\Wu.ldf', SIZE=5, MAXSIZE=10, filegrowth=10% ) (2)修改数据库,将主数据文件的最大尺寸设置为15MB。

Alter database wujunmin modify file( name='S101270035', maxsize=15 ) (3)修改数据库,增加一个事务日志文件,逻辑名为“K学号”,物理名为“K学号.ldf”,初始大小为5MB,最大尺寸为10MB,增长方式为2MB。 Alter database wujunmin add log file( name='K101270035', filename='D:\T101270035.ldf', size=5, maxsize=10, filegrowth=2MB) (二)分别用SQL管理平台和SQL语句建立以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间 create table student( sno char(10)unique, sname char(10)NOT NULL, sex char(10), dept char(20),

SQL语言数据查询操作

实验三SQL语言——数据查询操作 一、实验时间 二、实验地点:317室 三、实验条件与环境 1.通用PC机 2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台 3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版) 4.最好有一台公用的SQL Server 2000 服务器 四、实验目的 1.通过上机实验进一步加深对SQL查询语句的基本语法格式的掌握 2.通过上机实验掌握单表查询的实现过程 3.通过上机实验掌握多表关联查询的实现过程 4.通过上机实验掌握嵌套查询的实现过程 5.通过上机实验掌握集函数与谓词在Select语句中的使用 6.通过上机实验加深了解Select语句与关系代数运算(如选择、投影、连接、除法等)两者之间的联系与区别 五、实验要求: 1.本实验所有实验内容要求在规定时间(2课时)内完成 2.实验内容中涉及到的各查询操作均通过SQL语言来实现 3.实验完成后需要书写实验报告 六、实验内容: 1.查询为工程J1供应零件的供应商号码SNO 2.查询为工程J1供应零件P1的供应商号码SNO 3.查询为工程J1供应红色零件的供应商号码SNO 4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO 5.查询至少选用了供应商S1所供应的全部零件的工程号JNO 6.找出所有供应商的名称和所在城市 7.找出所有零件的名称、颜色和重量 8.找出使用供应商S1所供应零件的工程号码 9.找出工程项目J2使用的各种零件的名称及其重量 10.找出上海厂商供应的所有零件号码 11.找出使用上海产的零件的工程名称 12.找出没有使用天津产的零件的工程号码 13.找出重量最轻的红色零件的零件编号PNO 14.找出供应商与工程所在城市相同的供应商提供的零件号码 15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME 16.重复第15题,但不检索两个CITY值相同的三元组 17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和 18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列 七、实验总结:

VF二级培训讲义SQL查询、查询设计器、SQL数据表的操作、视图设计器

第三部分关系数据库标准语言S Q L 一、SQL概述 1.1 SQL的概念:SQL(Structured Query Language)是结构化查询语言的简称,它引领着关系数据库的发展方 向,是未来关系数据库发展的标准。 1.2 SQL的特点: ◆一体化 ◆高度非过程化 ◆非常简洁 ◆直接以命令方式交互使用 1.3 SQL的主要命令: ◆数据查询:SELECT ◆数据定义:CREATE、DROP、ALTER ◆数据操纵:INSERT、UPDATE、DELETE 二、使用命令建立SQL查询 2.1查询的概念:查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询 结果。 2.2 SQL查询语句格式: ◆SELECT :要查询的数据(字段) ◆FROM :数据来源(要查询的数据来自哪个或哪些表) ◆WHERE :查询需要满足的条件 ◆GROUP BY :对查询的数据进行分组 ◆ORDER BY :对查询结果进行排序 2.3 SQL简单查询: 1.在当前数据库当前表中查询某一数据 基本格式:SELECT Select_Item FROM Table 其中:Select_Item:字段名列表Table:数据表名称 例题2.1:从职工关系中检索所有工资值。 实现语句:SELECT 工资 FROM 职工 2.在指定数据库指定表中查询某一数据 基本格式:SELECT [Alias.]Select_Item FROM [DatabaseName!]Table 例题2.2:从订货管理数据库中的职工数据表中检索所有工资值。 实现语句:SELECT 职工.工资 FROM 订货管理数据库!职工 3.在当前数据库当前表中查询所有数据 基本格式:SELECT * FROM Table 例题2.3:从当前数据库中当前数据表中检索所有数据。 实现语句:SELECT * FROM 职工 4.在当前数据库当前表中查询所有数据(不允许内容重复) 基本格式:SELECT[ALL | DISTINCT]Select_Item FROM Table 例题2.4:从当前数据库中当前数据表中检索所有不重复 ...的工资数据。 实现语句:SELECT DISTINCT工资 FROM 职工

相关主题
文本预览
相关文档 最新文档