实验一库表查询一、实验目的通过基于关系型网络数据库管理系统SQLServer的上机实验,使学生进一步了解关系数据模型及关系数据库管理系统的基本原理,标准的SQL语言的使用.
1、掌握数据库的基本概念.
2、熟悉SQL语言的结构及主要命令.
3、能对已有数据库系统(如DBMS提供的一组样例表)进行各种检索.
二、实验原理1、连接"SQLServer7.
0"数据库服务器我们在实验中用"MicrosoftISQL/W"来连接数据库服务器,应用程序"MicrosoftISQL/W"是SQLServer的客户端连接程序,可以在菜单或桌面上找到它的快捷方式.
运行应用程序"MicrosoftISQL/W"后,可以看到上图的输入提示.
请按上图所示输入SQL服务器名称(目前服务器名是MMC)、登录用户名和密码(采用当前登录的用户名和密码).
然后就进入查询画面如下:在Query页输入你的SQL查询脚本,执行(CTRL+E)后可以在Result页得到查询结果.
注意:有关SQL语言的语法请参考教材;在SQLServer中,对SQL语句进行了一定程度的扩展,具体内容请参阅应用程序"MicrosoftISQL/W"的帮助的"TransactionSQLhelp"部分.
12、使用SQL脚本完成操作示例以下的SQL脚本实现功能为:建立一张表NAMETABLE和它的备份表NAMEBAK;建立表NAMETABLE的触发器NAME_INS(当往表NAMETABLE中插入数据的时候,更新备份表NAMEBAK);插入2条记录.
当执行完下面的脚本后,可以在数据库STUDENT中查看两张表的数据.
----选择当前工作数据库USESTUDENT----PRINT用来显示一些提示信息PRINT'当前使用的数据库是STUDENT,你在此数据库中享有一切操作权!
'----GO指以上SQL语句需要先执行,然后再执行以下SQL语句GO----建表NAMETABLE和NAMEBAKCREATETABLENAMETABLE(IDchar(3)NULL,NAMEchar(10)NULL)CREATETABLENAMEBAK(IDchar(3)NULL,NAMEchar(10)NULL)PRINT'已经建立成功表'GO----给表NAMETABLE建立一个触发器NAME_INSCREATETRIGGERNAME_INSONNAMETABLEFORINSERTASDELETEFROMNAMEBAKINSERTINTONAMEBAKSELECT*FROMNAMETABLEPRINT'已经创建了表NAMETABLE的触发器NAME_INS'GOINSERTNAMETABLEVALUES('1','张三')2INSERTNAMETABLEVALUES('2','王无')PRINT'已经插入2条记录'GO3、SQLServer常用的存储过程说明存储过程名称存储过程功能Sp_tables查看数据库中已有的数据表Sp_table_privileges表名查看特定数据表的权限信息Sp_columns表名查看特定表的字段定义Sp_column_privileges表名查看特定表的字段的权限信息Sp_help查看当前数据库的对象简要信息Sp_spaceused查看当前数据库的空间使用情况4、样本数据库介绍我们的实验中可以使用的数据库有两个:pubs和student.
Pubs提供了10来张已经建立的表供大家查询,但是不能进行查询以外的其他操作;student数据库中可以进行一切操作.
有关pubs数据库中已经建立的表的结构请查看开机提示的相应部分,也可以根据上面介绍的系统存储过程(Sp_tables)自己查询.
三、实验要求1、无条件查询1)查找pub库中authors表的全部信息.
2)查找其他样例表中全部信息.
2、简单条件查询1)查找titles表中全部书号及书名.
2)查找titles表中价格在$15~18元之间的书的书名.
3)查找titles表中书名以T开头的书号,书名.
4)对其他样例表构造各种简单查询条件,进行查询.
3、多条件查询1)查找书名起始字符为T,价格小于$16元的书名及价格.
2)查找书名起始字符不为T的,价格大于$16元的书号,书名及价格.
3)对其他样例表构造多个查询条件,进行查询.
34、用连接操作(或嵌套查询)进行查询1)使用样例表titles,publishers进行查询:查找出版社的名称以及所出的书名.
2)使用样例表authors,titleauthor,titles进行查询:查找作者的姓、名和所写的书名.
3)对构造其他条件,在两个以上样例表中进行查询.
5、得到排序的查询结果查找作者的姓、名、电话号码,并按作者姓、名排列.
查找书名和书的价格,按书价由大到小的次序排列.
对其他样例表构造查询条件、排序要求,给出查询结果.
6、使用函数进行查找列出有多少类书.
列出书的定价有多少种.
列出书价最低的书名和书价.
查出书价最高的书名及书价.
列出当年销量的总和.
构造其他查询条件和统计要求,给出查询结果.
4实验二表的基本操作一、实验目的1、能建立关系数据库文件,会建立相应的索引、所需的视图并进行各种检索.
2、进行插入、删除、更新等存储操作.
3、进行各种统计运算等.
二、实验原理本实验主要是对SQL基本操作语句进行学习.
完成数据表的建立(CREATETABLE)、修改(ALTERTABLE)、删除(DROPTABLE)和数据记录的插入(INSERT)、修改(UPDATE)和删除(DELETE).
具体语法请查阅联机帮助,不再赘述.
三、实验要求1、表操作(1)建表按照下面的的结构与内容建两个关系.
表名分别以S、T开头,后面是建表人的学号(以下简记为T**、S**).
先用createtable命令建立表的初始结构,表T**的初始结构包括下面T**中前四个属性.
然后再用altertable…add…添加一个属性:QTY(库存量).
并插入相应的内容.
T**Titleauthort_nopriceQTY计算机原理张一平S309220.
80200C语言程序设计李华H129815.
30300数据库原理王家树D100722.
70150计算机网络高明S569018.
90230ArtificialintelligenceP.
WinstonD200820.
50400ExpertsystemsR.
UllmanH306717.
00370软件工程鲁廷璋S200535.
00200Fortran程序设计顾学峰S500618.
00180S**T_noPagepub-dateS309230419865D10072801993S50063151987S56903001993H12982101989D20083581994S20052981995H30673071995(2)用altertable…modify…改变属性title的长度.
(3)用子查询方式建新表.
表名以ST开头,后面为建表人学号(简记为ST**).
(新表内须包括title和price两个属性.
)(4)按t_no建索引,索引名为IT**(**表示建表人的学号,下同).
(5)用子查询方式建视图,视图名为VT**,并在视图上查找所需信息.
(6)删除以VT**命名的视图.
(7)删除以ST**命名的表.
2、记录的插入、删除与更新(1)同前,用子查询方式建立表ST**.
该表的属性应有t_no,title,price.
(2)在ST**表中插入一元组:S7028,DigitalImageProcessing,36.
00(3)删除书名为"Fortran程序设计"的那个元组.
(4)删除书号以H开头的元组.
(5)把书价调整到原来价格的95%.
(6)把书号以D开头的那些书的书价减掉2.
00元.
(7)将"计算机原理"的书号改为S1135.
(8)对所建的表,进行各种插入、删除、更新操作.
(9)每次修改表后,可用select查看一下修改后表中的内容,看是否满足要求.
3、统计(1)计算T**表中这些书籍的最高书价、最低书价及平均书价.
(2)计算T**表中的书的种类是多少.
(3)计算S**表中1990年后出版的书有多少.
(4)计算总共有多少本书.
(5)对样例表,设计统计要求,获得各种统计量.
6实验三用Delphi做数据库开发一、实验目的通过使用Delphi中BDE连接SQL数据库,掌握Delphi环境中数据库操作的最基本的方法和Delphi下数据库应用程序的开发方法.
二、实验原理1、Delphi中数据库引擎BDE介绍Delphi对数据库的支持十分丰富,Delphi的数据库接口是数据库引擎BDE(BorlandDatabaseEngineer),它是应用程序存取数据的中介层(MiddlewareLayer).
在Delphi下开发的所有数据库应用程序,都是通过Delphi的数据库引擎BDE来对数据进行操作的.
BDE中包含了内建的驱动程序来处理Paradox及dBase的表格与文本文件.
也可以通过外部的驱动程序(add-ondriver)来处理Oracle、SyBase、IntrBase、Informix、MSSQL格式的数据.
BDE也包含了允许应用程序使用ODBC驱动程序来存取数据的ODBCsocket.
BDE具有以下突出的优点:(1)不同的BDE间的数据可以共享而不必担心有任何的冲突发生,因为所有的数据存取都由数据库引擎来处理.
(2)使用者可以通过BDE对数据库的记录进行双向的查询而不必考虑服务器是否具有这样的功能.
(3)允许使用者在不同的平台上对不同数据库的数据做联集(join).
(4)增加了数据在不同平台上的可移植性.
数据库引擎BDE的设置是通过对数据库配置文件IDAPI.
CFG来完成的,在Delphi安装完成以后,可以通过其主菜单下的DataBase选项的Explore子选项完成.
BDE配置的基本项目是如下几项:Drivers:主要设定一些有关数据库驱动程序相关信息的内容,包含ODBC驱动程序、MSSQL驱动程序、ORACLE驱动程序、SYSBASE驱动程序等数据库驱动程序.
Aliases:这是IDAPI.
CFG中最重要的设置内容,它负责记录数据库文件别名的关系,如此做法可以保证数据库系统相关文件改变时,可以不去变动程序代码,只需要更改Aliases的设定;使得程序更具有可移植性和扩充性,数据的独立性也由此得到保证.
System:显示BDE系统的版本数据;局部的文件共享信息;最大、最小缓冲区;语言驱动程序;系统标志,最低内存使用限制,ODBC的Alias;处理SQL的查询等一系列设定.
Date:日期的相关信息,如日期的格式、与字符的转换等.
Time:系统时间的格式、与字符串的转换关系.
Number:负责数字和字符串的转换.
ALIASES是Delphi中应用程序与数据库接口的连接点.
在设置数据库别名时,还有许7多选项的设置,因不同的数据库驱动文件而有不同的设置内容.
当数据库采用标准的数据库驱动程序(即数据库文件是XBASE格式,*.
DBF)时,只需要指定文件存放的路径.
而为其他的数据库驱动程序时,要根据不同的驱动来设置用户名、服务器名、日期格式等内容.
2、Delphi中数据库控制组件数据库控制组件是数据库程序的核心.
共有两类:数据库存取控制组件、数据库显示控制组件.
在Delphi中,引入了一个"数据来源"的概念.
其作用是在数据库的具体数据与程序中显示的数据之间做中介,即在数据库存取控制组件和数据库显示控制组件间做媒介.
借助数据来源可以在应用程序执行时将数据存取组件与数据显示组件独立分开,动态操作、切换这两种组件.
下面以实例分别对这两种组件中的常用组件进行介绍.
(1)数据库存取控制组件:负责连接数据库本身,不包含数据的显示与输入.
TDatabase组件:Database1.
AliasName:='MYDATABASE';{指定数据库Database1的别名是MYDATABASE}Database1.
DatabaseName:=my_database;{在程序中数据库Database1的名称是my_database}Database1.
connected:=True;{Database1连接别名是MYDATABASE的数据库,并在程序中区名是my_database}TTable组件:Table1.
DatabaseName:='my_database';{Table1表所在的数据库是my_database,即对应别名是MYDATABASE的数据库}Table1.
TableName:='my_table.
dbf';{Table1表对应数据库my_database中的表my_table.
dbf}Table1.
Active:=True;{激活Table1}TQuery组件:Query1.
DatabaseName:='my_database';{查询Querye1所在的数据库是my_database,即对应别名是MYDATABASE的数据库}Query1.
SQL.
Add('select*frommy_table');{查询对应的SQL语句是select*frommy_table}Query1.
Active:=True;{激活查询Query1}TBatchMove组件:BatchMove1.
Mode:=batAppend;{批量记录移动的方式是追加记录}BatchMove1.
RecordCount:=08{移动符合条件的所有记录,如果为不等于0的数值,则移动的记录数量为指定的数值}BatchMove1.
Source:=Query1;{指定移动数据来源是Query1}BatchMove1.
Destination:=Table1;{指定目标数据的位置是表Table1}BatchMove1.
Execute;{执行批量记录移动}TStoredProc组件:StoredProc1.
DatabaseName:='my_database';{存储过程StoredProc1所在的数据库是my_database}StoredProc1.
StoredProcName:='my_proc';{数据库my_database中存储过程的名称是my_proc}StoredProc1.
Params.
Clear;{清除原有存储过程的参数}StoredProc1.
Params.
CreateParam(ftInteger,'no',ptInput);{增加存储过程参数no}StoredProc1.
Prepare;{绑定存储过程的参数}StoredProc1.
ExecProc;{执行数据库my_database中的存储过程my_proc}(2)数据库显示控制组件:提供建立用户界面的基本窗口类型控制组件,让使用者可以输入编辑、显示数据.
特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...
快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...
香港ceranetworks提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 香港ceranetworks 8核16G 100M 这款产品 提速啦老板真的是豪气每次都给高配我测试 不像别的商家每次就给1核1G,废话不多说开始跑脚本。香港ceranetworks 2核2G 50G硬盘20M 69元/月30M 99元/月50M 219元/月100M 519元/月香港ceranetwork...