数据库 sql 习题及答案(合集五篇)

时间:2019-05-13 22:18:59下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据库 sql 习题及答案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据库 sql 习题及答案》。

第一篇:数据库 sql 习题及答案

/*

Question 1:Find the titles of all movies directed by Steven Spielberg.select title from movie where director='Steven Spielberg'

Question 2:Find all years that have a movie that received a rating of 4 or 5, and sort them in increasing order.select distinct year from movie,rating where movie.mid=rating.mid and stars in(4,5)order by year

Question 3:Find the titles of all movies that have no ratings

select title from movie where mID in

(select mid from Movie except

select mid from rating)

select title from movie except

select title from movie,rating where movie.mid=rating.mid

Question 4:Some reviewers didn't provide a date with their rating.Find the names of all reviewers who have ratings with a NULL value for the date.select name from reviewer,rating where reviewer.rid=rating.rid and ratingdate is null

Question 5:Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, and ratingDate.Also, sort the data, first by reviewer name, then by movie title, and lastly by number of stars.select name,title,stars,ratingdate from movie,rating,reviewer where movie.mid=rating.mid and reviewer.rid=rating.rid order by name,title,stars

Question 6:For all cases where the same reviewer rated the same movie twice and gave it a higher rating the second time, return the reviewer's name and the title of the movie.select name,title

from rating as F,Rating as S,Movie,Reviewer where F.rID=S.rID and F.mID=S.mID and F.stars

and F.ratingDate

select name,title from movie,reviewer,(select r1.rid,r1.mid from rating as r1,rating as r2 where r1.rid=r2.rid and r1.mid=r2.mid and r1.ratingdate>r2.ratingdate and r1.stars>r2.stars)as r

where movie.mid=r.mid and reviewer.rid=r.rid

Question 7:For each movie, find the highest number of stars that movie received as a rating.Return the movie title and number of stars.Sort by movie title.select title,MAX(stars)as max_star from rating,Movie

where Rating.mID=Movie.mID group by title order by title

select title,maxrating from movie,(select mid,max(stars)as maxrating from rating group by mid)as r where movie.mid=r.mid order by title

Question 8:For each movie, return the title and the ‘rating spread(范围)', that is, the difference between highest and lowest ratings given to that movie.Sort by rating spread from highest to lowest, then by movie title.select title,MAX(stars)-MIN(stars)as rating_spread from rating,Movie

where Rating.mID=Movie.mID group by title

order by rating_spread desc,title

select title,spread as “rating spread”

from movie,(select mid,max(stars)-min(stars)as spread from rating group by mid)as r where movie.mid=r.mid order by spread desc,title

Question 9:Find the difference between the average rating of movies released before 1980 and the average rating of movies released after 1980.(Make sure to calculate the average rating for each movie, then the average of those averages for movies before 1980 and movies after.Don't just calculate the overall average rating before and after 1980.)

select F.avg_star-S.avg_star from,(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star

from Rating left join Movie on Rating.mID=Movie.mID where year>=1980 group by Rating.mID)as S(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star

from Rating left join Movie on Rating.mID=Movie.mID where year<1980 group by Rating.mID)as F)as F)as S

select r1979.avgm-r1980.avgm from

,Question 10:Add the reviewer Roger Ebert to your database, with an rID of 209.insert into Reviewer values(209,'Roger Ebert')

Question 11:

Insert 5-star ratings by James Cameron for all movies in the database.Leave the review date as NULL.insert into Rating(rID,mID,stars)select rid,mID,5 as stras from movie,(select rid from Reviewer where name='James Cameron')as T

insert into rating(rid,mid,stars)select rid,mid,5 from reviewer,movie where name='James Cameron'

Question 12:For all movies that have an average rating of 4 stars or higher, add 25 to the release year.(Update the existing tuples;don't insert new tuples.)

update Movie set year=year+25(select sum(avgrating)/count(*)as avgM from

(select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year>=1980 group by movie.mid)(select sum(avgrating)/count(*)as avgM from

(select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year<1980 group by movie.mid)

as r)

as r1979

as r)

as r1980 where mID in

(select mID from Rating group by mID having AVG(stars)>=4)

*/

第二篇:SQL数据库选择题及答案

