使用SQL语句在学生管理数据库中创建学生选择专业的"基本"数据表形式 如何写出这个问题的实践报告

使用SQL语句在学生管理数据库中创建学生选择专业的"基本"数据表形式 如何写出这个问题的实践报告,第1张

为了大家更容易理解我举出的SQL语句,本文假定已经建立了一个学生成绩管理数据库,全文均以学生成绩的管理为例来描述。

1在查询结果中显示列名:

a用as关键字:select name as '姓名' from students order by age

b直接表示:select name '姓名' from students order by age

2精确查找:

a用in限定范围:select from students where native in ('湖南', '四川')

bbetweenand:select from students where age between 20 and 30

c“=”:select from students where name = '李山'

dlike:select from students where name like '李%' (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:'%李%';若是第二个字为李,则应为'_李%'或'_李'或'_李_'。)

e[]匹配检查符:select from courses where cno like '[AC]%' (表示或的关系,与"in()"类似,而且"[]"可以表示范围,如:select from courses where cno like '[A-C]%')

3对于时间类型变量的处理

asmalldatetime:直接按照字符串处理的方式进行处理,例如:

select from students where birth > = '1980-1-1' and birth <= '1980-12-31'

4集函数

acount()求和,如:select count() from students (求学生总人数)

bavg(列)求平均,如:select avg(mark) from grades where cno=’B2’

cmax(列)和min(列),求最大与最小

5分组group

常用于统计时,如分组查总数:

select gender,count(sno)

from students

group by gender

查看男女学生各有多少)

注意:从哪种角度分组就从哪列"group by"

对于多重分组,只需将分组规则罗列。比如查询各届各专业的男女同学人数,那么分组规则有:届别(grade)、专业(mno)和性别(gender),所以有"group by grade, mno, gender"select grade, mno, gender, count()

from students

group by grade, mno, gender

通常group还和having联用,比如查询1门课以上不及格的学生,则按学号(sno)分类有:

select sno,count() from grades

where mark<60

group by sno

having count()>1

6UNION联合

并查询结果,如:

SELECT FROM students

WHERE name like ‘张%’

UNION [ALL]

SELECT FROM students

WHERE name like ‘李%’

7多表查询

a内连接

select gsno,sname,ccoursename

from grades g JOIN students s ON gsno=ssno

JOIN courses c ON gcno=ccno

(注意可以引用别名)

b外连接

b1左连接

select coursescno,max(coursename),count(sno)

from courses LEFT JOIN grades ON coursescno=gradescno

group by coursescno

左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。

左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。

b2右连接

与左连接类似

b3全连接

select sno,name,major

from students FULL JOIN majors ON studentsmno=majorsmno

两边表中的内容全部显示

c自身连接

select c1cno,c1coursename,c1pno,c2coursename

from courses c1,courses c2 where c1pno=c2cno

采用别名解决问题。

d交叉连接

select lastname+firstname from lastname CROSS JOIN firstanme

相当于做笛卡儿积

8嵌套查询

a用关键字IN,如查询李山的同乡:

select from students

where native in (select native from students where name=’ 李山’)

b使用关键字EXIST,比如,下面两句是等价的:

select from students

where sno in (select sno from grades where cno=’B2’)

select from students where exists

(select from grades where

gradessno=studentssno AND cno=’B2’)

9关于排序order

a对于排序order,有两种方法:asc升序和desc降序

b对于排序order,可以按照查询条件中的某项排列,而且这项可用数字表示,如:

select sno,count() ,avg(mark) from grades

group by sno

having avg(mark)>85

order by 3

10其他

a对于有空格的识别名称,应该用"[]"括住。

b对于某列中没有数据的特定查询可以用null判断,如select sno,courseno from grades where mark IS NULL

c注意区分在嵌套查询中使用的any与all的区别,any相当于逻辑运算“||”而all则相当于逻辑运算“&&”

d注意在做否定意义的查询是小心进入陷阱:

如,没有选修‘B2’课程的学生 :

select students

from students, grades

where studentssno=gradessno

AND gradescno <> ’B2’

上面的查询方式是错误的,正确方式见下方:

select from students

where not exists (select from grades

where gradessno=studentssno AND cno='B2')

11关于有难度多重嵌套查询的解决思想:

如,选修了全部课程的学生:

select

from students

where not exists ( select

from courses

where NOT EXISTS

(select

from grades

where sno=studentssno

AND cno=coursescno))

最外一重:从学生表中选,排除那些有课没选的。用not exist。由于讨论对象是课程,所以第二重查询从course表中找,排除那些选了课的即可。

数据管理和维护是执行方法。

数据管理是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用。实现数据有效管理的关键是数据组织。

随着计算机技术的发展,数据管理经历了人工管理、文件系统、数据库系统三个发展阶段。在数据库系统中所建立的数据结构,更充分地描述了数据间的内在联系,便于数据修改、更新与扩充,同时保证了数据的独立性、可靠、安全性与完整性,减少了数据冗余,故提高了数据共享程度及数据管理效率。

扩展资料

1、人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算,这一阶段数据管理的主要特征是:

(1)不能长期保存数据。在20世纪50年代中期之前,计算机一般在关于信息的研究机构里才能拥有,当时由于存储设备(纸带、磁带)的容量空间有限,都是在做实验的时候暂存实验数据,做完实验就把数据结果打在纸带上或者磁带上带走,所以一般不需要将数据长期保存。

(2)数据并不是由专门的应用软件来管理,而是由使用数据的应用程序自己来管理。作为程序员,在编写软件时既要设计程序逻辑结构,又要设计 [3]  物理结构以及数据的存取方式。

(3)数据不能共享。在人工管理阶段,可以说数据是面向应用程序的,由于每一个应用程序都是独立的,一组数据只能对应一个程序,即使要使用的数据已经在其他程序中存在,但是程序间的数据是不能共享的,因此程序与程序之间有大量的数据冗余。

(4)数据不具有独立性。应用程序中只要发生改变,数据的[4]逻辑结构或物理结构就相应的发生变化,因而程序员要修改程序就必须都要做出相应的修改,给程序员的工作带来了很多负担。

2、文件系统阶段

20世纪50年代后期到60年代中期,计算机开始应用于数据管理方面。此时,计算机的存储设备也不再是磁带和卡片了,硬件方面已经有了磁盘、磁鼓等可以直接存取的存储设备了。软件方面, *** 作系统中已经有了专门的数据管理软件,一般称为文件系统,文件系统一般由三部分组成:

与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。文件系统阶段存储数据就是以文件的形式来存储,由 *** 作系统统一管理。文件系统阶段也是数据库发展的初级阶段,使用文件系统存储、管理数据具有以下4个特点:

(1)数据可以长期保存。有了大容量的磁盘作为存储设备,计算机开始被用来处理大量的数据并存储数据。

(2)有简单的数据管理功能。文件的逻辑结构和物理结构脱钩,程序和数据分离,是数据和程序有了一定的独立性,减少了程序员的工作量。

(3)数据共享能力差。由于每一个文件都是独立的,当需要用到相同的数据时,必须建立各自的文件,数据还是无法共享,也会造成大量的数据冗余。

(4)数据不具有独立性。在此阶段数据仍然不具有独立性,当数据的结构发生变化时,也必须修改应用程序,修改文件的结构定义;而应用程序的改变也将改变数据的结构。

3、数据库系统阶段

20世纪60年代后期以来,计算机管理的对象规模越来越大,应用范围又越来越广泛,数据量急剧增长,同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。

用数据库系统来管理数据比文件系统具有明显的优点,从文件系统到数据库系统,标志着数据库管理技术的飞跃。

你好

北京自考实践课程由主考院校进行,历年真题都是学校出题,网上更是没有。这是一份北邮的实践指导书,希望对你有所帮助。

