当前位置:文档之家› sql数据库实例(数据库入门)word版本

sql数据库实例(数据库入门)word版本

sql数据库实例(数据库入门)word版本
sql数据库实例(数据库入门)word版本

s q l数据库实例(数据

库入门)

数据库设计及应用实验

一、实验内容

创建数据库:包括Student, Course, Enroll, Statistics表,表的结构如下:

Student (sno, sname, age, sex)

Course (cno, cname, credit)

Enroll (sno, cno, grade)

Statistics (sno, cNumber, creditSum)

说明:cNumber是sno学生选修课程的数目;creditSum是sno学生选修课程的总学分。

1、设计并在MS SQL Server 2000中创建以上表结构,并设置完

整性约束。

2、查询所有选修课程的学生的基本信息、课程信息及相应的考试

成绩。

3、查询所有学生的信息,若已选课就还要给出选修课程的信息及

考试成绩。

4、查询所有课程的信息,若课程有学生选修就还要给出选修课程

的学生的信息及考试成绩。

5、查询选修名为“数据库”的课程的考试成绩最高的学生的信息。

6、对Student的age创建规则,满足18≤age≤25,并给出验证实例

及验证结果。

7、创建触发器:当学生选修一门新的课程后,Statistics表的

cNumber自动加1,且creditNumber自动增加新选课程的学分。

8、创建视图:找出所有已修学分超过6、所修课程平均分不低于

60的学生的基本信息、以及所修课程的平均分。按照平均分排序,若平均分相同按照学号排序。

9、对于如下一组数据操作:

(1)select * from course;

(2)select * from course where cname=’数据库’

(3)select * from course where credit=3

(4)select * from course where credit>2 and credit<5

(5)update course set credit=3 where credit=2

对Course表的credit属性创建索引,并给出上述查询在创建了该索引后的执行计划;

去掉Course表的credit属性上创建的索引,并给出上述查询的执行计划。

对上述有无索引个查询执行的情况进行对比分析,总结出什么时候索引有效?

10、将表Student、Course、Enroll作内连接的结果发布为HTML

网页格式。

二、实验步骤及分析过程

1、设计并在MS SQL Server 2000中创建以上表结构,并设置完整性约束。

(1)创建数据库SC。

SQL语句为:create database SC 创建后的数据库如图1。

图1 创建数据库的结

(2)创建表

创建学生表:

create table Student(

sno varchar(10) not null primary key,

sname varchar(50) not null,

age int,

sex varchar(2) not null

)

创建课程表:

create table Course(

cno varchar(10) not null primary key,

cname varchar(50) not null,

credit int not null

)

创建注册表:

create table Enroll(

sno varchar(10) not null

references Student(sno),

cno varchar(10) not null

references Course(cno),

grade int,

primary key (sno,cno)

)

创建选课情况表:

create table Statisticss(

sno varchar(10) not null primary key

references Student(sno),

cNumber int not null,

creditSum int not null,

)

创建后的表如图2。

图2 创建表的结果

(3)插入数据

Student表:

insert into Student values ('2008001','李贵斌',22,'男') insert into Student values ('2008002','冉从宝',21,'男') insert into Student values ('2008003','杨文学',20,'男') insert into Student values ('2008004','杨璐',22,'女') insert into Student values ('2008005','李小萌',20,'女')

Course表:

insert into Course values ('001','数据库',4)

insert into Course values ('002','java',3)

insert into Course values ('003','操作系统',5)

insert into Course values ('004','软件工程',4)

insert into Course values ('005','计算机英语',2)

Enroll表:

insert into Enroll values ('2008001','001',89) insert into Enroll values ('2008002','003',98) insert into Enroll values ('2008003','002',85) insert into Enroll values ('2008001','004',88) insert into Enroll values ('2008004','001',89) insert into Enroll values ('2008002','001',90) insert into Enroll values ('2008003','003',78) insert into Enroll values ('2008002','004',79)

(4)查看表的内容

select * from Student 结果如图3。

图3表Student中的

select * from Course 结果如图4。

图4 表Course中的

select * from Enroll 结果如图5。

2、查询所有选修课程学生的基本信息、课程信息及相应的考试成绩。