1、在数据库技术中,独立于计算机系统的模型是_C__。A、面向对象的模型B、关系模型C、E-R模型D、层次模型

2、数据库系统的控制中枢是__B_。A、数据库、b、数据库管理系统C、数据库管理员D、数据库应用系统

3、使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是__C_。

A、UPDATE SET AGE WITH AGE+1

B、REPLACE AGE WITH AGE+1

C、UPDATE STUDENT SET AGE=AGE+1

D、UPDATE STUDENT AGE WITH AGE+1

4、在关系数据库中,建立数据库表时,将年龄字段值限制在12~40岁之间的这种约束属于__B__。

A、视图完整性约束B、域完整性约束C、参照完整性约束D、实体完整性约束

5、在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是__D_。A、X>=20 AND X<30

B、X>20 AND X<30

C、X>20 AND X<=30

D、X>=20 AND X<=30

6、在数据库中,概念模型是_D__。A、用于现实的建模,与具体的DBMS有关B、用于信息世界的建模,与具体的DBMS有关

C、用于现实的建模,与具体的DBMS无关D、用于信息世界的建模,与具体的DBMS无关

7、数据库的并发操作可能带来的问题包括__B_。A非法用户的使用B丢失更新C数据独立性会提高D增加数据冗余度

8、在关系数据库中,模式对应的是__A___。A、视图和所有基本表

B、视图和部分基本表

C、基本表

D、索引

9、能实现绝对的与平台无关性的Web数据库访问技术是_D_。A、ADO

B、ActiveX

C、WebbaseAPI

D、JDBC

10、在下列描述中,正确的描述是__B___。

A、SQL 是一种过程化语言B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

11、数据库系统是由__A__组成的。A、数据库、数据库管理系统和用户

B、数据文件、命令文件和报表

C、数据库文件结构和数据

D、常量、变量和函数

12、在SQL查询时,使用WHERE子句指出的是__B__。A、查询目标B、查询条件C、查询视图D、查询结果

13、在下列 RDMBS 产品中,属于小型数据库系统的是_A_。A、Access B、Oracle C、Sybase D、Informix

14、数据库类型是按照_A_来划分的。

A、数据模型B、记录形式C、数据存取方法D、文件形式

15、作为Microsoft Office家族成员之一的_A_数据库,能够与其他Office组件进行数据交换共享数据资源,易于生成集文字处理、图表生成和数据管理于一体的办公自动化系统。A、Access

B、Oracle

C、Sybase

D、Informix

16、数据库管理系统更适合于_D_方面的应用。A、CAD

B、过程控制C、科学计算D、数据处理

17、下列四组SQL命令,全部属于数据定义语句的命令是_C__。A、CREATE,DROP,ALTER

B、CREATE,DROP,UPDATE

C、CREATE,DROP,GRANT

D、CREATE,DROP,SELECT

18、通过Internet及浏览器处理的数据库,应该是_C__处理。A、集中式

B、分布式

C、主从结构式D、以上3种模式

19、数据的逻辑独立性是指__D_。A、数据与存储结构的逻辑独立性 B、数据元素之间的逻辑独立性

C、存储结构与物理结构的逻辑独立性

D、数据与程序的逻辑独立性

20、在数据库技术中,独立于计算机系统的模型是_C__。A面向对象的模型

B关系模型

C、E-R模型

D、层次模型

21、关系代数的3个基本运算是–D--、投影、连接。A、关系与B、蕴含C、关系或D、选择

22、下面命题不正确的是:A、若冗余数据可以控制,则数据更新的一致性得以保证

B、数据库减少了不必要的数据冗余C、数据库的数据可以共享D、数据库中不存在数据冗余

23、在基本SQL中不可以实现: A、定义视图B、并发控制C、定义基表D、查询视图和基表

24、用二维表来表示实体及实体之间联系的数据模型称为_C___。

A、实体-联系模型B、层次模型C、关系模型D、网状模型

25、查找工资在600元以上并且职称为工程师的纪录,逻辑表达式为_D___。

A、“工资”>600.OR.职称=“工程师”

B、工资>600.AND.职称=工程师

C、“工资”>600.AND.“职称”=“工程师”

