第一篇:文管二级Access数据库SQL语句详解
第一讲
上面是Access数据库中所涉及的两个表
下面我们介绍Access数据库中用于查询数据的语句:
1、SELECT 语句
SELECT语句是数据库中使用频率最高的语句,就是我们通常说的查询语句。
其格式如下:
SELECT+需要查询的对象+FROM+表名+WHERE+条件。
例
1、查询上表中所有男性职工的“工号”“姓名”“部门”和“应发工资”。SELECT 工号,姓名,部门,应发工资 FROM rsda where 性别=”男”
注意事项:
1):写查询语句时英文部分不区分字母大小写。
2):除汉字外,所有字符标点和数字都必须使用半角英文状态下输入。
3):SELECT查询语句中如果没有条件限制,“WHERE+条件”部分可以省略。
4):需要查询的项目在表中必须存在。
5):如果要输出表中所有项目可以用“*”代替。
例如:查询上表中所有人员的姓名,出生年月及部门
SELECT 姓名,出生年月,部门 FROM rsda;
显示表中的所有信息
Select * from rsda;显示表中所有女性职工的信息 Select * from rsda where 性别=”女”;
要求:查询表中所有“未婚”男性职工的信息。
Select * from rsda where(性别=”男”)and(婚否=no);有两个知识点需要掌握:
1):运算符:
A、算术运算符:加(+)、减(-)、乘(*)、除(/)、和取模(%)。算术运算符可以完成对两个表达式的数学运算。
B:赋值运算符:等号(=)
C:比较运算符:等于(=)、大于(>)、大于或等于(>=)、小于(<)、小于或等于(<=)、不等于(<>或!=)、不小于(!<)、不大于(!>).D:逻辑运算符:与(and)、或(or)和非(not)。对于AND运算,只有当运算符两端的表达式的值都为真时,结果才返回真,只要有一股表达式的值为假,结果就是假;对于or运算,只要运算符两端的表达式的值有一个位真,结果就返回真,只有两个表达式的值都是假,结果才为假;NOT运算是对表达式的值取反。
2):数据类型:文本、备注、数字、日期/时间、货币、自动编号、是/否、超链接等。本例中“婚否”选项,使用的是“是/否”类型,即我们常说的布尔型,判断的时候“是”用yes表示,“否”用no表示。
Select语句中各个参数:
1)、top 如:查询前3条记录的工号,姓名,性别 Select top 3 工号,姓名,性别 from rsda;显示的结果是前3条记录。
查询数据表中前50%人员的信息
Select top 50 percent * from rsda;显示的结果是表中前50%人员的信息 2):DISTINCT
如:查询所有记录的“性别”字段,并去掉重复值 Select distinct 性别 from rsda;3):别名
如:查询所有记录的工号(别名为number)、姓名(别名为name)、出生年月(别名为birthday)字段
Select number=工号,姓名 as name ,出生年月 birthday from rsda;需要注意的是,在ACCESS中使用 “列名 AS 列别名”形式。4):年龄
如:查询表中每个人的年龄。
Select 姓名,(year(now())-year(出生年月))as 年龄 from rsda;now()函数返回当前日期,year()获取年份。其他函数有abs(绝对值)、left(从左侧截取字符串)、right(从右侧截取字符串)、len(获取字符串的长度)、ltrim和rtrim(去掉字符串前面或后面的空格)、day(返回日期)、month(返回月份)、year(返回年份)、weekday(返回星期)、hour(返回小时)、date(返回系统日期)、sum(求和)、avg(求平均值)、count(统计个数)、max(求最大值)、min(求最小值)等等。
如:显示表中应发工资的最大值
Select max(应发工资)as 工资 from rsda; 如:查询表中各人员工号的前两位
Select left(工号,2)as 工号前两位 from rsda; 如:统计所有男性职工的人数
Select count(*)from rsda where 性别=”男”
如:显示表中应发工资最高的人员信息
select * from rsda where 应发工资>=(select max(应发工资)from rsda);上面是个嵌套查询语句
2、into语句
如:创建一个新表rrr来显示上表中前五名人员的信息。
Select top 5 * into rrr from rsda;
第二讲
一、from语句
from子句用于指定要查询的表。
例如:查询表rsda表和kcm表中的数据。
SELECT rsda.编号,rsda.工号,姓名,性别,出生年月,kcm.课程名 from rsda,kcm where rsda.工号=kcm.工号
注意:本例子是关于表间查询的。表中有共同列的项目必须标注表名,格式为“表名”+“.”+“列号”。当两个或多个数据表中有共同名称的字段时必须使用上面的格式,否则由于系统不清楚应该使用哪个数据表中的同名字段,将无法执行此查询,会提示错误。上面例子也可以使用联合查询形式完成,程序如下:
SELECT rsda.编号,rsda.工号,姓名,性别,出生年月,kcm.课程名 from rsda inner join kcm on rsda.工号=kcm.工号
练习:显示担任“计算机文化基础”教学人员的工号,姓名,性别,婚否,基本工资及部门。
二、where语句
where子句是条件子句,用来限定查询的内容。在where语句中是允许使用比较运算符如下:
等于、大于、大于等于、小于、小于等于、不等于、不大于、不小于、不等于。例如:查询rsda表中应发工资小于1500的人员信息。
SELECT * from rsda where 应发工资<1500 练习:显示表中基本工资不大于1200的工号,姓名,出生年月及基本工资。逻辑表达式如下:
逻辑反、逻辑与、逻辑或。
例如:查询年龄小于39岁未婚男士的部门信息
SELECT 姓名,部门 from rsda where(year(now())-year(出生年月)<39)and(婚否=no)and(性别=”男”)练习:显示当前未过生日的已婚人员信息。
三、between关键字
例如:查询表rsda中应发工资在1000到1500之间的人员信息 SELECT * from rsda where 应发工资 between 1000 and 1500 练习:显示表中基本工资在800到1200之间人员的姓名,部门及基本工资。
四、in 关键字
使用in关键字可以确定给定的值是否与子查询或列表中的值相匹配。例如:显示教务处、学生处和总务处已婚男士人员的补贴信息
SELECT 姓名,补贴 from rsda where(性别=“男”)and(婚否=-1)and(部门 in(“教务处”,“学生处”,“总务处”))练习:查询表中总务处和基础部未婚女性职工的人数。
五、like关键字
使用like关键字可以确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。通过模式的匹配,达到模糊查询的效果。
例如:查询表中张姓人员的工号,姓名,性别,部门及出生年月
SELECT 工号,姓名,性别,部门,出生年月 from rsda where 姓名 like “张*”
练习:查询工号以11开头的所有人员信息。
六、group by语句
在group by语句中在选择列表内定义的列的别名不能用于指定分组列,此外,select后面的每一列数据除了出现在统计函数中的列外,都必须在group by子句中应用。例如:在表rsda表中按性别进行分组,查询相应的人数。
SELECT 性别,count(性别)as 人数 from rsda group by 性别 练习:统计已婚和未婚的人数,并按婚否进行分组。
七、having语句
having语句为分组或集合指定搜索条件,通常与group by语句一起使用,说明:当having 与group by all一起使用时,having 语句替代了all。在having语句中不能使用text,image,ntext数据类型。
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。例如:在表中查询部门中有两个以上人员的部门信息
SELECT 部门,count(部门)as 部门人数 from rsda group by 部门 having count(部门)>=2 练习:显示表中有两个以上补贴相同的人员信息。
八、order by语句
order by语句用于指定对查询结果排序。如果在select中同时指定了top,则order by语句无效。在排序过程中ASC表示按递增顺序排列,即从最低值到最高值对指定列中的值进行排序。是系统默认的排列方式,书写语句时可省略。DESC表示按递减顺序排列,即从最高值到最低值对指定列中的值进行排序。需要注意的是,空值被视为最低值。例如:显示表中基本工资为1000的人员信息,并按工号降序排列。SELECT * from rsda where 基本工资=1000 order by 工号 desc;练习:查询补贴为500的工号,姓名,部门,并按工号升序排列。
九、联合查询。
联合查询是指将两个或两个以上的select语句通过union运算符连接起来的查询,联合查询可以将两个或者更多查询的结果组合为单个结果集,该结果集包含联合查询中所有查询的全部行。
使用union组合两个查询的结果集的两个基本规则是:
1、所有查询中的列数和列是顺序必须相同。
2、数据类型必须兼容。
十、嵌套查询
嵌套查询主要用于复杂的查询。在SQL语言中,一个select---from---where语句称为一个查询块,将一个查询块嵌套在另外一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
嵌套查询中上层查询块称为外层查询或父查询,下层查询块称为内查询或子查询。SQL语言允许多层查询嵌套,但是在子查询中不允许出现order by语句,order by语句只能用在最外层的查询块中。
嵌套查询一般按照由里向外的方法处理,即先处理最内层的子查询,然后处理一层一层的向上处理,直到最外层查询块。
在某些嵌套查询中where之后还可以使用any和all两个关键字。Any表示子查询结果中的某个值,而all表示子查询结果中的所有值。这两个关键字可以和算术运算符在一
起构成各种查询条件,如>all表示大于子查询中的所有值。
例如:查询所授两门以上科目的人员基本信息。
SELECT * from rsda where 工号=any(select 工号 from kcm group by 工号 having count(工号)>=2)练习:显示表中应发工资最高的人员信息
十一、插入函数
Insert语句用于向数据库表或者视图中加入一行数据。
例如:向表rsda中插入一行数据,只包含工号,姓名,婚否。insert into rsda(工号,姓名,婚否)values(“12039”,“王五”,“-1”)例如:向rsda表中插入一行数据,所有字段都要给出相应的值。
insert into rsda
values(“13”,“12049”,“赵六”,“男”,“1999-12-12”,“-1”,“学生处”,“2000”,“850”,“60”,“2790”,“")
例如:向表rsda中插入一批数据,数据来源于另外一个已有的数据表rsda1.Insert into rsda(工号,姓名,性别,出生年月)select工号,姓名,性别,出生年月from rsda1;如果所追加的表不存在请用下面的格式:
Select+所要添加的项目+into+新表名+from+需要查询的表名+where+条件
例如:要求将所有男性职工的记录追加到名为“追加表”的表中,只需要其中的4个字段:姓名、性别、工资、补贴。
SELECT 工号,姓名,性别,部门 into 追加表 from rsda where 性别=”男“
十二、更新数据
Update语句用于修改数据库表中特定记录或者字段的数据。
例如:修改刘龙强的工号为11027,出生年月为1978年1月3日。update rsda set 工号=”11027“,出生年月=”1978-1-3“ where 姓名=”刘龙强“ 练习:更新工号为12009的员工教师课程为“数据库” 例如:更新表rsda中所有人员为已婚。update rsda set 婚否=-1;
十三、delete语句
Delete语句用于删除数据库表中的数据。
例如:删除表中张三的所有信息。delete from rsda where 姓名=”张三" 当不指定条件时,将删除表中的所有行数据。要清除表中的所有数据,只留下数据表的定义还可以使用truncate语句。与delete语句相比,通常truncate执行速度快,因为它是不记录日志的删除表中全部数据的操作。
如:delete from rsda
Truncate table rsda Truncate table 表名 速度快,而且效率高,因为:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
DROP TABLE table_name 表示删除表的全部信息。
表所有者可以除去任何数据库内的表。除去表时,表上的规则或默认值将解除绑定,任何与表关联的约束或触发器将自动除去。如果重新创建表,必须重新绑定适当的规则和默认值,重新创建任何触发器并添加必要的约束。如果删除表内的所有行(DELETE tablename)或使用 TRUNCATE TABLE 语句,则表将一直存在到被除去。
课后练习:
1.要求:列出rsda数据表中部门为“教务处”的女性职工的工号,姓名,性别和部门。Select 工号,姓名,性别,部门 from rsda where(部门=”教务处”)and(性别=”女”)2.显示基本工资的最小值和最大值,并将结果分别赋给变量minjbgz、maxjbgz。Select min(基本工资)as minjbgz,max(基本工资)as maxjbgz from rsda 显示“基础部”每位老师所讲授的所有课程名。Select 姓名,课程名 from rsda,kcm where(rsda.工号=kcm.工号)and(部门=”基础部”)显示所有姓张的人员信息。Select * from rsda where 姓名 like “张*” 物理删除rsda数据表中部门为“基础部”的所有男性职工的记录。Delete from rsda where(部门=”基础部”)and(性别=”男”)统计每位教师讲授的课程数目。SELECT 姓名,count(课程名)as 课程数目 from rsda,kcm where rsda.工号=kcm.工号 group by 姓名
列出rsda数据表中部门为“总务处”和“学生处”的所有男性职工的信息。Select * from rsda where(部门 in(“总务处”,”学生处”))and(性别=”男”)按照“出生年月”升序形式显示所有人员的信息。Select * from rsda order by 出生年月
计算补贴的平均值、公积金的平均值,并将结果分别赋给变量rjbt、rjgjj。Select avg(补贴)as rjbt,avg(公积金)as rjgjj from rsda
10.11.显示讲课教师中年龄最大的教师的姓名和性别。Select 姓名,性别 from rsda,kcm where 出生年月=any(select max(出生年月)from rsda)列出rsda数据表中部门为“基础部”的男性职工的工号,姓名,性别和部门。Select 工号,姓名,性别,部门 from rsda where(部门=”基础部”)and(性别=”男”)按照“基本工资”降序形式显示所有人员的信息。Select * from rsda order by 基本工资 desc 13.14.统计男教工中基本工资超过1000元的人数,并将结果赋给变量num。select count(基本工资)as num from where(基本工资>1000)and(性别=”男”)统计讲授“计算机文化基础实验”课程的教师中“补贴”一项的最高值,并将结果赋给变量A57(或者新字段A57)。Select max(补贴)as A57 from 3.4.5.6.7.8.9.12.rsda,kcm where(rsda.工号=kcm.工号)and(课程名=”计算机文化基础实验”).15.要求:显示所有本年度已经过完生日(不含当日)的人员信息。Select * from rsda where(month(date())>month(出生年月))or((month(date())=month(出生年月))and(day(date())>day(出生年月)))要求:为部门是“总务处”的职工每人增加15%的补贴(补贴=补贴*1.15)。update rsda set 补贴=补贴*1.15 where 部门=”总务处” 计算部门为“基础部”、补贴不足300元的人员的基本工资的平均值。Select avg(基本工资)from rsda where(部门=”基础部”)and(补贴<300)计算并替换每一条记录中的“补贴”字段(补贴=基本工资*0.05)。update rsda set 补贴=基本工资*0.05 19.显示应发工资的最小值和最大值,并将结果分别赋给变量minyfgz、maxyfgz。Select min(应发工资)as minyfgz,max(应发工资)as maxyfgz from 20.21.rsda 按照“公积金”升序形式显示所有人员的信息。Select * from rsda order by 公积金
统计30岁(不含30岁)以上的老师各自讲授的课程数目。SELECT 姓名,COUNT(课程名)as 课程数目 FROM kcm INNER JOIN rsda ON Kcm.工号 = Rsda.工号 WHERE(year(date())-year(出生年月))>= 30 GROUP BY 姓名
或者SELECT 姓名,COUNT(课程名)as 课程数目 FROM rsda, kcm
where((year(date())-year(出生年月))>= 30)and(Kcm.工号 = Rsda.工号)GROUP BY 姓名
16.17.18.第三讲 SQL语句的格式总结
一、Select语句
SELECT+需要查询的对象+FROM+表名+WHERE+条件。
Select语句中的参数:
1.Top 显示结果的前几条记录
select+Top+数字+from+表名+WHERE+条件。
显示结果的前百分之几的记录
select+Top+数字+percent+from+表名+WHERE+条件。
2.Distinct 在显示的结果中去掉重复值
3.As 给相应的列名赋予一个新的名字,或者给相应的字段创建一个新名字。
select+原列名+as+新列名+from+表名+WHERE+条件。
函数计算的结果+as+新名称(如:max(基本工资)as 最大工资)
4.函数的使用
1)Now()返回当前的系统时间,包含年、月、日、时、分、秒 2)Date()返回当前系统日期,包含年、月、日 3)Abs(参数)取数值的绝对值
4)Left(列名+,+数字)从左侧截取相应长度的字符串(如:left
(工号,2)=11(工号 like “11*”)
显示工号的前两位字符)
5)right(列名+,+数字)从右侧截取相应长度的字符串(如:right(工号,2)
显示工号的后两位字符)
6)len(列名)返回满足条件的列中字符串的长度(如:len(工号))显示工号有几个字符组成
7)day(日期)返回日期中的天(如:day(date())显示当前系统的日)
8)month(日期)返回日期中的月(如:month(date())显示当前系统的月)
9)year(日期)返回日期中的年(如:year(出身年月)显示出生的年份)
10)sum(列名)对列中满足条件的记录进行求和(如:sum(基本工资)统计满足条件的基本工资的总和)
11)avg(列名)对列中满足条件的记录求平均值(如:avg(应发工资)统计满足条件的应发工资的平均值)
12)count(列名)统计个数(如count(课程名)统计满足条件的课程数目)有时候要和group by 及having 一起使用。
13)Max(参数)求满足条件的最大值(如:max(应发工资)显示应发工资的最大值)
14)Min(参数)求满足条件的最小值(如:min(应发工资)显示应发工资的最大值)
5.Into 把数据追加到一个表中,如果没有相应的表,系统会自动创建一个满足条件的表。
在多表之间查询的时候一定要在表中有共同列名的前面加上”表名+.”。格式为“表名”+“.”+“列名”。如果表中独有的列,前面可以不加表名。隐含的条件是必须共同列中的数据相同(如:rsda.工号=kcm.工号)。
在条件中不能直接使用函数。(如:where 基本工资>=max(基本工资))
在条件语句中需要判断多个条件时必须使用逻辑表达式(如:()and())
6.Between关键字
满足条件的某区间的内容
Between+数值1+and+数值2 7.In关键字
使用in关键字可以确定给定的值是否与子查询或列表中的值相匹配。
列名+in+(参数1,参数2…..)
8.Like关键字
使用like关键字可以确定给定的字符串是否与指定的模式匹配。
列名+like+”参数”
如:工号 like “12*”
9.Group by
对查询的列表中对相应主键(列)进行分组。在group by语句中在选择列表内定义的列的别名不能用于指定分组列,此外,select后面的每一列数据除了出现在统计函数中的列外,都必须在group by子句中应用。Group +by+列名
SELECT 姓名,count(课程名)as 人数 from rsda,kcm where rsda.工号=kcm.工号
group by 姓名
10.Having having语句为分组或集合指定搜索条件,通常与group by语句一起使用
SELECT 部门,count(部门)as 部门人数 from rsda group by 部门 having count(部门)>=2
11.Order by order by语句用于指定对查询最终结果进行排序。DESC表示按递减顺序排列,ASC表示按递增顺序排列。
SELECT * from rsda where 基本工资=1000 order by 工号 desc;
二、Insert
Insert语句用于向数据库已有表中追加一行或者多行。Insert+into+表名+(列名1,列名2,列名3…„)+values+(“数据1”,”数据2”,”数据3”…„)Insert+into+表名+values+(所有字段的相应值)Insert+into+表名+(列名1,列名2,列名3…„)+select+列名1,列名2,列名3…..+from+表名+where+条件
如果所追加的表不存在,请用下面的格式:
Select+所要添加的项目+into+新表名+from+需要查询的表名+where+条件
三、Update Update语句用于修改数据库表中特定记录或者字段的数据.Update+表名+set+(列名=”数据”, 列名=”数据”……)+where+条件
四、Delete
Delete+from+表名+where+条件
五、Drop 删除表 Drop+ table+表名
课后习题:
1.要求:显示公积金的最小值和最大值,并将结果分别赋给变量mingjj、maxgjj。Select min(公积金)as mingjj,max(公积金)as maxgjj from rsda 2.要求:显示女教师讲授的所有课程名。Select 姓名,课程名 from rsda,kcm where(rsda.工号=kcm.工号)and(性别=”女”)3.要求:彻底删除kcm数据表中工号为12006的人员。Delect from kcm where 工号=”12006”
4.要求:统计讲授“程序设计”课程的老师的基本工资的平均值,并将结果赋给变量A54(或者新字段A54)。Select avg(基本工资)as A54 from rsda,kcm where(rsda.工号=kcm.工号)and(课程名=”程序设计”)5.要求:计算教务处人员的基本工资的平均值和最大值。Select avg(基本工资)as平均值,max(基本工资)as 最大值 where 部门=”教务处”
6.要求:显示30岁(含30岁)以下的人员的所有信息。Select * from rsda where(year(date())-year(出生年月))<30 7.要求:按照“公积金”降序形式显示所有人员的信息。Select * from rsda order by 公积金 desc 8.要求:显示讲授“英语写作”课程的每位老师的姓名、年龄。Select 姓名,(year(date())-year(出生年月))as 年龄 from rsda,kcm where(rsda.工号=kcm.工号)and(课程名=”英语写作”)9.要求:统计每位男老师各自讲授的课程数目。Select 姓名,count(*)as 课程数目from rsda,kcm where(rsda.工号=kcm.工号)and性别=”男”)group by 姓名
10.要求:物理删除rsda数据表中部门为“教务处”的所有女性职工的记录。Delete from rsda
where(部门=”教务处”)and(性别=”女”)11.要求:按照“应发工资”升序形式显示所有人员的信息。Select * from rsda order by 应发工资 asc 12.要求:列出rsda数据表中应发工资大于1500元的男性职工的工号、姓名、性别、部门和应发工资。Select 工号,姓名,性别,部门,应发工资 from rsda(应发工资>1500)and(性别=”男”)13.要求:按照rsda数据表中“部门”升序生成一个名为“人事表1”的新表,其中包含4个字段:工号、姓名、性别和部门。Select 工号,姓名,性别,部门 into 人事表1 from rsda order by 部门 asc 14.要求:显示讲课教师中年龄最小的教师的姓名和性别。select 姓名,性别 from rsda where(Year([出生年月]))=any(SELECT Max(Year(出生年月))FROM rsda, kcm where rsda.工号 = kcm.工号)and((month([出生年月]))=any(SELECT max(month(出生年月))FROM rsda, kcm where rsda.工号 = kcm.工号))and((day([出生年月]))=any(SELECT max(day(出生年月))FROM rsda , kcm where rsda.工号 = kcm.工号))15.要求:物理删除rsda数据表中1985年以前(不含1985年)出生的部门为“教务处”的职工记录。Delete from rsda where(year(出生年月)<1985)and(部门=”教务处”)16.要求:统计“张运生”讲授的课程门数,并将结果赋给变量A57(或者新字段A57)。Select count(课程名)as A57 from rsda,kcm where(rsda.工号=kcm.工号)and(姓名=”张运生”)17.要求:按照“出生年月”降序形式显示所有人员的信息。Select * from rsda order by 出生年月 desc 18.要求:统计讲授“英语写作”课程的老师的应发工资的平均值,并将结果赋给变量A56(或者新字段A56)。Select avg(应发工资)as A56 from rsda,kcm where(rsda.工号=kcm.工号)and(课程名=”英语写作”)19.要求:统计rsda数据表中女性职工中补贴一项的最低值,并将结果赋给变量A58(或者新字段A58)。Select min(补贴)as A58 from rsda where 性别=”女” 20.要求将所有男性职工的记录追加到名为“追加表”的表中,只需要其中的4个字段:姓名、性别、工资、补贴。Select 姓名,性别,工资,补贴 into 追加表 from rsda where 性别=”男”
21.要求:显示讲授“英语阅读”课程的每位老师的姓名、年龄。Select 姓名,(year(date())-year(出生年月))as 年龄 from rsda,kcm where(rsda.工号=kcm.工号)and(课程名=”英语阅读”)22.要求:统计rsda数据表中部门为“基础部”的女性职工的基本工资的平均值,并将结果赋给变量A53(或者新字段A53)。Select avg(基本工资)as A53 from rsda where(部门=”基础部”)and(性别=”女”)23.要求:统计男性职工中基本工资超过1500元的人数,并将结果赋给变量A55(或者新字段A55)。Select 基本工资,count(*)as A55 from rsda where(性别=”男”)and(基本工资>1500)24.要求:列出rsda数据表中工号前2位等于“10”的男性职工的信息。Select * from rsda where 工号 like “10*”;或者是Select * from rsda where left(工号,2)=10;25.要求:为rsda数据表中部门是“教务处”的人员每人增加25%的补贴(补贴=补贴*1.35)。update rsda set 补贴=补贴*1.35 where 部门=”教务处”
第二篇:数据库SQL语句十题
作业十题
1.查询所有学生的基本信息,并按学号降序排列
SELECT * FROM STUDENT
ORDER BY sno DESC;
2.查询系别代码为“02”的女同学信息
SELECT * FROM STUDENT
WHERE ssex=’女’ and sdept=‘02’;
3.查询学生的总人数
SELECT COUNT(*)AS 学生总人数
FROM STUDENT;
4.所有选修课学生的姓名,课程名及成绩
SELECT sname,cname,grade
FROM STUDENT,COURSE,SC
WHERE STUDENT.sno=SC.sno and COURSE.cno=SC.cno;
5.不及格学生姓名(合并重复项)
SELECT distinct sname
FROM SC,STUDENT
WHERE grade<=60 and STUDENT.sno=SC.sno;
6.查询学号为“011110”的学生的哪些课程的成绩比他数据库的成绩要高 SELECT cno
FROM COURSE
WHERE sno=’011110’ and grade>(SELECT grade FROM COURSE,SC
WHERE cname=’数据库’ and sno=‘011110’ and
COURSE.cno=SC.cno);
7.查询选修课在3门以上(包括3门)的学生学号及选课门数 SELECT sno,COUNT(*)AS 选修门数
FROM SC
GROUP BY sno HAVING COUNT(*)>=3;
8.查询学号为“011110”的学生的平均成绩,并以平均成绩命名 SELECT AVG(grade)AS average grade
FROM SC
WHERE sno=’011110’;
9.查询计算机系或英语系的所有学生的个人信息
SELECT*FROM STUDENT
WHERE sdeptIN(SELECT sdept FROM DEPT
WHERE sdname=’计算机系’OR sdname=’英语系’);
10.查询与“罗宇波”同一个系的学生情况
SELECT * FROM STUDENT
WHERE sdept=(SELECT sdept FROM STUDENT
WHERE sname=’罗宇波’);
第三篇:SQL数据库编程学习应用语句
SQL数据库编程学习应用语句大全
1as 的用处
as可以对表和列取别名
在开发过程中经常遇到开始给某一个的字段去field1的名称,但后来有感觉field1字段指定不确切,于是又把此字段改成了field2,由于开始认为field1是常量,于是到处使用字符串field1,而且程序中又含有大量对field1的处理,此时就可以使用as
例如原来的 select field1 from tableA,改为selectfield2 asfield1 from tableA 代码基本就可以不动了。
2自增长的字段的插入
开发中经常遇到某个字段类型为IDENTITY,也就是自增长类型,但由于特殊需要,又要插入数据
需要临时去掉,可以使用如下语句set IDENTITY_INSERTtablename on,在处理完成后在使用如下语句恢复 set IDENTITY_INSERTtablenameoff
3分组取每组的前N个数据
开发中还会遇到需要对某一组数据先分组,然后取每组的前n条记录的情况
不妨试试如下代码
[sql] view plaincopy
/*
按CurrentNodeLevel列分组,每组按NodeID排序,取出每个组中的前3个元素*/
declare @temp table(NodeIDint, CurrentNodeLevelint ,rowNumberint)--定义临时表insert into @temp
selectNodeID,CurrentNodeLevel,ROW_NUMBER()
OVER(partitionby CurrentNodeLevel
order by NodeID)as rowNumber
from SchoolTerminalStruct---给临时表中插入数据
select * from @temp where rowNumber<=3--从临时表中取数据
4生成随机数
主意此方法只能写成存储过程,不能写成函数
[sql] view plaincopy
-----返回Max,Min之间的随机数不能写成函数
createproc [dbo].[getRAND]
(@Max int,--最大值
@Min int--,--最小值)
AS
BEGIN
DECLARE @result int
SELECT @result=RAND()*(@Max-@Min)+@Min
select@result
END
5把满足一定条件的数据用逗号分隔
这可能也是一个很常用的语句了,经常出现在一对多的关系中对外展示,要求把子表中的数据取出来用逗号或者其他符号分隔开
[sql] view plaincopy
/*
把满足 t2.NodeID=t1.NodeID的tableA 的字段NodeName 以逗号分隔开合并为一个字段输出
*/
select *,stuff((select ',' + t1.NodeName from tableA t1,tableB t2
wheret2.NodeID=t1.NodeID
for xml path('')), 1 , 1 , '')as text
fromtableA
6在数据库中处理异常
通过个参数附加output标志来输出参数,通过TRY,CATCH捕捉异常
[sql] view plaincopy
CREATE PROCEDURE [dbo].[sp_UpdateFunctionTree]
@nodenameint,@Result int output---2,操作失败;0操作成功
AS
BEGIN
begin
BEGIN TRY
UPDATE FunctionTree SET NodeName=@nodename
set @Result=0--操作成功
END TRY
BEGIN CATCH
set @Result=-2--操作失败
END CATCH
end
END
7查询中的条件判断
经常遇到在某些条件下应该查询这个字段,在另外一些条件下需要其他字段的情况,可以通过unoin来完成,但也可以通过CASE WHEN 完成[sql] view plaincopy
/*
在State=0 时返回field1 ,在State=1时返回 field2 ,其他时返回field3
*/
SELECT(CASE WHENState=0 THEN field1 WHENState=1 THEN field2
ELSE field3 END)as State
FROM tablename
8单引号的处理
在包含单引号时应该使用两个单引号转义
[sql] view plaincopy
dbo.sp_executesql @statement = N' select indexID,Sex=(case when Sex=0then ''男'' else ''女'' end)
fromtablename '
9使用游标
[sql] view plaincopy
declare @temp table(TaskIDint ,NodeIdint)--声明临时表
insert into @temp select A.TaskID ,A.NodeIdfrom tableAA,tableB B
whereA.TaskID=B.TaskID--//--给声明的临时表中插入记录
DECLARE tnames_cursor CURSORLOCAL FORWARD_ONLY READ_ONLY--声明游标
FOR select TaskID,NodeId from @temp;--游标需要用到的列
open tnames_cursor--打开游标
DECLARE @TaskIDint,@NodeIdint;--声明变量
FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId--移动游标给变量赋值,应该与游标需要用到的列一一对应,顺序类型应该一致
WHILE(@@FETCH_STATUS = 0)--循环
BEGIN
BEGIN
exec TaskType @TaskID,@NodeId--调用存储过程
END
FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId ,@TaskRunCYCType--移动游标给变量赋值 应该与游标需要用到的列一一对应,顺序类型应该一致
END
CLOSE tnames_cursor--关闭游标
DEALLOCATE tnames_cursor--释放游标
10合并更新和插入
在开发中大部分情况下,插入和更新传递的参数基本上是一样,那为什么不合并呢
[sql] view plaincopy
createproc [dbo].[Save_TableName]
(@field1 varchar(50),@field2varchar(200),@ID int,@insertOrUpdate--小于0插入 大于0更新)
as
begin
if(@insertOrUpdate<0)
begin
INSERT INTOTableName(field1,field2,ID)
values(@field1,@field2,@ID);
end
else
begin
UPDATE TableNameSET field1= @field1, field2 = @field2
where ID =@ID;
end
end
11定义函数
在没有满足要求的情况时,可以定义函数,但是使用自己定义的函数时需要加上架构名称
[sql] view plaincopy
create FUNCTION [dbo].[CheckTime]
(@startTimedatetime,@endTimedatetime--,)
RETURNSint
AS
BEGIN
DECLARE @result int
SET@result=DATEDIFF(hour, @startTime, @endTime)--
if(@result=0)--小时相同 比较分钟
begin
SET@result=DATEDIFF(minute, @startTime, @endTime)
if(@result=0)--分钟相同比较秒
begin
SET@result=DATEDIFF(second, @startTime, @endTime)
end
end
RETURN @result
END
调用此函数
[sql] view plaincopy
dbo.CheckTime(@startTime1, @startTime2)--需要加上架构名称
12递归读取数据
在实际的应用中经常遇到树结构的表,但读取会比较麻烦,这里提够一个函数
[sql] view plaincopy
/*
函数 返回表,返回给定节点的所有子孙节点,而不仅仅是子节点
*/
Create Function [dbo].[GetChildren](@NodeIDInt)
Returns @Tree Table(NodeIDInt, NodeNameVarchar(50), ParentIDInt)
As
Begin
Insert @Tree Select NodeID, NodeName, ParentIDFromTreetable Where ParentID = @NodeID
While @@Rowcount> 0
Insert @Tree Select A.NodeID, A.NodeName, A.ParentID
From Treetable A
Inner Join @Tree B
On A.ParentID = B.NodeIDAndA.NodeID Not In(Select NodeID From @Tree)Return
End
13通过默认值实现存储过程重载
存储过程可以使用默认值,估计都知道,但以此就可以实现类似函数重载的效果
例如,如下的存储过程由于使用了默认值,就可以不传递参数,传递一个参数,两个,三个,[sql] view plaincopy
CREATE PROCEDURE dbo.my_proc
@firstint = NULL,--NULL default value
@secondint = 2,--Default value of 2
@thirdint = 3--Default value of 3
AS SELECT @first, @second, @third;
14在数据库中拼字符串,也可以用参数
在实际的开发中,某些情况下在数据库中拼字符串不可避免,但又担心有特殊字符,导致拼出来的SQL有问题,其实数据库中拼字符串也可以使用参数,这就要用到dbo.sp_executesql,这样就可以避免SQL注入和特殊字符导致的错误
如
[sql] view plaincopy
DECLARE @IntVariable INT;--定义变量
DECLARE @SQLString NVARCHAR(500);--存储拼出来的SQL
DECLARE @ParmDefinition NVARCHAR(500);---存储拼出来的SQL中的参数
/* Build the SQL string one time.*/
SET @SQLString =
N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';/* Specify the parameter format one time.*/
SET @ParmDefinition = N'@SalesIDint';--赋值
/* Execute the string with the first parameter value.*/
SET @IntVariable = 275;--赋值
EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;
/* Execute the same string with the second parameter value.*/
SET @IntVariable = 276;
EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;
16触发器需要注意的问题
在使用触发器时有一个问题,或许很少有人注意到,一条更新语句一次更新了十条记录,会触发几次触发器?只有一次!很奇怪,但却是事实,所以这需要注意,一不小心就会把好
多数据漏了
第四篇:计算机等级考试二级ACCESS数据库基础知识
计算机等级考试二级ACCESS数据库基础知识
1.1 数据库基础知识
1.1.1 计算机数据管理的发展 一.数据与数据处理 数据:
是指存储在某种 媒体上能够识别的物理符号。数据处理:
是指将数据转换成信息的过程。
从数据处理的角度而言,信息是一种被加工成特定形式的数据,这种数据形式对于数据接受者来说是有意义的。二.计算机数据管理
计算机数据管理 是指对数据的 分类、组织、编码、存储、检索和维护。计算机数据管理 发展的几个阶段: 1 .人工管理 世纪 50 年代中期以前,计算机主要用于科学计算。
外部存储器 只有纸带、卡片、磁带,无像磁盘这样的可以随机访问、直接存取的外部存储设备。软件的状况 是没有操作系统,没有专门管理数据的软件,数据由计算或处理它的程序自行携带。数据管理任务,包括存储结构、存储方法、输入/输出方式等完全由程序设计者负责。特点:
数据与程序不具有独立性,一组数据对应一组程序。数据不能长期保存。
一个程序中的数据无法被其他程序使用。程序之间存在大量重复数据,数据冗余大。2 .文件系统 世纪 50 年代后期到 60 年代中期。计算机不仅用于科学计算 , 而且还用于大量的数据处理。直接存储设备,高级语言,操作系统。
程序和数据有一定的独立性,数据文件可以长期保存。
数据和程序相互依赖。数据文件是为满足特定的业务,或某部门的专门需要而设计,服务于某一特定的应用程序。
同一数据项可能重复出现在多个文件中,数据冗余度大。数据容易造成不一致。3 .数据库系统 世纪 60 年代后期。计算机用于管理的规模更加庞大,应用越来越广泛。同时多种应用、多种语言共享数据集合的要求越来越强烈。
标志: 1968年IBM的 IMS 是一个层次模型数据库。1969年美国数据系统语言协会公布的 DBTG 报告,对研制开发网状数据库系统起到了推动作用。自1970年 IBM 公司的研究成果奠定了关系数据库理论基础。数据库技术的主要目的:
有效地 管理和存储 大量的数据资源,包括:提高数据的 共享性,使多个用户能够同时访问数据库中的数据; 减少数据冗余,以提高数据的 一致性和完整性 ;提高数据与程序的 独立性,从而 减少 应用程序的 开发和维护代价。4 .分布式数据库 20 世纪 70 年代以后,网络技术的发展为数据库提供了分布式的运行环境,从主机—终端结构发展到 C/S(客户 / 服务器)系统结构。
数据库技术与网络技术的结合分为 紧密结合 与 松散结合 两大类。
分布式数据库系统又分为 物理上分布、逻辑上集中 的分布式数据结构和 物理上分布、逻辑上分布 的分布式数据库结构两种。
物理上分布、逻辑上集中的分布式数据结构是逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个节点局部数据库的逻辑集合,同时受分布式数据库管理系统的统一控制和管理。物理上分布、逻辑上分布 的分布式数据库结构是把多个集中式数据库系统通过网络连接起来,各个节点上计算机可以利用网络通信功能访问其他节点上的数据库资源。5 .面向对象数据库系统
面向对象数据库吸收了面向对象程序设计方法的核心概念和基本思想,采用面向对象的观点来 描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等。克服了传统数据库的局限性,能够自然地存储复杂的数据对象以及这些对象之间的关系,从而大幅度地提高了 数据库管理效率、降低了用户使用的复杂性。1.1 数据库基础知识 1.1.2 数据库系统 一.有关数据库的概念 1 .数据(Data)
描述事物的符号记录。2 .数据库(Data Base)
存储在计算机存储设备中的、结构化的相关数据的集合。它不仅包括描述事物的数据本身,而且包括相关事物之间的关系。
数据库中的数据不只是面向某项特定的应用,而是面向多种应用,可以被多个用户、多个应用程序共享。3 .数据库应用系统
利用数据库系统资源开发的面向某一类实际应用的软件系统。如:学生管理系统、人事管理系统等。.数据库管理系统(DataBase Management System,DBMS)
位于用户与操作系统之间的数据管理软件,为数据库的建立、使用和维护而配置的软件。使用户能方便地定义数据和操纵数据库,并能报证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。.数据库系统(DataBase System, DBS)
指引进数据库技术后的计算机系统,能实现有组织地、动态地存储大量相关数据、提供数据处理和信息资源共享的便利手段。有 5 部分:硬件系统、数据库集合、数据库管理系统和相关软件、数据库管理员(DataBase Administrator , DBA)和用户。二.数据库系统的特点 1 .实现数据共享,减少冗余 2 .采用特定的数据模型 3 .具有较高的数据独立性 4 .有统一的数据控制功能 三.数据库管理系统
支持用户对数据库的基本操作,是数据库系统的核心软件。主要目标是使数据成为 方便用户使用 的资源,易于为各种用户所 共享,并增进数据的 安全性、完整性和可用性。● 功能主要包括: 1.数据定义
定义数据库的结构。
2.数据操纵
更新(插入、修改、删除)和检索。
3.数据库运行管理
对数据库进行 并发控制、安全性检查、完整性约束条件的检查和执行 及 数据库的内部维护(索引、数据字典的自动维护)等。
4.数据组织、存储和管理
采用统一的组织方式,并提高效率。
5.数据库的建立和维护
初始数据的输入与数据转存。
数据库的转储与恢复、数据库的重组与重构、性能的监视与分析。
6.数据通信接口
提供与其他软件系统进行通信的功能。
● 4 部分组成:
■ 数据定义语言及翻译处理程序
■ 数据操纵语言及其编译(或解释)程序
■ 数据库运行控制程序
■ 实用程序
1.1 数据库基础知识
1.1.3 数据模型
数据模型就是从现实世界到机器世界的一个中间层次。是数据管理系统用来表示实体及实体间联系的方法。
一.实体描述.实体
客观存在并相互区别的事物成为实体。如:学生、教师、课程。.实体的属性
描述实体的特性。如学生实体用学号、姓名、性别等属性描述。.实体集和实体型
属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。同类型的实体的集合,称为实体集。
二.实体间联系及种类
实体之间的对应关系称为联系。如:一个学生可以选修多门课程,同一门课程可以由多名教师讲授。
有三种类型:.一对一联系
如:人事部门的教师表和财务部门的工资表之间就存在一对一联系。.一对多联系
如:部门表与教师表之间就存在一对多的联系。.多对多联系
如:学生表和课程表之间存在多对多的联系。
三.数据模型简介
数据模型是数据库管理系统用来表示实体间联系的方法。
任何一个数据库管理系统都是基于某种数据模型的。数据管理系统所支持的数据模型有三种:层次模型、网状模型、关系模型。.层次模型
用树型结构表示各类实体以及实体之间的联系。典型代表: IBM 的 IMS。
(1)有且仅有一个节点无双亲,这个节点称为“根节点”。
(2)其他节点有且仅有一个双亲。
特点:对一对多的层次关系描述非常自然、直观、容易理解,但不能直接表示出多对多的联系。.网状模型
(1)允许一个以上的节点无双亲。
(2)一个节点可以有多于一个的双亲。
典型代表: DBTG 系统,也称 CODASYL 系统。
特点是:能直接表示非树型结构。.关系数据模型
IBM E.F.Codd 于 1970 首次提出。
用二维表结构来表示实体以及实体间联系的模型。
特点是:理论基础完备、模型简单、说明性的查询语言和使用方便。
1.2 关系数据库
1.2.1 关系数据模型
一.关系术语
.关系
一个关系就是一个二维表,每个关系有一个关系名。在 Access 中,一个关系存储为一个表,具有一个表名。
对关系的描述称为 关系模式,一个关系模式对应一个关系的结构。其格式为:
关系名(属性名 1,属性名 2,…,属性名 n)
在 Access 中:
表名(字段名 1,字段名 2,…,字段名 n).元组
二维表(关系)中的每一行。对应在表中为记录。.属性
二维表(关系)中的每一列。对应在表中为字段。.域
属性的取值范围。如:性别只能取“男”和“女”。.关键字
唯一地标识一元组的属性或属性集合。如:教师表中的编号。在 Access 中,主关键字和候选关键字就起唯一标识一个元组的作用。.外部关键字
如果一个表的字段不是本表的主关键字,而是另外一个表的主关键字和候选关键字,这个字段(属性)就称为外关键字。
二.关系的特点.关系必须规范化
是指关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。.在同一个关系中不能出现相同的属性名。.关系中不允许有完全相同的元组,即冗余。4 .在一个关系中元组的次序无关紧要。5 .在一个关系中列的次序无关紧要。
1.2 关系数据库
1.2.2 关系运算
一.传统的集合运算.并
两个结构相同的关系的并是由属于这两个关系的元组组成的集合。.差
两个结构相同的关系 R 和 S 的差是由属于 R 但不属于 S 的元组组成的集合。.交
两个结构相同的关系 R 和 S 的交是由既属于 R 又属于 S 的元组组成的集合。二.专门的关系运算.选择
从关系中找出满足给定条件的元组的操作。.投影
从关系模式中指定若干属性组成新的关系。.联接
将两个关系模式拼接成为一个更宽的关系模式,生成的新的关系中包含满足联接条件的元组。.自然联接
在联接运算中,按照字段值对应相等为条件进行的联接操作。去掉重复字段。
1.3 数据库设计基础
1.3.1 数据库的设计步骤
一.设计原则 .关系数据库的设计应遵从概念单一化“一事一地”的原则.避免在表之间出现重复字段 .表中的字段必须是原始数据和基本数据元素.用外部关键字保证有关联的表之间联系
二.设计步骤.需求分析
(1)信息需求
(2)处理需求
(3)安全性和完整性需求.确定需求的表
遵从概念单一化“一事一地”的原则,即一个表描述一个实体或实体间的一种联系,并将这些信息分成各种基本实体。.确定所需字段
(1)每个字段直接和表的实体相关
(2)以最小的逻辑单位存储信息
(3)表中的字段必须是原始数据
(4)确定主关键字字段.确定联系
对于一对多的联系,可以将其中“一方”表的主关键字放到“多方”表中作为外关键字。“一方”用索引关键字,“多方”使用普通索引关键字。
对于一对一的联系,两个表中使用同样的主关键字字段。
对于多对多的联系,为了避免数据重复,一般建立第三个表,把多对多的联系分解两个一对多的联系。这个第三个表可以看成纽带。纽带表不一定需要自己的主键,如果需要,可以将它所联系的两个表的主关键字做为组合关键字指定为主关键字。.设计求精
检查可能存在的缺陷和需要改进的地方,这些缺陷可能会使数据难以使用和维护。
(1)是否忘记了字段?
(2)是否存在大量空白字段?
(3)是否包含了同样字段的表?
(4)表中是否带有大量不属于某实体的字段?
(5)是否在某个表中重复输入同样的数据?
(6)是否为每个表选择了合适的主关键字?
(7)是否有字段很多而记录很少的表,并且许多记录中的字段值为空?
1.4 SQL 基本命令
SQL(Structure Query Language,结构化查询语言)是在数据库系统中应用广泛的数据库查询语言,它包括了数据定义、查询、操纵和控制 4 种功能。
SQL 中的两个基本概念:
基本表:本身独立存在的表。
视图:从一个或多个基本表导出的表。它本身不独立存储在数据库中,即数据库中存放视图的定义,而不存放视图对应的数据。
1.4.1 SQL 基本语句
最常见的 SQL 语句是 SELECT。
基本格式:
SELECT [ALL/DISTINCT] *|< 字段列表 >
FROM < 表名 > [WHERE < 条件表达式 >]
[ORDER BY < 列名 > {[ASC|DESC]}]
例:在 Access 中,在教师表中查询姓名为“王”的教师,并按照姓名升序排列。命令为:
SELECT * FROM 教师 WHERE 姓名 LIKE “ 王 %” ORDER BY 姓名 ASC 1.5 Access 简介
Access 是一种关系型的桌面数据库管理系统,是 Microsoft Office 套件产品之一。
1992 年 11 月推出 Access 1.0,Microsoft 先后推出 2.0,7.0/95,8.0/97,9.0/2000,10.0/2002,直到 Access 2003。
特点: .具有方便实用的强大功能。.可以利用各种图例快速获取数据。.可以利用报表设计工具,方便生成报表。.能处理多种数据类型。.采用 OLE 技术,能方便创建和编辑多媒体数据库。.支持 ODBC 标准的 SQL 数据库的数据。.设计过程自动化,大大提高了数据库的工作效率。.具有较好的集成开发环境。.提供了断点设置、单步执行等调试功能。.与 Internet/Intranet 的集成。.可以将数据库应用程序的建立移进用户环境,并最终使用户和应用程序开发者之间的关系淡化。
数据库的系统结构:
Access 数据库由数据库对象和组两部分组成,如图 1-2 所示。其中对象分为 7 种:表、查询、窗体、报表、数据访问页、宏、模块。
表是数据库的核心与基础,存放中数据库中的全部数据。报表、查询和窗体都是从数据库中获取数据信息,以实现用户的某一特定的需要。
表是用来存储数据的对象,是数据库的核心与基础。表中的列为字段,行为记录。
查询是用来操作数据库中的记录对象,利用它可以按照一定的条件或准则从一个或多个表中筛选出需要操作的字段,并可以把它们集中起来,形成所谓的动态数据集,并显示在一个虚拟的数据表窗口中。
窗体:数据库与用户进行交互操作的界面。其数据源可以是表或查询。
报表:数据的输出方式,可以将数据库中需要的数据提取出来进行分析、整理和计算,并将数据以格式化的方式打印输出。
数据访问页:是一种特殊的 Web 页,用户可以在此 Web 页与 Access 数据库中的数据进行联接,查看、修改 Access 数据库中的数据。
宏:一系列操作的集合。
模块:将 Visual Basic for Application 声明和过程作为一个单元进行保存的集合。
1.6 启动和关闭 Access 1.6.1 启动 Access
“开始 / 程序 /Microsoft Access”
1.6 启动和关闭 Access 1.6.2 关闭 Access 4 种方法:
(1)单击 Access 右上角的“关闭”按钮
(2)选择“文件”菜单中的“退出”命令
(3)使用 Alt+F4 快捷键
(4)使用 Alt+F+X 快捷键
一、填空题
1.计算机数据管理的发展分 _______________________________________ 等几个阶段。.数据库技术的主要目的是有效地管理和存储大量的数据资源,包括:_____________,使多个用户能够同时访问数据库中的数据; ______________,以提高数据的一致性和完整性;___________________,从而减少应用程序的开发和维护代价。.数据库技术与网络技术的结合分为 _____________ 与 _____________ 两大类。.分布式数据库系统又分为 ____________________ 的分布式数据库结构和 ______________________ 的分布式数据库结构两种。.数据库系统的 5 个组成部分: _________________________________________________。. 实体之间的对应关系称为联系,有如下三种类型: _______________________________。.任何一个数据库管理系统都基于某种数据模型的。数据库管理系统所支持的数据模型有三种: ___________________________。.两个结构相同的关系 R 和 S 的 _______ 是由属于 R 但不属于 S 的元组组成的集合。. SQL(Structure Query Language,结构化查询语言)是在数据库系统中应用广泛的数据库查询语言,它包括了 _____________________________4 种功能。.Access 数据库由数据库对象和组两部分组成。其中对象分为 7 种: ___________________。
二、选择题 .下列说法错误的是()。
A 人工管理阶段程序之间存在大量重复数据,数据冗余大。
B 文件系统阶段程序和数据有一定的独立性,数据文件可以长期保存。
C 数据库阶段提高了数据的共享性,减少了数据冗余。
D 上述说法都是错误的。. 从关系中找出满足给定条件的元组的操作称为()。
A .选择
B .投影
C .联接
D .自然联接
3.关闭 Access 可以方法不正确的是()。
A .选择“文件”菜单中的“退出”命令。
B .使用 Alt+F4 快捷键。
C .使用 Alt+F+X 快捷键。
D .使用 Ctrl+X 快捷键。.数据库技术是从 20 世纪()年代中期开始发展的。
A.60
B.70
C.80
D.90 .使用 Access 按用户的应用需求设计的结构合理、使用方便、高效的数据库和配套的应用程序系统,属于一种()。
A.数据库
B.数据库管理系统
C.数据库应用系统
D.数据模型.二维表由行和列组成,每一行表示关系的一个()。
A.属性
B.字段
C.集合 D.记录.数据库是()。
A.以—定的组织结构保存在辅助存储器中的数据的集合。
B.一些数据的集合。
C.辅助存储器上的一个文件。
D.磁盘上的一个数据文件。.关系数据库是以()为基本结构而形成的数据集合。
A.数据表
B.关系模型
C.数据模型
D.关系代数 9 .关系数据库中的数据表()。
A.完全独立,相互没有关系。
B.相互联系,不能单独存在。
C.既相对独立,又相互联系。
D.以数据表名来表现其相互间的联系。10 .以下叙述中,正确的是()。
A.Access 只能使用菜单或对话框创建数据库应用系统。
B.Access 不具备程序设计能力。
C.Access 只具备了模块化程序设计能力。
D.Access 具有面向对象的程序设计能力,并能创建复杂的数据库应用系统。
答案 填空题
1.人工管理、文件系统、数据库系统、分布式数据库、面向对象数据库系统
2.提高数据的共享性、减少数据冗余、提高数据与程序的独立性
3.紧密结合、松散结合
4.物理上分布、逻辑上集中;物理上分布、逻辑上分布
5.硬件系统、数据库集合、数据库管理系统和相关软件、数据库管理员(DataBase Administrator , DBA)和用户。
6.一对一联系、一对多联系、多对多联系。
7.层次模型、网状模型、关系模型。
8.差
9.数据定义、查询、操纵和控制
10.表、查询、窗体、报表、数据访问页、宏、模块。
选择题
D A D A B D A B C D
第五篇:Access数据库实验报告
注意事项:本手册上写的是题目的出处,但的实验本上,必须写上书上原本的题目,否则无效。并且写下每题实现的步骤。
《Access数据库》实验报告指导手册掌握选择查询、总记查询、在查询中进行计算
实验一:
一、实验名称
数据库与表的操作
二、实验目的掌握数据库的创建、表结构的创建和输入数据 的实现。
三、实验任务
上机一:书上94页的例3.1题。上机二:书上101页的例3.4题。上机三:书上105页的例3.6题。
三、实验任务
上机一:书上34页的例 2.2题。上机二:书上42页的例2.6题。上机三:书上44页的例2.7题。上机四:书上49页的例2.9题。上机五:书上52页的例2.10题。实验二:
一、实验名称
设置字段的属性与创建表之间的关系
二、实验目的掌握字段属性的设置与创建表之间的关系。
三、实验任务
上机一:书上55页的例2.11题。上机二:书上57页的例2.13题。上机三:书上58页的例2.14题。上机四:书上60页的例2.15题。上机五:书上63页的例2.16题。实验三:
一、实验名称维护表的操作
二、实验目的掌握打开表、修改表的结构、编辑表的数据和调整表的外观等操作。
三、实验任务
上机一:书上66页的例2.18题。上机二:书上71页的例2.20题。上机三:书上73页的例2.21题。上机四:书上74页的例2.22题。上机五:书上76页的例2.23题。实现四:
一、实验名称创建选择查询
二、实验目的上机四:书上107页的例3.8题。上机五:书上109页的例3.9题。实验五:
一、实验名称
创建交叉表查询、参数查询
二、实验目的掌握交叉表查询、参数查询的实现。
三、实验任务
上机一:书上113页的例3.11题。上机二:书上116页的例3.12题。上机三:书上118页的例3.13题。上机四:书上119页的例3.14题。实验六:
一、实验名称创建操作查询
二、实验目的掌握生成表查询、删除查询、更新查询和追加查询的实现。
三、实验任务
上机一:书上121页的例3.15题。上机二:书上122页的例3.16题。上机三:书上124页的例3.17题。上机四:书上125页的例3.18题。实验七:
一、实验名称
利用向导创建窗体
二、实验目的掌握利用向导创建窗体的实现。
三、实验任务
上机一:书上144页的例4.2题。上机二:书上147页的例4.3题。上机三:书上150页的例4.5题。上机四:书上152页的例4.6题。实验八:
一、实验名称自定义窗体
二、实验目的掌握常见控件的使用与自定义窗体的实现。
三、实验任务
上机一:书上158页的例4.7题。上机二:书上167页的例4.8题。上机三:书上174页的例4.9题。上机四:书上174页的例4.10题。上机五:书上176页的例4.11题。实验九:
一、实验名称
编辑报表
二、实验目的掌握编辑报表的操作、报表的分组操作、增加计算控件的操作。
三、实验任务
上机一:书上203页的例5.7题。
上机二:书上203页的:在报表中,可以在某一节中使用分页控件符来标志要另起一页的位置。
上机三:书上205页的例5.8题。上机四:书上206页的例5.9题。上机五:书上209页的例5.10题。