SQL 语句为:

select a.sno,a.sname,a.age,a.sex,https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,b.credit,c.grade from Student a,Course b,Enroll c where a.sno=c.sno and https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o 执行结果如图6所示。

执行结果分析:只显示了选了课程的学生信息。

3、查询所有学生的信息,若已选课就还要给出选修课程的信息及考试成绩。

SQL 语句为:

select a.sno,a.sname,a.sex,a.age,https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,d.credit,d.grade from Student a left outer join (select https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,b.credit,c.grade,c.sno from Course b,Enroll c where https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o)d on a.sno=d.sno 执行结果如图7所示。

图5 表Enroll 中的

图6 选修课程的学生、课程及成绩

执行结果分析:不但列出选了课程的学生而且还列出来没选课程的学生信息。

4、查询所有课程的信息,若课程有学生选修就还要给出选修课程的学生的信息及考试成绩。

SQL 语句为:

select https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,a.credit,d.sno,d.sname,d.sex,d.age,d.grade from Course a left outer join (select b.sno,b.sname,b.age,b.sex,c.grade,https://www.doczj.com/doc/7917767419.html,o from Student b,Enroll c where b.sno=c.sno)d on https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o 执行结果如图8所示。

执行结果分析:不但列出被选课程的信息和学生选课情况而且还列出来没被选课程的信息。

5、查询选修名为“数据库”的课程的考试成绩最高的学生的信息。 (1)先查看选了数据库课程的学生信息。

图7 所有学生选课情况及成绩信息

图8 所有课程、选课的学生及成绩

SQL语句为:

select a.sno,a.sname,a.sex,a.age,https://www.doczj.com/doc/7917767419.html,ame,c.grade

from Student a,Course b,Enroll c

where a.sno=c.sno and https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o and https://www.doczj.com/doc/7917767419.html,ame='数据库' 执行结果如图9所示。

执行结果分析:有三位学生选修了数据库课程。

(2)查询选修“数据库”课程的考试成绩最高的学生的信息。

SQL语句为:

select a.sno,a.sname,a.sex,a.age,https://www.doczj.com/doc/7917767419.html,ame,d.grade

from Student a ,

(select https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,c.grade,c.sno from Course b,Enroll c

where https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o and https://www.doczj.com/doc/7917767419.html,ame='数据库' ) d

where a.sno=d.sno and d.grade=(select max(grade)

from (select https://www.doczj.com/doc/7917767419.html,o,https://www.doczj.com/doc/7917767419.html,ame,c.grade

from Course b,Enroll c where https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o)d

where https://www.doczj.com/doc/7917767419.html,ame='数据库'

)

执行结果如图10所示。

执行结果分析:与图9结合比较,图10了列出了选修“数据库”课程成绩最高学生信息。

图9 选修“数据库”课程的学生信息

图10 选修“数据库”课程成绩最高学

6、对Student的age创建规则,满足18≤age≤25,并给出验证实例及验证结果。

(1)创建规则并且绑定它。

SQL语句为:

create rule age_rule as

@age>=18 and @age<=25

sp_bindrule age_rule,'Student.age'

(2)插入数据检验。

insert into Student values ('2008006','李志锋',20,'男')

(所影响的行数为 1 行)

insert into Student values ('2008007','李小龙',32,'男')

insert into Student values ('2008008','杨一民',17,'男')

服务器: 消息 513,级别 16,状态 1,行 1

列的插入或更新与先前的 CREATE RULE 语句所强制的规则冲突。该语句已终止。冲突发生于数据库 'SC',表 'Student',列 'age'。

语句已终止。

执行结果分析:规则设置成功。

7、创建触发器:当学生选修一门新的课程后,Statistics表的cNumber自动加1,且creditNumber自动增加新选课程的学分。SQL语句为:

create trigger insert_statisticss on Enroll

for insert as

begin

update a set

cNumber=cNumber+d.countCno,creditSum=creditSum+d.sumCredit from Statisticss a inner join

(select b.sno,count(https://www.doczj.com/doc/7917767419.html,o) as countCno,sum(c.credit)

as sumCredit from inserted b

inner join Course c on https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o

group by b.sno)d

on a.sno=d.sno

insert Statisticss select b.sno,count(https://www.doczj.com/doc/7917767419.html,o) as countCno,sum(c.credit) as sumCredit

from inserted b inner join Course c on https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o

where sno not in (select distinct sno from Statisticss)

group by b.sno

end

没有在Enroll表插入任何数据时表为空,如图11所示。

在Enroll表插入以下数据:

insert into Enroll values ('2008001','005',70)

insert into Enroll values ('2008006','001',59)

插入数据后的结果如图12所示。

执行结果分析:当在Enroll表中插入选课情况时,在表上建立的触发器insert_statisticss就被触发,进行cNumber自动加1和creditNumber自动增加新选课程的学分。

图11 表Statisticss的初始信

图12 表Statisticss的信息

8、创建视图:找出所有已修学分超过6、所修课程平均分不低于60的学生的基本信息、以及所修课程的平均分。按照平均分排序,若平均分相同按照学号排序。

SQL语句为:

create view Transcript as

select top 10 d.sno,d.sname,d.sex,d.age,d.avg_grade,d.creditSum

from (select a.sno,a.sname,a.age,a.sex,avg(grade)

as avg_grade,sum(credit) as creditSum

from Student a,Course b,Enroll c

where a.sno=c.sno and https://www.doczj.com/doc/7917767419.html,o=https://www.doczj.com/doc/7917767419.html,o

group by a.sno,a.sname,a.sex,a.age

)d

where avg_grade>=60 and creditSum>6

order by avg_grade,d.sno

select *from Transcript

执行结果如图13所示。

图13 Transcript视图表

执行结果分析:列出的学生都按平均成绩大小从低到高排列且平均分都大于60.当平均分相同时,表中冉从宝和杨璐就按照学号大小从小低到高排列。

9、对照对Course表的credit属性创建索引和去掉Course表的credit 属性上创建的索引查询的执行计划。

对Course表的credit属性创建索引为:

create index credit_index on Course(credit)

(1) 对比有无索引credit_index 情形下, “select * from Course ”的查询的执行

计划分别如图14、图15所示。

结果分析:由图14,、图15可知当查询是针对整个表进行,创建索引和不创建索引,查询的执行计划都是一样的。

图14 有索引情形下的查

图15 无索引情形下的查

(2)对比有无索引credit_index 情形下, “select * from course where cname=’数据库’”的查询的执行计划分别如图16、图17所示。

结果分析:由图16,、图17可知当条件针对的字段不是创建了索引的那个字段时,索引是无效的。有索引和无索引,查询的执行计划都是一样的。

(3)对比有无索引credit_index 情形下, “select * from course where credit=3 ”的查询的执行计划分别如图18、图19所示。

16

有索引情形下的查

图17 无索引情形下的查

结果分析:由图18,、图19可知where条件为credit的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。

(4)对比有无索引credit_index情形下,“select * from course where credit>2 and credit<5”的查询的执行计划分别如图20、图21所示。

结果分析:由图20,、图21可知where 条件为credit 的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。

(5)对比有无索引credit_index 情形下, “update course set credit=3 where credit=2”的查询的执行计划分别如图22、图23所示。

结果分析:由图20,、图21可知where 条件为credit 的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。

索引小结:

图20 有索引情形下的查

图21 无索引情形下的查

图22 有索引情形下的查

图23 无索引情形下的查

①索引是对数据库表中的一列或多列的值进行排序的结构,有助于更快地获取信息。

②只有当经常查询索引列中的数据时,才需要创建索引。

③折衷:索引提高查询速度 vs. 索引占用磁盘空间,降低数据更新执行速度。

④若应用中大多数是数据更新操作(插入、删除和修改)。则应限制索引的数量。

10、将表Student、Course、Enroll作内连接的结果发布为HTML网页格式。

(1)在企业管理器的控制台中选中SC数据库,“工具”→“向导”→“管理”→“web助手向导”如图24所示。

图24 启动Web助手向导

(2)点击“下一步”,选择数据库SC如图25所示。

图25 选择数据库SC

(3)在选择SC数据库后,单击“下一步”,选择和设置如图26所示。

图26 Web作业命名和设

(4)单击“下一步”,在弹出的“编写Transact-SQL查询”对的话框中的文本框中输入表Student、Course、Enroll作内连接的查询语句,如图27所示。

(5)单击“下一步”,设置调度Web

助手作业,如图28所示。

(6)单击“下一步”,设置调度更新间隔,如图29所示。

图27 表Student 、Course 、Enroll 作内连接的查

图28 设置调度Web 助手作业

SQL数据库基础知识集合

1、数据库简介: 数据库是专门开发数据管理的软件,或者说专门管理数据的软件就是数据库。 数据库存在的意义就是:减轻开发人员的负担。数据库是一个综合的软件,那么我们不需要队要进行2进制保存数据进行处理了,但是却是要与数据库产生交互,那么命令式SQL,有技巧的,数据库就是万物皆关系(面向对象,万物皆是对象)有所区别。 2、数据库的发展: 一开始的是层次化的数据与网状数据库,后来也发现使用确实很麻烦。 于是到了1970年EF.Cold博士(IBM公司的研究员)开创了关系性的数据库的先驱,发表了关系性数据库的论文,但是由于当时电脑硬件的局限性,大家觉得跑如此大的程序不值得。后来,Oracle(甲骨文)公司的创始人,拉里带领Oracle投入到关系型数据库的研发,并且得到了一个大客户—美国国防部。随即开始世界刮起了关系数据库的旋风,随后各个公司都纷纷推出自己的数据库系统。比如:IBM的DB2 ,还有风靡一时的DBS3。 但是随即出现不兼容的问题,由于最早的时候都没有进行没规范。所以到最后各个数据库巨头统一了操纵数据库的SQL(结构化Struct数据查询语言)变成了标准语言,而关系型数据库也俨然变成大家的宠儿,Oracle也从一个小公司,变成现在的数据库巨头,而我们的微软也推出了SQLServer。当然还有PHPer的最爱mySQL。但是mySQL被SUN,SUN 被Oracle收购,现在有免费版与收费专业版了。所以我们学习SQL语言的时候,先学共同点,再学特异性。各种数据库软件在使用上有一点区别。 3、数据库系统详解: 为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成: 数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。(个体) 数据库管理系统(DBMS)。一组能完成描述、管理、维护子数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。 数据库管理员(DBA)。 用户和应用程序。(微软的称作SSMS) 4、数据库系统的基本要求是: 1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。 2、冗余数据少,数据共享程度高。 3、系统的用户接口简单,用户容易掌握,使用方便。 4、能够确保系统运行可靠,出现故障时能迅速排除,能够保护数据不受非受权者访问或破坏,能够防止错误数据的产生,一旦产生也能及时发现。 5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。 6、具有可修改性和可扩充性、可维护性。 7、能够充分描述数据间的内在联系。 5、数据库(Database): 由众多的数据、数据表、约束、存储过程、函数、视图、索引构成的一个数据存储与交互单元,是按照数据结构来组织、存储和管理数据的仓库。 6、数据表(table): 数据表,实际上是一个二维表。一般是围绕一个事务、动作记录,或者是一个信息主题作为一个数据表。数据表由行与列构成。 7、列(column、field): 列,其实就是字段。也是决定了信息的基本单元。列,包含有数据类型的设定。 8、行(row、record): 行,实际上就是一条基本信息。一行包含了多列数据的存储的信息。所以一行也有一条记录之称。 9、行业(trade) 一个行业一种需求,没一个需求每一种数据库的设计模式与思想。每个行业的数据设计的重点都是不同的。侧重查询(要求低范式)还是操作(要求搞范式)就是自己选择的问题了。 10、索引(index) 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引其实就是一个B+树,但是这个索引是N^n层数次方的。目的就是在数据库中划分出一定的区域优化查询。可以提升大量数据的查询速度。索引一般可以分为:基于字段优化查询速度的普通索引、唯一性索引、主键索引、全文索引、单列与多列索引。现在由于数据库系统的不断升级,我们只要设定索引就可以了,不需要特殊的维护。而且数据在查询的时候也会根据查询适当地选择是利用索引查询,还是仅仅是表查询。由于数据库系统的发展,系统内部已经自动帮我们完成对索引的维护。但是在设计的时候要考虑到索引的损耗问题。数据库DB就像是一个字典,索引就是根据指定字段制成的快速指向。由于只是指向数据对象标识,真正的数据是存储在DB中,所以查询速度极快。但是额外的内存与硬盘花销也是一个需要考虑的问题。比如:增加、删除、修改时数据库都要对索引进行维护,但是这样也是为了最后查询的效率的提升,特别适合W行级别的数据查询。而索引可以分为:隐式索引(针对单个字段)、唯一索引(唯一约束)、函数索引(函数(字段))、聚簇索引(主键)、组合索引(最多16个field)与全文索引(text)。一般索引会占用原数据库大小的20%。 11、视图(view) 固化的子查询,将一个子查询起了一个固化的名字,保存在数据库中,方便以后的使用。其实调用大量的Join来进行一个查询一般也是用视图。视图与索引都是为了优化查询的速度与语句。视图是优化语句,索引是优化单查速度。一般是DBA来设定数据库的视图,封装内部数据库的数据关系,范式修改数据容易了,视图让我们查询复杂关系的数据变得容易。 12、触发器(trigger) 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 13、SQLServer数据类型详解

SQLserver数据库课程设计范例

1 概述 1.1课题简介 书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。1.2设计目的 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 1.3设计内容 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型 2 需求分析 2.1功能分析 首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。 图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等; 供应商信息:供应商名称、地址、电话,联系人; 客户信息:客户编号、名称、年龄、性别、累计购书金额等; 销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。 在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

sql数据库示例,适合初学者

一、数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。(文件系统) 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 二、数据库的安装与配置 * 安装 * 参照图解 * 一路下一步 * 配置 * 参照图解 * 到选择字符集时停 登录Mysql: mysql -u root -p abc * 卸载 1.停止mysql服务net stop mysql 启动mysql服务net start mysql 2.卸载mysql 3.找到mysql 安装目录下的my.ini datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 修改密码 运行cmd * 安装成功了打开cmd --> mysql -uroot -p你的密码 * 修改mysql root用户密码 1) 停止mysql服务运行输入services.msc 停止mysql服务 或者cmd --> net stop mysql 2) 在cmd下输入mysqld--skip-grant-tables 启动服务器光标不动(不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

SQL数据库实训示例

附录: SQL数据库实训示例--------客房管理系统设计 ●本系统要求实现以下主要功能: 1.数据录入功能 在本系统中提供客人信息登记功能。可以录入客人的姓名、性别、年龄、身份证号码、家庭住址、工作单位、来自地的地名、入住时间、预计入住天数、客房类别、客房号、离店时间以及缴纳押金金额等信息。在客人退房时,系统根据输入的离店时间及客房单价自动计算客人住宿费金额。 2.数据查询功能 系统需要提供以下查询功能: (1)查某类客房的入住情况及空房情况,显示所有该类客房空房数目和客房号。 (2)根据客人姓名、来自地的地名、工作单位或家庭住址等信息查询客人信息;根据客房号查询入住客人的信息。 (3)查询某个客人住宿费用情况,显示客人缴纳押金金额、实际入住天数、客房价格、实际住宿费、住宿费差额及余额等信息。 (4)查询所有入住时间达到或超过预计入住天数的客人。 3.数据统计功能 (1)统计一段时间内各类客房的入住情况。 (2)统计全年各月份的客房收入。 (3)统计一段时间内各类客房的入住率。 ●系统的实现 1.数据库概念设计 数据库的概念设计就是画出E-R图。 分析前面的系统功能要求,需要一个表来存储和管理客人信息,使系统能够接受客人入住时输入的各项数据,以实现数据录入、查询或统计客人信息等功能。客人是本系统的第一个实体。 为了能实现查询和统计客房入住情况等功能,必须有一个表来存储和管理所有客房的信息。客房是本系统的第二个实体。 客房价格是以客房的类型来制定的。需要建立一个表来记录各种客房类型的信息。它主要为各种查询和统计功能提供客房价格数据。客房类型是第3个实体。 据此可以绘出客房管理系统数据库的E-R图如下:

数据库基础知识和sql语句

第一章数据库基础知识 本章以概念为主,主要是了解数据库的基本概念,数据库技术的发展,数据模型,重点是关系型数据。 第一节:信息,数据与数据处理 一、信息与数据: 1、信息:是现实世界事物的存在方式或运动状态的反映。或认为,信息是一种已经被加工为特定形式的数据。 信息的主要特征是:信息的传递需要物质载体,信息的获取和传递要消费能量;信息可以感知;信息可以存储、压缩、加工、传递、共享、扩散、再生和增值 2、数据:数据是信息的载体和具体表现形式,信息不随着数据形式的变化而变化。数据有文字、数字、图形、声音等表现形式。 3、数据与信息的关系:一般情况下将数据与信息作为一个概念而不加区分。 二、数据处理与数据管理技术: 1、数据处理:数据处理是对各种形式的数据进行收集、存储、加工和传输等活动的总称。 2、数据管理:数据收集、分类、组织、编码、存储、检索、传输和维护等环节是数据处理的基本操作,称为数据管理。数据管理是数据处理的核心问题。 3、数据库技术所研究的问题不是如何科学的进行数据管理。 4、数据管理技术的三个阶段:人工管理,文件管理和数据库系统。 第二节:数据库技术的发展 一、数据库的发展:数据库的发展经历了三个阶段: 1、层次型和网状型: 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。 2、关系型数据型库: 目前大部分数据库采用的是关系型数据库。1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。 3、第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。 二、数据库技术的发展趋势: 1、面向对象的方法和技术对数据库发展的影响: 数据库研究人员借鉴和吸收了面向对旬的方法和技术,提出了面向对象数据模型。 2、数据库技术与多学科技术的有机组合: 3、面向专门应用领域的数据库技术 三、数据库系统的组成:

SQLServer数据库入门学习总结

SQL Server数据库入门学习总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2.数据库是如何操作数据的 insert,update,delete T-sql 函数存储过程触发器 3.数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库 数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型-- E-R图

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion 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

Oracle数据库实例的创建、删除与修改(doc 6页)

Oracle数据库实例的创建、删除与修改(doc 6页)

Oracle数据库实例的创建、删除、修改 以SUSE10SP2、Oracle10gR2为例。 本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概念,包括一些内存区域以及若干进程,数据库实例是对数据库进行操作的执行者。(20090714修改) 安装完Oracle数据库系统的安装后,需要创建数据库实例才能真正开始使用Oracle数据库服务。 总结起来,Oracle有三种创建数据库实例的方法。 第一种,最常用也最简单,那就是通过DBCA(Database Configuration Assistant),这是Oralce提供的一个图形界面的数据库实例配置工具,通过它可以创建、删除和修改数据库实例,它的使用也比较简单、易懂,交互式的图形界面操作,非常准确有效的提示与配置,是一个比较方便的创建数据库实例的方式。 按照DBCA给出的提示,很容易创建一个新数据库实例。 在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile文件或者命令行参数创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。

SQL数据库基本语法格式

基本语法格式 select(聚合函数)的语句格式:(这个不会考试就危险 了) select * from 表名 上面一句可以查出一张你指定表名的表里的全部东西,* 的位置可以替换其他的东西,比如:select 列 1 名, 列 2 名from 表名 这样你就可以只看表里列1,列2两列。还可以加COUNT(),YEAR(等函数,具体看 书吧!! 在后面可以接where,group by,order by 等 where 的用法: select * from 表名where 条件表达式 条件表达式就好比列 1 值>0 啊,列 2 值=0&0啊,之类的。这样我们就之看符合条件的。 group by 的用法: select 列名1,count(列名2) as ' 自定义列名' from 表名 group by 列名 1 这句就是把表里所有列名 1 相同的行集合成一行,顺便说下count(列名2) as ' 自定义列名' ,count()是总行数的意思,考试经常要和group by 一起用。如果要求总合用sum()这个函数。as '自定义列名’就是给列付个名字。如果要进一步筛选就在语句的最后加"HAVING 条件表达式"就可以了。 ORDER BY勺用法: select * from 表名[where 条件表达式] ORDER BY列名N 这样就是依照列名N的顺序排列了,最后加上DESC就是降序排列 连表查询 Select需要的列名1,需要的列名 2 ,……需要的列名N from 表1,表2 Where表1.某列=表2.某列and其他要求的条件表达式 以上就是连两个表的Select 语句, 你也可以连 3 或多个表,只要每个表和其他的表有联系就可以了。 如果上面的看不太懂我举个例子: 我们有2张表:B1,B2。B1里有“动画名称”和“时间”两列。B2里有“动画名称” 和“制作公司”两列。其中两个表的动画名称是对应的,现在要你显示出“动画名称”, “时间”和“制作公司” ,做法如下: SELECT B1. 动画名称, 时间, 制作公司from B1,B2 where B1. 动画名称= B2. 动画名称 ps: “SELECT B1. 动画名称, 时间, 制作公司”里面我要求返回3项,第一项因为两个表列名重复所以要前面加“表名. ” 如果上面的题目还要加条件,比如我们只要“制作公司”是“A”公司的,就这样写where 语句: where B1. 动画名称= B2. 动画名称AND 制作公司='A' update (更新)的语句格式: update 表名 set 列名 1 = xxx, 列名 2 = xx, ... 列名N = xx where 列名x =

SQl数据库快速入门必须掌握的四大基本语句

SQl数据库快速入门必须掌握的四大基本语句 做一个系统的后台,基本上都少不了增删改查,作为一个新手入门,我们必须要掌握SQL 四条最基本的数据操作语句:Insert,Select,Update和Delete!下面对这四个语句进行详细的剖析: 熟练掌握SQL是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是真正SQL入门了。 在我们开始之前,先使用CREATE TABLE语句来创建一个表。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。 INSERT语句 用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith 的记录插入到本例的表中,可以使用如下语句: INSERT INTO EMPLOYEES VALUES ('Smith','John','1980-06-10', 'Los Angles',16,45000); 通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。 我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。 如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL 提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。 回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。 同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。 对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。 既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分: INSERT INTO EMPLOYEES VALUES ('Bunyan','Paul','1970-07-04', 'Boston',12,70000); INSERT INTO EMPLOYEES VALUES

SQL Server数据库基础教程课后答案

1.SQL的特点是什么? (1)一体化的特点 (2)统一的语法结构,多种使用方式 (3)高度非过程化 (4)语言简洁 (5)客户机/服务器(Client/Server)结构 (6)支持异类复制 (7)Internet数据库功能的集成 2.关系数据库的主要模型有哪些? 关系模型:通过关系,按给定的选择条件,选出符合条件的元组,较灵活 层次模型:要查找一个记录必须从根记录开始,按给定条件沿一个层次路径进行查找网状模型:在查找语句中要说明查找的对象和存取的路径,操作较繁琐 3.简述文件和文件组的概念? 主要数据文件:该文件包含数据库的启动信息,并用于存储数据,扩展名是.mdf 文件组:为了方便数据的分配、放置和管理,SQL Server允许对文件进行分组处理。在同一个组里的文件组成文件组,然后,可以在文件组group上创建表。对表中 数据的查询将被分散到三个磁盘上,查询性能将得到提高 4.日志文件的作用是什么? 事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的开始。 这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个日志文件,扩展名是.ldf 5.数据库的表的作用是什么? 数据库—表—记录—字段—属性 6.数据库允许有哪些数据类型?它们的范围是多少?并说明含义?

整型数据类型: (1) bigint:占8字节的存储空间,存储数据范围为-263~263-1。 (2) int:占4字节的存储空间,存储数据范围为-231~231-1。 (3) smallint:占2字节的存储空间,存储数据范围为-215~215-1。 (4) tinyint:占1字节的存储空间,存储数据范围为0~255。 Unicode字符数据 使用Unicode数据类型,列可存储由Unicode标准定义的任何字符,包含由不同字符集定义的所有字符 nvarchar 列大小不固定<4000个字符数 nchar 列大小固定<4000个字符数 ntext >4000个字符数

SQL-入门新手教程(重要)

SQL-入门新手教程(重要)

SQL 是用于访问和处理数据库的标准的计算机语言。 什么是SQL? ?SQL 指结构化查询语言 ?SQL 使我们有能力访问数据库 ?SQL 是一种ANSI 的标准计算机语言编者注:ANSI,美国国家标准化组织SQL 能做什么? ?SQL 面向数据库执行查询 ?SQL 可从数据库取回数据 ?SQL 可在数据库中插入新的纪录 ?SQL 可更新数据库中的数据 ?SQL 可从数据库删除记录 ?SQL 可创建新数据库 ?SQL 可在数据库中创建新表 ?SQL 可在数据库中创建存储过程 ?SQL 可在数据库中创建视图 ?SQL 可以设置表、存储过程和视图的权限 SQL 是一种标准- 但是... SQL 是一门ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的SQL 语言,但是为了与ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。注释:除了SQL 标准之外,大部分SQL 数据库程序都拥有它们自己的私有扩展! 在您的网站中使用SQL 要创建发布数据库中数据的网站,您需要以下要素: ?RDBMS 数据库程序(比如MS Access, SQL Server, MySQL) ?服务器端脚本语言(比如PHP 或ASP) ?SQL ?HTML / CSS

数据库基本知识和基础sql语句

数据库的发展历程 ●没有数据库,使用磁盘文件存储数据; ●层次结构模型数据库; ●网状结构模型数据库; ●关系结构模型数据库:使用二维表格来存储数据; ●关系-对象模型数据库; 理解数据库 ●RDBMS = 管理员(manager)+仓库(database) ●database = N个table ●table: ●表结构:定义表的列名与列类型! ●表记录:一行一行的记录! Mysql安装目录: ●bin目录中都就是可执行文件; ●my、ini文件就是MySQL的配置文件; 相关命令: ●启动:net start mysql; ●关闭:net stop mysql; ●mysql -u root -p 123 -h localhost; ?-u:后面的root就是用户名,这里使用的就是超级管理员root; ?-p:后面的123就是密码,这就是在安装MySQL时就已经指定的密码; ●退出:quit或exit; sql语句 语法要求 ●SQL语句可以单行或多行书写,以分号结尾; ●可以用空格与缩进来来增强语句的可读性; ●关键字不区别大小写,建议使用大写; 分类 ●DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; ●DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); 基本操作 ●查瞧所有数据库名称:SHOW DATABASES; ●切换数据库:USE mydb1,切换到mydb1数据库; ●创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1; ●修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8 ●创建表: CREATE TABLE 表名( 列名列类型,

数据库基本SQL语句大全

数据库基本_SQL语句大全 学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\‘ --- 开始备份 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 范围

SQLserver2008数据库课程设计范例——学生成绩管理系统报告

数据库技术与应用 课程设计说明书 题目:学生成绩管理系统 院系: 专业班级: 学号: 学生姓名: 指导教师: 2014年 12 月 22 日 一概述 1.1目的与要求

随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。 1.2设计环境 ① Microsoft SQL Server 2000 ② Microsoft Visual C++ 6.0 二需求分析 2.1 系统功能要求设计 此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完 整性,并发控制,备份和恢复等方面的功能要求。 2.2 系统模块设计 成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 用户 验证

SQL语句创建学生信息数据库表的示例

用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示 Student表结构

Create table Student ( Sno varchar(7) primary key, Sname varchar(10) not null, Ssex char (2) check(Ssex=‘男’or Ssex=’女’), Sage int check(Sage between 15 and 45), Sdept varchar(20) default(‘计算机系’) ) Course表结构

Create table course ( Cno varchar(10) primary key, Cname varchar(20) not null, Ccredit int check(Sctedit>0), Semester int check(Semester>0), Period int check(Period>0)

) SC表结构 Create table SC ( Sno varchar(7) foreign key references student(Sno), Cno varchar(10) foreign key references course(Cno),

Grade int check(Grade between 0 and 100), Primary key (Sno,Cno) ) 1.查询学生选课表中的全部数据。 SELECT * FROM SC go 2.查询计算机系学生的姓名、年龄。 Select Sname,Sage From Student Where Sdept=’计算机系’ 3.查询成绩在70~80分之间的学生的学号、课程号和成绩。

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