D、工资>600.AND.职称=“工程师”

26、数据库镜像可以用于__C_。(1分)

A、实现数据库的安全性

B、实现数据共享C、进行数据库恢复或并发操作D、保证数据库的完整性

27、在下列类型的数据库系统中,应用最广泛的是__C___。(1分)

A、分布型数据库系统B、逻辑型数据库系统C、关系型数据库系统D、层次型数据库系统

28、在下列描述中,正确的描述是__B__。(1分)A、SQL 是一种过程化语言B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

第三篇:SQL语言习题及答案

数据库原理之关系数据库SQL语言课后习题及答案

http://www.xiexiebang.comAME,TEACHER)

试用SQL的查询语句表达下列查询:

(1)检索LIU老师所授课程的课程号和课程名。

SELECT C#,CNAME

FROM C

WHERE TEACHER=„LIU‟

(2)检索年龄大于23岁的男学生的学号和姓名。

SELECT S#,SNAME

FROM S

WHERE(AGE>23)AND(SEX=„M‟)

(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。

SELECT SNAME

FROM S

WHERE SEX=„F‟ AND S# IN

(SELECT S#

FROM SC

WHERE C# IN

(SELECT C#

FROM C

WHERE TEACHER=„LIU‟)

NOTICE:有多种写法,比如联接查询写法:

SELECT SNAME

FROM S,SC,C

WHERE SEX=„F‟ AND SC.S#=S.S#

AND SC.C#=C.C#

AND TEACHER='LIU' 但上一种写法更好一些。

(4)检索WANG同学不学的课程的课程号。

SELECT C#

FROM C

WHERE C# NOT IN

(SELECT C#

FROM SC

WHERE S# IN

(SELECT S#

FROM S

WHERE SNAME='WANG'))

(5)检索至少选修两门课程的学生学号。

SELECT DISTINCT X.SNO

FROM SC X,SC Y

WHERE X.SNO=Y.SNO AND X.CNO<>Y.CNO Notice:对表SC进行自连接,X,Y是SC的两个别名。

(6)检索全部学生都选修的课程的课程号与课程名。

SELECT C#,CNAME

FROM C

WHERE NOT EXISTS

(SELECT *

FROM S

WHERE S# NOT IN

(SELECT *

FROM SC

WHERE SC.C#=C.C#))

要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。

其中,“不选这门课的同学”可以表示为:

或者

SELECT *

FROM S

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE S.S#=C.S#

AND SC.C#=C.C#)

SELECT *

FROM S

WHERE S# NOT IN

(SELECT *

FROM SC

WHERE SC.C#=C.C#)

(7)检索选修课程包含LIU老师所授课的学生学号。

SELECT DISTINCT S#

FROM SC

WHERE C# IN

(SELECT C#

FROM C

WHERE TEACHER='LIU'))

3.3 设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:

(1)πA(R)

(2)σB='17'(R)

(3)R×S

(4))πA,F(σC=D(R×S))

(1)SELECT A FROM R

(2)SELECT * FROM R WHERE B='17'(3)SELECT A,B,C,D,E,F FROM R,S

(4)SELECT A,F FROM R,S WHERE R.C=S.D

3.4 3.4 设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:

(1)R∪S

(2)R∩S

(3)R-S

(4)πA,B(R)πB,C(S)

(1)SELECT A,B,C

FROM R

UNION

SELECT A,B,C

FROM S

(2)SELECT A,B,C

FROM R

INTERSECT

SELECT A,B,C

FROM S

(3)SELECT A,B,C

FROM R

WHERE NOT EXISTS

(SELECT A,B,C

FROM S

WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)

(4)SELECT R.A,R.B,S.C

FROM R,S

WHERE R.B=S.B

3.5 试叙述SQL语言的关系代数特点和元组演算特点。

(P61-62)

3.6 试用SQL查询语句表达下列对教学数据库中三个基本表S、SC、C的查询:

(1)统计有学生选修的课程门数。

SELECT COUNT(DISTINCT C#)FROM SC

(2)求选修C4课程的学生的平均年龄。

SELECT AVG(AGE)

FROM S

WHERE S# IN

(SELECT S#

FROM SC

WHERE C#='C4')或者,SELECT AVG(AGE)

FROM S,SC

WHERE S.S#=SC.S# AND C#='004'

(3)求LIU老师所授课程的每门课程的学生平均成绩。

SELECT CNAME,AVG(GRADE)

FROM SC ,C

WHERE SC.C#=C.C# AND TEACHER='LIU'

GROUP BY C#

(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

SELECT DISTINCT C#,COUNT(S#)

FROM SC

GROUP BY C#

HAVING COUNT(S#)>10

ORDER BY 2 DESC, C# ASC

(5)检索学号比WANG同学大,而年龄比他小的学生姓名。

SELECT X.SNAME

FROM S AS X, S AS Y

WHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE

(6)检索姓名以WANG打头的所有学生的姓名和年龄。

SELECT SNAME,AGE

FROM S

WHERE SNAME LIKE 'WANG%'

(7)在SC中检索成绩为空值的学生学号和课程号。

SELECT S#,C#

FROM SC

WHERE GRADE IS NULL

(8)求年龄大于女同学平均年龄的男学生姓名和年龄。

SELECT SNAME,AGE

FROM S AS X

WHERE X.SEX='男' AND X.AGE>(SELECT AVG(AGE)FROM S AS Y WHERE Y.SEX='女')

(9)求年龄大于所有女同学年龄的男学生姓名和年龄。

SELECT SNAME,AGE

FROM S AS X

WHERE X.SEX='男' AND X.AGE>ALL(SELECT AGE FROM S AS Y WHERE Y.SEX='女')

3.7 试用SQL更新语句表达对教学数据库中三个基本表S、SC、C的各个更新操作:

(1)往基本表S中插入一个学生元组(„S9‟,„WU‟,18)。

INSERT INTO S(S#,SNAME,AGE)VALUES('59','WU',18)

(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX)。

INSERT INTO STUDENT(S#,SNAME,SEX)

SELECT S#,SNAME,SEX

FROM S WHERE NOT EXISTS

(SELECT * FROM SC WHERE

GRADE<80 AND S.S#=SC.S#)

(3)在基本表SC中删除尚无成绩的选课元组。

DELETE FROM SC

WHERE GRADE IS NULL

(4)把WANG同学的学习选课和成绩全部删去。

DELETE FROM SC

WHERE S# IN

(SELECT S#

FROM S

WHERE SNAME='WANG')

(5)把选修MATHS课不及格的成绩全改为空值。

UPDATE SC

SET GRADE=NULL

WHERE GRADE<60 AND C# IN

(SELECT C#

FROM C

WHERE CNAME='MATHS')(6)把低于总平均成绩的女同学成绩提高5%。

UPDATE SC

SET GRADE=GRADE*1.05

WHERE GRADE<(SELECT AVG(GRADE)FROM SC)AND S# IN(SELECT S# FROM S WHERE SEX='F')

(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。

UPDATE SC

SET GRADE=GRADE*1.05

WHERE C#='C4' AND GRADE<=75

UPDATE SC

SET GRADE=GRADE*1.04

WHERE C#='C4' AND GRADE>75

3.8 在第1章例1.4中提到“仓库管理”关系模型有五个关系模式:

零件 PART(P#,PNAME,COLOR,WEIGHT)

项目 PROJECT(J#,JNAME,DATE)

供应商 SUPPLIER(S#,SNAME,SADDR)

供应 P_P(J#,P#,TOTOAL)

采购 P_S(P#,S#,QUANTITY)

(1)试用SQL DDL语句定义上述五个基本表,并说明主键和外键。

CREATE TABLE PART

(P# CHAR(4)NOT NULL,PNAME CHAR(12)NOT NULL,COLOR CHAR(10),WEIGHT REAL,PRIMARY KEY(P#))

CREATE TABLE PROJECT

(J# CHAR(4)NOT NULL,JNAME CHAR(12)NOT NULL,DATE DATE,PRIMARY KEY(J#))

CREATE TABLE SUPLIER

(S# CHAR(4)NOT NULL,SNAME CHAR(12),SADDR VARCHAR(20),PRIMARY KEY(S#))

CREATE TABLE P_P

(J# CHAR(4),P# CHAR(4),TOTAL INTEGER,PRIMARY KEY(J#,P#),FOREIGN KEY(J#)REFERENCE PROJECT(J#),FOREIGN KEY(P#)REFERENCE PART(P#))

CREATE TABLE P_S

(P# CHAR(4),S# CHAR(4),QUANTITY INTEGER,PRIMARY KEY(P#,S#),FOREIGN KEY(P#)REFERENCE PART(P#),FOREIGN KEY(S#)REFERENCE SUPLIER(S#))

(2)试将PROGECT、P_P、PART三个基本表的自然联接定义为一个视图VIEW1,PART、P_S、SUPPLIER 三个基本表的自然联接定义为一个视图VIEW2。

CREATE VIEW VIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL)

AS SELECT PROJECT.J#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL

FROM PROJECT,PART,P_P

WHERE PART.P#=P_P.P# AND P_P.J#=PROJECT.J

#

CREATE VIEW VIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)

AS SELECT PART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUANTITY

FROM PART,P_S,SUPPLIER

WHERE PART.P#=P_S.P# AND P_S.S#=SUPPLIER.S#

(3)试在上述两个视图的基础上进行数据查询:

1)检索上海的供应商所供应的零件的编号和名字。

SELECT P#,PNAME FROM VIEW2 WHERE SADDR='SHANGHAI'

2)检索项目J4所用零件的供应商编号和名字。

SELECT S#,SNAME FROM VIEW2 WHERE P# IN(SELECT P# FROM VIEW1 WHERE J#='J4')

3.9 对于教学数据库中基本表SC,已建立下列视图:

CREATE VIEW S_GRADE(S#,C_NUM,AVG_GRADE)

AS SELECT S#,COUNT(C#),AVG(GRADE)

FROM SC

GROUP BY S#

试判断下列查询和更新是否允许执行。若允许,写出转换到基本表SC上的相应操作。

(1)SELECT *

FROM S_GRADE

允许

SELECT S#,COUNT(C#),AVG(GRADE)FROM SC GROUP BY S#

(2)SELECT S#,C_NUM

FROM S_GRADE

WHERE AVG_GRADE>80

允许

SELECT S#,COUNT(C#)FROM SC WHERE AVG(GRADE)>80

(3)SELECT S#,AVG_GRADE

FROM S_GRADE

WHERE C_NUM>(SELECT C_NUM

FROM S_GRADE

WHERE S#=„S4‟)

允许

SELECT S#,AVG(GRADE)

FROM SC AS X

WHERE COUNT(X.C#)>(SELECT COUNT(Y.C#)FROM SC AS Y WHERE Y.S#='S4')

GROUP BY S#

(4)UPDATE S_GRADE

SET C_NUM=C_NUM+1

WHERE S#=„S4‟

不允许

(5)DELETE FROM S_GRADE

WHERE C_NUM>

4不允许

3.10 预处理方式对于嵌入式SQL的实现有什么重要意义? 预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式; 然后再用宿主语言的编译程序把源程序编译成目标程序。这样,不用扩充宿主语言的编译程序,就能处理SQL语句。

3.11 在宿主语言的程序中使用SQL语句有哪些规定?

在宿主语言的程序中使用SLQ语句有以下规定:

(1)在程序中要区分SQL语句与宿主语言语句

(2)允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量),但有两条规定:

1)引用时,这些变量前必须加“:”作为前缀标识,以示与数据库中变量有区别。

2)这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。

(3)SQL的集合处理方式与宿主语言单记录处理方式之间要协调。需要采用游标机制,把集合操作转换成单记录处理方式。

3.12 SQL的集合处理方式与宿主语言单记录处理方式之间如何协调?

由于SQL语句处理的是记录集合,而宿主语言语句一次只能处理一个记录,因此需要用游标(cousor)机制,把集合操作转换成单记录处理方式。

2.13 嵌入式SQL语句何时不必涉及到游标?何时必须涉及到游标?

(1)INSERT、DELETE、UPDATE语句,查询结果肯定是单元组时的SELECT语句,都可直接嵌入在主程序中使用,不必涉及到游标。

(2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用,一定要用游标机制把多个元组一次一个地传送给宿主语言处理。

第四篇:SQL数据库题库及答案 (6)

实训11用户自定义函数及存储过程

--

1、创建一个存储过程,查看student表里的所有记录,并运行该存储过程。其代码如下: CREATE PROC pr_studentCodes AS SELECT * FROM student GO EXEC pr_studentCodes

--

2、修改pr_studentcodes存储过程,使其按照学号排序 ALTER PROC pr_studentCodes AS SELECT * FROM student ORDER BY Studentid EXEC pr_studentCodes

--

3、删除存储过程Pr_studentCodes drop procedure pr_studentCodes

--

4、创建向Class表中插入一条记录(‘’,‘电子UI班’,null,)的存储过程pr_InsertClass create procedure pr_InsertClass as insert into Class values('10901','电子UI班',null,1)go exec pr_InsertClass--5 创建存储过程up_Add,要求该存储过程能够实现对输入的两个数相加,并将结果输出 create proc up_Add @num1 int,@num2 int,@sum int output as

begin select @sum=@num1+@num2 end

--6 执行存储过程up_Add,计算加上的和。declare @he int exec up_Add @num1=78,@num2=82,@sum=@he output print '结果是:'+convert(char,@he)

--

三、阅读代码写结果--1 create proc pr_grade(@sno char(9), @cname char(8), @grade int output)as select @grade=score from score,course where score.courseid=course.courseid and studentid=@sno and coursename=@cname--2 declare @score int exec pr_grade '10701001','高等数学',@score output select @score

--3 create proc pr_count(@classid varchar(8), @num int output)as select @num=count(*)from student where Classid=@classid--4 declare @peop int exec pr_count @classid='10701',@num=@peop output select @peop

drop procedure pr_count

第五篇:SQL数据库心得

黄淮学院 2015---2016学年第 一 学期 《C#数据库应用程序开发技术与案例教程》课程

题目:

学习报告

系:数学科学系 专

业:数学与应用数学 年

级:1301B 姓

名:曹占营 学

号:1331110101 任课教师:杨锋英

2015年 12 月 30日

C#数据库学习报告

在日常生活中,我们和朋友、亲戚联系,会广泛用到通讯录,因此这门课程以通讯录开发为案例,教我们学习软件开发。

软件开发是一项非常注重实践工作,不可能只凭看书、看视频就学会软件开发,必须扎扎实实、一行一行的编写代码,不断积累项目经验,才能真正掌握编程技术,所以我们要亲自上级编写程序,才能真正掌握软件开发技术。

本书分为基础篇、进阶篇、高级篇,由浅入深地介绍了基于C#的数据库编程技术,所用的开发工具为Visual Studio 2008、SQL Server 2005以及Access 2007。

学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中让我更明白一些知识,查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用。表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。

在基础篇中,详细讲解了通讯录系统的设计、开发和安装部署这样一个完整过程,对各个任务进行详细讲解。基础篇学习分为9个任务,分别为系统分析与设计、用户登录、主窗体设计、联系人分组管理、联系人管理、用户密码修改、数据库备份与恢复、设计“关于”窗体、系统安装与部署。学完基础篇,即可开发出一个功能较为完备的通讯录系统。在联系人管理任务学习中,由于在Contact表中保存的是分组编号,而窗体上要显示的是分组名称,所以在查询语句中需要级联查询,即SQL语句为”select Contact.Id, Name, Phone, Email, QQ, GroupName from Contact, ContactGroup where Contact.GroupId = ContactGroup.Id”。为了实现代码复用,可以提供查询功能,根据用户选择的擦寻天剑,拼接产生SQL语句。同时为了支持模糊查询,还在SQL语句中用了like语句。通过SqlDataAdapter的Fill方法填充数据集,获取数据。数据集中有了数据以后,我们只需设置DataGridView控件的DataSource属性,就可以显示数据了。

在进阶篇中,介绍了企业项目开发中广发用到的参数化SQL语句、存储过程使用及定义数据库操作类,分为3个任务学习,分别为使用参数化SQL语句、使用存储过程、使用自定义数据库操作类,进一步提高我们的数据库编程能力。在使用存储过程任务学习中,了解到存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在性能方面,存储过程有如下的优点。(1)与编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间。(2)缓存,编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的书都会有明显提高。(3)减少网络传输,特别对于处理一些数据的存储过程,不必像直接用SQL语句实现那样多次传送数据到客户端。通过前面的学习,细细体会对数据库的操作,可以发现,这么多操作其实可以分为4种。(1)对数据库进行非连接式查询操作,返回多条记录。这种操作可以通过SqlDataAdapter对象的Fill方法来完成,即把查询得到的结果填充到DataTable(或DataSet)对象中。(2)对数据库进行连接式查询操作,返回多条查询记录。这种操作可以通过SqlCommand对象的ExecuteReader方法来完成,返回SqlDataReader对象。(3)从数据库中检索单值。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成。ExecuteScalar方法返回的是Object类型,需要根据实际情况进行类型转换。(4)对数据库执行增、删、改操作。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成,返回增、删、改操作后数据库中受影响的行数。

在高级篇中,分为4个任务学习,分别为开发基于三层构架的通讯录程序、开发基于Access的通讯录程序、实现基于抽象工厂模式的三层架构、使用MD5加密用户密码。首先详细讲解了基于三层构架的通讯录程序开发过程以及如何开发一个基于Access的通讯录系统。最后,介绍了如何采用MD5加密技术对用户密码加密。MD5加密技术也是实际项目开发中广泛用到的,通过MD5加密用户密码,可以提高程序的安全性。“三层架构”一词中的“三层”是指:“表示层”、“业务逻辑层”、“数据访问层”。表示层:位于最外层,离用户最近。用于显示和接收用户输入的数据,为用户提供一种交互式操作界面。表示层的常见形式为WinFrom和WebForm。业务逻辑层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。业务逻辑层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。可以访问数据库系统、二进制文件、文本文档或是XML文档。

在这一学期有限的几次实验课后,我虽然没有学会很多,但也学会了一些简单的操作,我学会了一些简单的数据运算,会建立一些简单的表。有时候在做实验时,对于实验中的一些东西我不怎么了解,但我还会去做,因为我想只有多练习才能熟练,也才能理解掌握知识。我不知道这一门课对其他同学来说怎么样,但对我来说却有些难,但我会努力。因为我认为它对我以后考计算机二级有很大的帮助。

很快这一学期马上就要结束了,数据库这一门课也很快就要结束了,但这一学期的学习让我知道了很多,也告诉了我在以后的人生中如何去做事,如何去做人。尤其是老师的耐心,老师的敬业精神感动了我,再做任何事时都应该认真负责,任何一个人都应该被尊重。

下载数据库 sql 习题及答案(合集五篇)word格式文档
下载数据库 sql 习题及答案(合集五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据库习题与答案

    一.选择题: 1. 日志文件是用于记录( ) A.程序运行过程 B.数据操作 C.对数据的所有更新操作 D.程序执行的结果 答案:C (114) 2. 利用查询分析器,能( ) A.直接执行SQL语句 B.提交SQL......

    数据库习题与答案

    一.选择题: 1. 数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。在常用的数据模型中,不包括( ) A.网状模型 B.链状模型 C.层次模型 D.关系模型 答案:B (1......

    数据库应用习题及答案

    数据库应用习题及答案 4、在下述关于数据库系统的叙述中,正确的是 A. 数据库中只存在数据项之间的联系 B. 数据库的数据项和记录之间都存在联系 C. 数据库的数据项之间......

    SQL数据库期末考试题及答案[五篇模版]

    sql数据库期末考试题及答案 一、单选题(共 10 道试题,共 50 分。)1. SQL Server中,保存着每个数据库对象的信息的系统表是( C)。 A. sysdatabases B. Syscolumns C. Sysobjects D.......

    数据库sql课后练习题及答案解析

    先创建下面三个表: (book表) (borrow表) (reader表) 1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。 2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。 3) 查......

    SQL Server数据库试题七及答案

    SQL Server数据库试题七及答案 一.单项选择题(每题2分,计30分) 1._______是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。(c ) A、操作系统 B、关系模型 C、数......

    SQL Server数据库试题九及答案

    一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:( ) A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的( )。 A.......

    SQL Server数据库试题九及答案

    SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:( ) A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE 2、SQL数据库......