北京自考《数据库系统原理》实践环节考核指导

(2008年9月修订)

1、类型

课程实验考核

2、目的与要求

本课程是一门理论与实际紧密结合、实践性强的课程。通过上机实践,帮助学生加深对课程的理解,更好地掌握数据库技术,并达到应用的目的,进而培养他们全面掌握所学知识,在实践中培养独立分析和解决问题的能力。

本课程的主要考核目标是检查学生利用SQL语言解决问题的能力,强调测试学生利用SQL语句完成基本的数据定义和数据 *** 作的技能,检查学生设计和运用SQL语言解决实际问题的能力。

3、考核环境

l *** 作系统:Windows2000

l 数据库管理系统:SQL Server 2000中文版

4、考核内容

l SQL Server 2000的企业管理器、查询设计器;

l 其他类型数据库的导入与导出(主要是Access类型数据库);

l 数据库的创建和修改;

l 基本表的创建和修改(要求使用SQL语句完成);

l 基本表中数据的管理(要求使用SQL语句完成):INSERT命令、UPDATE命令、DELETE命令;

l 数据的检索(要求使用SQL语句完成):单表查询、连接查询、计算查询、分组查询等;

l 索引、存储过程和视图的创建(要求使用SQL语句完成);

l 创建登陆标识并设置 *** 作数据库权限;

l ODBC的概念与配置。

5、考核时间

考试时间为60分钟。

6、考核形式和方法

采用闭卷机考形式,考生首先登录考试服务器,阅读考试要求,在考试文件夹D:\2008ks下完成指定的开发要求,所有答案都直接做在文件夹d:\2008ks内,最后根据考试要求把答案文件上传到考核服务器上考生自己的文件柜中(上传的答案文件不要压缩打包)。

请认真阅读“考试系统”使用说明。

 要说数据库,一般以SQL Server作为入门的学科,它适合中小型项目开发,而现在比较流行于大型开发的有:\x0d\Oracle\x0d\现在具有企业大型软件的绝对占有率\x0d\DB2 在以IBM服务的公司以及单位(中国银行)\x0d\MySql 相对不是很正式的开发,使用MySql\x0d\当然还有一些:Access(桌面数据库),FoxPro(中国教育),Informix的数据库系统\x0d\刚开始入门的时候可以找点视频教程来学习,视频教程一般讲得比较好,但不要企图于通过它达到比较高的水平。然后要学会将自己所知道的去实践,多实践。当觉得实践到一定程度而没有什么冲劲了,就去学习理论,当觉得理论知识需要发挥的时候就去实践,时间的周期不一定,没有什么定论,但自己的时间安排需要定论就可以了。\x0d\我一直都认为在计算机行业要学会一门技术太简单了,但如果要把技术发挥到一定程度就有难处了,一定程度是什么意思,就是把技术如何发挥到具体的业务之中,会动脑筋去思考,而把技术作为相对次要的东西了。\x0d\数据库的DBA人员需要兼有系统分析员和运筹学的业务素质。在技术上讲,我个人认为数据库的前续学科是“数据结构”。\x0d\我现在刚学SQL Server一段时间,就自己的感想谈谈:\x0d\1数据库是非常快的数据处理程序,其内在的本质依旧是"文件"因为\x0d\Windows *** 作系统管理机制就有:磁盘、文件、目录。Linux的方式只有文件。所以数据库重本质的角度来说是一种平台软件,是将文件翻译成逻辑语言的软件,成为我们软件程序数据交换的中心,为什么那,一个很重要的原因就是“快”,还有就是“安全”、“集成”等等。因为以前的语言程序要处理数据要编写大量算法十分麻烦而且很容易出错等等。大家就想到集成了。。。。。\x0d\2其实,要谈到 *** 作数据库,简单的就太简单了,但是数据库最难的不是 *** 作,而是在数据库的设计上。一个大型程序设计者肯定是一个数据库的高手,因为大型程序要死板地去完成它是非常困难和不理智也是不安全不稳定的,我们要充分利用自己所有的能力去挖掘其数据之间的奥秘,然后体系化数据库结构,相当于在数据库中如何层次化地建立数据结构。将需求中的矛盾事物改变成可以相互融合的。\x0d\我说的数据库 *** 作简单是指一般 *** 作,如果难的 *** 作还是有点技术的,但还是难不到那里去。下面我把我的一个小数据库程序给你看看:(下面这个程序已经建立数据库library,然后用dbo用户建立了表relatBook,并将表的第一个字段设置为“主键”PK)\x0d\该程序想说的第一点是:程序按照标准用户写入法则写入。\x0d\另外就是在执行多个 *** 作的时候每一步骤的 *** 作我们都必须为其设置错误的回滚 *** 作。所以程序前两个段落都是一样的,在插入的时候故意出现异常,看第1和第3个语句是否能成功执行。\x0d\从上面看出点什么没有,你我执行了三个 *** 作,第一个 *** 作是肯定成功的,第二个是肯定失败的,第三个跟在后面,那么你想一想第一个和第三个 *** 作能插入数据库中吗?我这个程序没有什么意义,但只是未了说明问题。\x0d\答案是:不能。\x0d\为什么不能,这是SQL所支持的“事务”外完成的,这是技术问题,没有什么的,会了大家都会。为什么要这样做那,那才是要学习的前提。你想一想如果你建立了一个地区的帐物管理系统,当一个单位向另外一个单位转帐的时候,需要执行两个 *** 作就是将一边的信息刷掉,一边的信息添加上去,而当执行一半的时候出现了某种异常中断,比如高优先级的抢占,服务器重起、停电。当时你知道有多少人在访问你的服务器,那要造成多大的数据库信息丢失,甚至于导致数据库的查询的严重失败。那么我就知道需要上面知识的支持了。\x0d\3为什么说上面的东西都很简单那,因为只要你会,那就可以了,而设计方面的东西是永远不是那么简单的,永远带有创新和追求,没有最高的境界。\x0d\就一个十分常见的问题,如何在数据库中配合好人员、角色、权限、类别、级别、可 *** 作性这几者的关系,如果是没有经验的人直接上手可能会乱来(我们最早也是这样的)。有经验的人也会设计一段时间,而且随着软件复杂性的增加,其数据库的这几者之间的复杂性就越来越复杂。所以大型软件是非常难的。就一个很简单的例子,在很多的网站中,有上百的栏目信息,而每一个栏目间又保持独立。的位置和的信息都是动态更新的。某些网站的可 *** 作性都以树型结构提供,而树型结构的子树类别和和叶子都是不重复而不错误。而且其层数都是动态的。有些人给我说可以通过前台的判定语句来执行树型结构的生成,但我问了一个问题,如果是一个邮政编码系统,有几十万个邮政编码你在前台要写多少个case语句,而且每一次要遍历一次已经生成的树,还有用前台的case语句编写出来的树型结构其二级子树全部“定死”,而且树型结构的层树也被定死。这不是完全动态级别的网站。为以后对网站的维护带来麻烦。\x0d\总之,数据库是一门入门容易却达到高手很难的学科,通过不断在失败中吸取经验,才能得到一些书籍上无法学会的东西,那才是真正的高手。也就是说,学技术是很快的,要会将技术运用于实际的业务分析,才可以成为一个自我型的DBA,而不是一个简单的程序员。

以上就是关于使用SQL语句在学生管理数据库中创建学生选择专业的"基本"数据表形式 如何写出这个问题的实践报告全部的内容,包括:使用SQL语句在学生管理数据库中创建学生选择专业的"基本"数据表形式 如何写出这个问题的实践报告、在数据生命周期管理实践中什么是执行方法、求 北京自考 数据库系统原理(实践考核)历年试题及答案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9509783.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存