MiniSQL实验指导书
SQL数据管理实验指导书2013.6

实验一 SQL编程一.实验目的1.熟练掌握SQL编程方法2.掌握Transact-SQL基本语法3.掌握SQL-查询分析器的基本用法4.掌握SQL中常用统计函数的用法5.掌握游标的基本用法二.实验要求1.回顾SQL语法2.熟悉SQL Server2000的基本操作3.预习Transact-SQL基本语法4.预习游标用法三.实验内容1.用统计函数sum、avg、min、max、count等进行查询2.统计函数结合group by进行查询3.实现Transact-SQL中的判断和循环结构编程4.用游标实现一个统计功能四.实验内容要求实验任务1、给学生表增加字段联系电话,为整型2、改变学生表中字段联系电话字段的属性为字符型3、删除联系电话字段4、删除表教师表5、查询学生表中年龄>20并且是北京来的学生6、查询各专业学生的人数7、查询英语成绩大于80分的所有女生8、查询每个专业的女生人数9、对各个地区来的学生的总人数按从小到大的顺序排列10、求各个专业女生数学的平均分11、求计算机专业的所有李姓的学生12、用case语句查出若水同学的各门课程的成绩,并按照90以上为优秀80-90为良好;60-80中等,60以下为不及格13、用插入语句向学生表插入一条记录要求只插入学号,姓名,地址三个字段的值,1008,德华,香港14、重新创建一个表结构与学生表相同命名为学生表1,用SQL语句将学生表中的所有女生,插入到学生表1中15、取出学生表中备份字段的前20个字符16、求出年龄大于平均年龄的女生姓名17、求出数学课程的成绩最高最低分18、求出各专业英语大于80分学生的人数19、用IN语句实现找出英语不及格的学生学号和姓名20 、查出所有学生及其课程成绩,不管该学生有没有选课实验二表连接及综合查询一、实验目的与要求1.掌握表连接查询的使用方法2.掌握子查询的使用方法3.能使用内连接、左外连接、右外连接以及交叉连接解决相关问题4.熟悉系统函数的使用5.能熟练应用SELECT语句及其相关字句6.能将SELECT与系统函数、IF ELSE、WHILE等语句进行综合应用并解决相关问题二、实验内容(一)连接查询(数据库及表见附件)1.查找每一个供应商供应的商品的名称,要求显示供应商名称和商品名称。
mysql实验指导2

实验一MySQL工具的使用和数据库的简单查询一、实验目的1、MySQL的安装。
2、熟悉MySQL命令行实用程序的使用。
3、学会用命令行工具了解数据库和表的相关信息。
4、掌握简单的SQL语句的使用,学会运用SQL语句进行简单的查询。
二、实验理论基础及教材对应关系1、实验理论基础:(1)MySQL基本命令;(2)SELECT语句;2、本实验内容主要对应于教材第3章和第4章。
三、实验内容与步骤1、检查所用的计算机习题,确认是否已经安装了MySQL数据库管理软件。
如果系统安装了MySQL Server 5.5 ,可以通过“开始”菜单—>程序->MySQL-> MySQL Server 5.5-> MySQL Command Client 开启MySQL服务。
2.连接到MySQL:主机名,端口号,合法的用法名等都已经在在安装设置过程中配置好了,在此只要输入口令:123456就能登陆了。
3.查看已经存在的数据库:在mysql> 提示符后输入命令Show databases ;后,可以看到如下的结果:表明有三个数据库:information_schema,mysql,test等。
4.查看数据库中的表:(1)用“use”命令选择要操作的数据库,如use mysql;回车后可以看到“Database changed”表示选择该数据库成功。
(2)输入命令“Show tables;”回车后可以看到所显示的mysql数据库中的表5.查看表中的列:输入命令“Show columns from host ;”查看表host中的列如下所示:6.利用mysql 命令行语句执行SQL脚本文件。
(1)下载教材提供的脚本(教师提供create.sql和populate.sql))(2)创建一个新的数据库,名为 exam1,使用create命令;(3)选择使用新的数据库exam1,使用use命令;(4)(4)执行create.sql脚本,使用source create.sql命令(要指定create.sql文件的完全路径);(5)重复第四步,执行populate.sql脚本,用populate.sql文件填充各个新表。
基本SQL实验手册

第一部分sql 基础基本查询语句Select 语句的作用查询指定的行查询指定的列多张表联合查询Select 语句可以查询指定的行,指定的列,也可以多张表联合查询来获得数据。
上面的三句话,开宗明义的定义了SQL 的基本功能,书写高效的SQL 语句是我们永恒的追求,不管你是程序员还是数据库管理员。
Select 既是入门所必备,又是数据库之颠峰。
简易语法SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;大写的为关键字小写的为我们指定的名称SELECT 子句指定你所关心的列FROM 子句指定你所要查询的表之所以称之为简易语法,因为完全的SELEC T 语法很长,涉及到很多的逻辑关系,我们由浅入深。
虽然不能大成,但小成总会有的。
一般我们将select 叫做select 子句,from 叫做from 子句。
实验1:书写一个最简单的sql 语句,查询一张表的所有行和所有列该实验的目的是初步认识sql 语句,执行一个最简单的查询.Select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ---------- --------- ---------- ------------ ---------- ----- ------7369 SMITH CLERK 7902 17-DEC-80 800 207499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 307521 WARD SALESMAN 7698 22-FEB-81 1250 500 307566 JONES MANAGER 7839 02-APR-81 2975 207654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 307698 BLAKE MANAGER 7839 01-MAY-81 2850 307782 CLARK MANAGER 7839 09-JUN-81 2450 107839 KING PRESIDENT 17-NOV-81 5000 107844 TURNER SALESMAN 7698 08-SEP-81 1500 0 307900 JAMES CLERK 7698 03-DEC-81 950 307902 FORD ANALYST 7566 03-DEC-81 3000 207934 MILLER CLERK 7782 23-JAN-82 1300 10你看到可能折行了,没有关系,后面我们会讲到.查询emp 表的所有行,所有列。
MiniSQL

3.2.6 Buffer Manager
Buffer Manager 负责缓冲区的管理,主要功能有: 1. 根据需要,读取指定的数据到系统缓冲区或将缓冲区中的数据写出到文件 2. 实现缓冲区的替换算法,当缓冲区满时选择合适的页进行替换 3. 记录缓冲区中各页的状态,如是否被修改过等 4. 提供缓冲区页的 pin 功能,及锁定缓冲区的页,不允许替换出去 为提高磁盘 I/O 操作的效率,缓冲区与文件系统交互的单位是块,块的大小应为文件系统与磁盘交互单位的整数倍,一般可 定为 4KB 或 8KB。
5/5
sno char(8), sname char(16) unique,
1/5
sage int, sgender char (1), primary key ( sno ) );
删除表语句
该语句的语法如下: drop table 表名 ; 若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。 示例语句: drop table student;
MiniSQL 实验指导书
1 实验目的
设计并实现一个精简型单用户 SQL 引擎(DBMS)MiniSQL,允许用户通过字符界面输入 SQL 语句实现表的建立/删除;索引 的建立/删除以及表记录的插入/删除/查找。
通过对 MiniSQL 的设计与实现,提高学生的系统编程能力,加深对数据库系统原理的理解。
数据文件由一个或多个数据块组成,块大小应与缓冲区块大小相同。一个块中包含一条至多条记录,为简单起见,只要求支 持定长记录的存储,且不要求支持记录的跨块存储。
3.2.5 Index Manager
SQL数据库实验指导

SQL数据库实验指导实验1 数据库的创建与管理(2学时)目的和要求1、巩固数据库的基础知识2、掌握创建数据库的方法3、掌握查看、修改数据库属性的方法4、掌握缩小、更名与删除数据库的方法5、掌握添加数据文件及分离、附加数据库的方法内容和步骤一、实验内容:试用企业管理器、查询分析器建立数据库JWGL(教务管理),并用企业管理器对建立的数据库进行管理。
具体参数如下:二、实验步骤:1、创建数据库使用企业管理器创建(1)打开企业管理器,在左窗格中双击要建立数据库的服务器节点,将该节点展开。
双击“数据库”节点,然后在右窗格中右击空白区域,从弹出的快捷菜单中选择“新建数据库”命令。
(2)在“名称”文本框中输入的数据库名称“JWGL”,然后单击“数据文件”选项卡,在“文件名”栏中自动生成文件名为“JWGL_DATA”的数据文件,注:SQLServer2000在默认情况下自动在用户输入的文件名后面增加上Data字样。
(3)在“文件组”栏中,输入文件所属的文件组名称。
(主文件文件组名不能改变)(4)在“文件属性”选项组里,选中“文件自动增长”复选框,当数据文件的空间不够用时,SQLServer2000可以自动增加容量。
SQLServer2000提供了两种方式来实现数据文件的自动增加。
一种是以“按兆字节”的方式递增,一次增加1MB;另外一种方式是以“按百分比”的方式递增,一次递增原数据库文件容量的10%。
图1-1 数据库属性(5)单击“位置”栏中的按钮,选择存放数据文件的位置。
(6)单击“确定”返回“数据库属性”,单击“事务日志”选项卡,输入日志文件的名称、位置、大小,在日志需要更多空间时可以在“文件属性”选项组中设置日志自动增长和最大值选项,方法与设置数据文件类似。
用T—SQL语言创建数据库在查询分析器中输入如下所示的创建数据库的SQL脚本。
CREATE DATABASE JWGLONPRIMARY (NAME='JWGL_data',FILENAME='c:\Program Files\Microsoft SQL Server\MSSQL\DATA\JWGL_data.mdf',SIZE=20MB,MAXSIZE=200MB,FILEGROWTH=5MB) (或FILEGROWTH=5%)LOG ON(NAME='JWGL_log',FILENAME='c:\Program Files\Microsoft SQL Server\MSSQL\DATA\JWGL_log.ldf',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=1MB)刷新后即可见建立的数据库JWGL12、查看、修改数据库属性1.使用企业管理器查看、修改数据库属性(1)SQLServer2000有许多选项可以改变数据库的行为。
SQL实验报告(优秀范文5篇)

SQL实验报告(优秀范文5篇)第一篇:SQL实验报告实验四触发器实验(一)after触发器(1 1)在l l i neitem 表上定义一个 after 触发器, , 当修改列项目e e xtendedprice d i scountx tax 时, , 要把 s orders 表得to o tal pri ce e 一起修改, , 以保证数据一致性C RE ATE T RIGGERtrig _line ite m_ pr ice_ update on line it em fo rupda teaasbegin i f(UPDATE(ex tend edprice)o r UPDATE(tax)or UPD AT E(di scou nt))begin-—声明游标变量指向 inserted 表d eclarecursor_inserted c urs orrea d_onlyofor select order key,linenu mber,exte nd edpr ice, dis coun t, taxfromin ser ted—-息信找查取获量变明声ﻩ声明变量获取查找信息de clare order key in t, @linenumb erint,exte nd edpricereal,disscount real,tax real—-打开游标epoﻩen cursor_i ns ert ed—-标游取读ﻩ读取游标fe tchnextfrom cur sor _i ns erte dint o@o rderkey, @lin enumber,eext ende dprice, @di scount,t axwwhi le FETC H_S TATUS =0 nigebﻩnﻩ—-声明一个变量保存重新计算得新价格cedﻩﻩecl are @n ew_tota lpri cer ealﻩ select @n ew_t otal price= @ext en dedpr ice *(1 -@di scou nt)*(1 +@tax)—-用新得总价格变量更新 orders 表得 t ot alprice puﻩﻩupdate orde rsse t tot alpri ce= new_totalprice where or derkey=orde rkeyen hctefﻩext f ro m cur sor_i nser ted int o@order ke y, @li nenum ber, @ex tende dp rice,discoun t, @taxdneﻩllaedﻩlocate c ur sor_i nser te deend end ﻩ(2)在在 linei tem表上定义一个 aftr er 触发器, , 当增加一项订单明细时, ,自动修改 s orders 表得 total p rice, 以保证数据一致性CREATE TR IGGER tri g_ lineit em_price_ in sert on l ine item ffor inse rta sbegin ——向指量变标游明声ﻩ声明游标变量指向ins erted 表de clarec ursor_inse rtedcursorread_ onl yﻩ for s ele ct orderkey,linenumbe r,ex te ndedp ric e,di scou nt,t axfrom insserte d--声明变量获取查找信息edﻩeclare @orde rk eyint, @lin enumber int,e xten dedp ricereal, @discountreal, @ta xreal -—ﻩ-打开游标open cursor_i ns erte d--ﻩ-读取游标fe tc hnex tf romcu rsor_ins ertedinto@o rd erkey,li nen umbeerr, ex ten ded pric e,dis count,tax ihwﻩile @@FE TCH_ STATU S=0 ebﻩegin-—格价新得算计新重存保量变个一明声ﻩﻩ声明一个变量保存重新计算得新价格cedﻩclare @n ew_tot alprice realcelesﻩct new _to ta lprice= @extend edp rice *(1-d is count)*(1+tax)—-新更量变格价总得新用ﻩﻩ用新得总价格变量更新orders 表得totalpri ceﻩ u pda teor ders s ett ota lpric e=total pric e+ @new_ tota lpr ice wwhhe re o rderke y=orderkeytefﻩetch next from cursor_ ins erte dinto o rder key, @l inen umber,e xtendeddp ric e, @disc ou nt, @t axeend aedﻩdeall oca te cu rsor_in serted en d(3)在l in e ite m表上定义一个a ft er触发器, , 当删除一项订单明细记录时, ,自动修改 orders 表得 tot a lprice, 以保证数据一致性CREATE TRI GG ER trig _line item_price_de let eon line item fo r de let eAAS begin--声明游标变量指向delet ed 表de clar e curso r_d eleted cursorre ad _on lyesrofﻩﻩele ctord erk ey,line numbe r,extende dp rice,discoun t, taxfromdel eted-ﻩ--声明变量获取查找信息declare ord erkey int,linenum be rint,extendedp ri ce r eal,discou nt real,ta xreal -—ﻩ-打开游标epoﻩen c urso r_ deleted——标游取读ﻩ读取游标efﻩetch next fr om cur sor_delete d in toorder ke y,l inenumb er,ext enddedprice, @di scoun t,taxwh ile@FETCH_STATUS=0begi n-—声明一个变量保存重新计算得新价格ﻩ declare @ne w_ to talpric erealﻩsselec t@new_t otalpr ice= @exte nde dpri ce*(1-@disco unt)*(1+ tax)-ﻩ-—用新得总价格变量更新orders 表得tot alp rice uﻩﻩupd ateorders set t otalpri ce=to talpr ice-@new _totalp rice wh er e order key= @ord erkeyfetchn ext f rom cursor_inse rt ed in to orderkey, @line numbe r,extendeeddprice, @d iscou nt,t ax dneﻩndddeal lo cat e cur sor_inse rted eend((4 4))验证 up d at e触发器—-查瞧号订单得 to ta a l pr i ceselec t*fro o mo o r ders whereorde r key=1 8 30;—-查瞧明细表得相关信息se l ect *f ro mlin ei i te e mw here or de e r key=183 0and l ine num m be e r =1;——验证 e update 触发器updat elineitem set t ax=tax+0、05whe re orderkey=1830;(二)i i n steadof触发器((1))在在 lineit em 表上定义一个ins tead o fupda te触发器, 当修改明细表中得数量量quan ti ty 时, 应先检查供应表par tsupp 得av ai lqty 就是否足够, 不足够则拒绝执行, 否则执行并修改相应数值以保证数据一致性于由于 in steadof 触发器更新某个表会使得该表上其她不满足更新列不能更新,因因用此逆向思维使用 a fter 触发器实现相同效果即先更新 qu antity, 再比较av ailqqtty, 如果满足更新数量, 就修改partsupp 得表得 a vailqty, 如果不满足, 则把lineitem得quantity 更新之后得数据重新修改回来ccreate trigge r trig_lin eit em_quanti ty_ upda teonli neit em f or upda teas begin if UPDATE(qu ant ity)bbegin ——向指别分量变标游明声ﻩ声明游标变量分别指向 i nserted 表与 d el eted 表edﻩdeclare c urso r_inser tedcur sorr ead_on lyfortcelesﻩﻩtorde rkey, partk ey,s uppkey,lin enum ber, quantit yfr om i nserteddecl arecursor_de leted c urs orrea d_ onl yf or select quantityfr om deleted-—息信找查取获量变明声ﻩ声明变量获取查找信息decl are@qu an tity _dif f_lineitem i nt,q uanti ty_pa rtsup p i nt cedﻩclare suppkey int, @par tke y in t,o rd erkey i nt,unenilﻩﻩum ber int ,qty _inserted in t , @qty_deleted int--打开游标ruc nepoﻩrsor_in sert ed poﻩopen cur sor_d eleted-—量变给赋值数标游取读ﻩ读取游标数值赋给变量fﻩfet chnext fromcu rsor_ insert edﻩiinto or de rk ey,pa rtkey, @suppk ey, @line nu mber, @qty _ins erte df et chnext fromcursor _d eletedint o q ty _de lete dwhi le fe tch_st atus=0 gebﻩegin--计算订单明细修改时, 订购数量得变化值inserte d表项-d elet ed表项ssel ect quantity_d if f_ li neit em= @q ty _in se rte d—@@q ty_deleteedﻩ--从parts upp 表获取ava ilq ty值, 注意partsupp 表得主键为(partk ey,suppkeey)tcelesﻩﻩt@quanti ty_p ar tsupp =av ailq ty fro m pa rtsu ppwﻩﻩwh er e suppkey= suppke yand part key= @par tk ey-—断判始开ﻩﻩ开始判断gebﻩbegi nfiﻩf quant ity _d iff_ lin eite m=0ﻩﻩ p rin t“ 更新得数量与原表中得值相同, 不需要更新”e ls eif @quantit y_d iff_lin eitem 〈=q uantity_partsuppﻩbe ginﻩpuﻩﻩpd ate partsupps et avail qty= availqty-@qua ntit y_d iff_li ne item ﻩpus erehwﻩppkey=suppkeyandp artkey= @par tke yﻩﻩ p rint “ 两个表都更新成功’ ﻩﻩﻩneﻩndels eigebﻩﻩinﻩuﻩﻩupdate li nei temsetquantit y=quantity+ @quanti ty_diff_linei temwhe re o rd erke y=@orde rke y and li nenu mber= @liine numberﻩp ri nt '更新失败”ﻩﻩendﻩ e nd efﻩﻩetch ne xtfr om c urso r_i nsertedi nto @ord erke y, @partkey,s upp key, @linenumb er, @qt y_ ins ert edf etch ne xt from curso r_de leted into @qt y_d elet ed dneﻩndd eallocat e cur sor _i nserte ddealloc at e cursor_de le ted eend eend(2)在在 l ineite m表上定义一个 instea d of in sert 触发器, 当插入明细表中一条记录时时, 应先检查供应表par tsupp 得得 ava il qt y就是否足够qu anti ty 得数量c rea te t rig ger tri g_lineitem_q ua nti ty_ insertonline item iinstead of inser t as bbegin-—声明游标变量指向 inserte d表d eclar e cur sor_inserte dcur sorrea d_ only f orsﻩﻩselect or derk ey,pa rtkey,sup pk ey, lin en umber,q uantityf rom ins er ted-—声明变量获取查找信息dec lare quantity int, @av ailq ty i nt, @suppkeyin t, @partkeyinntt, @o rderkey int, @linenu mber int-—标游开打ﻩ打开游标c nepoﻩcurs or_ins erted -ﻩ-—读取游标f etc hnext fro mcursor_insert edint o@orde rkey,partkey,@@ssuppkey, @linenumber,qu antity wh ile @@FETCH_S TATUS= 0igebﻩin--为变量赋值a tcelesﻩavailqtyy==av ai lqt y fr ompartsuppwﻩwhe re suppkey =@su ppk ey and part ke y= partke yﻩ if @quant ity 〈= @avail qt y-—如果可以更新bﻩbegin /ﻩﻩﻩ/*将将 insert ed 表中得记录插入到明细表*/ ﻩsniﻩserti nto l ineite m select *from i nsertedro=yekredroerehwﻩﻩrderk ey andlinenumb er = @linenumber */ﻩﻩ新更时同ﻩ*同时更新 part supp 表得数量*/ﻩﻩuupd ate pa rtsup pset a vailqty=availqty-@quanti tyﻩerehwﻩe sup pke y= @sup pkey and partkey=part key ppr int ’paarts upp 表有足够得货物可以满足 lin eitem 得quan tityy, 插入成功’endelsebeginﻩﻩ p rintt''pa rt sup p表没有足够得货物可以满足 l ineitem 得得q uantity,插入失败’dneﻩfﻩﻩfetc h next from curso r_ins ert ed in to@ord erkey, partkey, suppkey, @liinenumbe r, qu antity eﻩen ddeall ocat ecursor_ inserted end(3)在在 line ite m表上定义一个 inste ad of del ete 触发器,当当删除明细表中记录时时, 同时改变表供应表 partsupp 得ava il qtyy数值 c re ate trigge r tri g_ lin eit em_quanti ty_ del ete o n line item inste ad of del ete as be gin—-声明游标变量指向deleted 表de cla re curs or_ del eted c ursorread _only forlesﻩﻩelect or derke y, par tkey,sup pkey, linenumbe r,quan tity fr om deleted -ﻩ--声明变量decl are s upp key i nt, par tke yint, @orde rkey int,linen umb erint, @quaant it y int—-标游开打ﻩ打开游标opencursor_deleted-—标游取读ﻩ读取游标ffetch next fr omcurs or _del et edin to @ord erkey , @partkey,s uppkeey, @lin en umber,q ua ntitywhi leFFET CH_ STATUS=0 igebﻩin*/*除删ﻩ*删除*/ﻩ de let e fromlineite m where linenu mber= line number and o rde rkey =ordder key*/新更时同ﻩ同时更新 pa rt supp 表得数量*/u pdateparts uppse tavailqt y=a vai lq ty+quant ityﻩ where s uppke y= @s uppkey a nd par tk ey= @p ar tkeyﻩ p rin t’ 删除成功, 并且已经把货物数量归还到 p ar tsup p里“ fﻩﻩfetc h ne xt fr omcurso r_del etedinto @ord er ke y,p ar tkey,@@suppkey, @lin enu mber,quanti ty neﻩnd edﻩea lloc ate cursor_ delete dend(4)验证 update 触发器--查瞧li neit em 得quan tit y select*fr omlin eit em whe re or derk ey =1830and li nenum ber=1;——查询partsupp 表得ava ilqt y se lect * from part supp w here suppk ey =(selectsupp key fr omlin eitem w here ord erkey=18 30)and partk ey=(s elec t part key from lin eite mwh er eorder key =18 30 a nd linenu mber=1)---更新数量过大——更新得值与原值相同---更新到+ + 2 00 数量, , 成功updateli neitem setquant ity=q uanti ty+ 200where order key=1830and lin en umber =1;--更新 +2 00成功后l ineite m得 quanti ty y 变化——更新+200 成功后par ts upp 表得a va ilqty 变化实验到此。
SQL数据库实验指导书
SQL数据库实验指导书《数据库开发与应⽤》实验指导书沈阳理⼯⼤学应⽤技术学院2009年12⽉⽬录实验⼀数据库和表的操作 (1)实验⼆数据的操作 (6)实验三存储过程的操作 (9)实验四触发器的使⽤ (11)实验五数据库综合设计 (13)实验⼀数据库和表的操作实验⽬的:1、了解SQL SERVER数据库的逻辑结构和物理结构;2、掌握SQL SERVER数据库的⽂件组成;3、掌握SQL SERVER数据库中⽂件组的概念;4、了解表的结构和特点;5、了解SQL SERVER的基本数据类型;6、学会使⽤结构化查询语句创建和管理数据库和表;实验内容:1、使⽤sql语句创建最简单的数据库;2、使⽤sql语句创建带条件的数据库,要指定数据⽂件和⽇志⽂件的名称、⼤⼩、最⼤限制和⽂件增长速度;3、为数据库改名;4、向数据库中填加、删除⼀个数据⽂件;5、向数据库中填加⼀个⽇志⽂件;6、修改数据库⽂件的属性:包括⽂件⼤⼩,最⼤限制,增长⽅式等;7、删除数据库;8、在数据库bookborrow中建⽴3个基本表,实现对表的管理。
具体实验内容:1、使⽤sql语句建⽴最简单的数据库sqlcourse;2、使⽤sql语句建⽴数据库school。
包含两个数据库⽂件和⼀个⽇志⽂件,其中主数据⽂件的逻辑名为“school_data”,初始⼤⼩为10MB,最⼤⼤⼩为500MB,设置⽂件⾃动增长,增长⽅式为10%;辅助数据⽂件的逻辑名为“school_data2”,初始⼤⼩为2MB,最⼤⼤⼩为30MB,设置⽂件⾃动增长,增长⽅式为5MB。
⽇志⽂件的所有限制默认。
3、为数据库sqlcourse更名为yangguang。
4、使⽤sql语句在数据库school中添加和删除⼀个数据⽂件。
(1)逻辑名、物理名、初始⼤⼩、最⼤⼤⼩⾃⼰设计,增长按照MB⽅式⾃动增长。
(2)删除数据⽂件“school_data2”。
5、使⽤sql语句在数据库school中添加⼀个⽇志⽂件。
sql语句的实验报告
竭诚为您提供优质文档/双击可除sql语句的实验报告篇一:sQL语言实验报告《数据库原理及应用》实验报告sql语句部分班级:11-37-06学号:姓名:总成绩:实验一熟悉sqlserver,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用sql语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1.创建学生课程数据库6、在表s上增加“出生日期”属性列。
7、删除表s的“年龄”属性列。
8、删除s姓名列的唯一值约束。
9、修改sc表成绩属性列为精确数字型。
10、在表s上,按“sno”属性列的唯一值方式建立索引。
11、删除表sc,利用磁盘上保存的.sql文件重新创建表sc。
12、创建教材p74页习题5中spj数据库中的四个关系:s、p、j、spj。
三、实验结果:1.创建学生课程数据库createdatabasestudend;5.将以上创建表s、c、sc的sql命令以.sql文件的形式保存在磁盘上。
(snochar(9)primarykey,snamechar(20)unique,ssexchar(2 ),sagesmallint,sdeptchar(20),);3.创建课程关系表c:(cnochar(4)primarykey,cnamechar(40),cpnochar(4),ccre ditsmallint,);(snochar(9),cnochar(4),gradesmallint,);5.将以上创建表s、c、sc的sql命令以.sql文件的形式保存在磁盘上。
6、在表s上增加“出生日期”属性列。
altertablesaddsbirthdaydatetime;7、删除表s的“年龄”属性列。
altertablesdropcolumnsage;8、删除s姓名列的唯一值约束。
altertablesdropuq__s__7d78a4e7;9、修改sc表成绩属性列为精确数字型。
SQL数据库系统实验报告(含代码、截图)
数据库系统实验报告专业班级学生姓名及学号课程教学班号任课教师实验指导教师实验地点2012 ~2013 学年第二学期实验一使用向导创建和删除数据库一.实验目的1.熟悉SQL Server 中SQL Server Management Studio的环境2.了解SQL Server 数据库的逻辑结构和物理结构3.掌握使用向导创建和删除数据库的方法二.实验要求1.熟练使用SSMS进行数据库的创建和删除操作。
2.完成实验报告。
三.实验内容设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
四.实验步骤1.使用SQL Server Management Studio(简称SSMS)创建数据库。
(1)启动SSMS在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2. 使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
mini sql 系统用户手册
文档编号:3版本号:1.00 文档名称 : 用户手册项目名称:MiniSQL 数据库系统设计开发时间:2001年10月----1月开发人员:组长: 周森 3991102440 (计算机99F)组员:郭振宇 3991102462 王淮 3991102449韩璟璐 3991102438 何遥 3991102461 指导老师:孙建伶1. 系统目录结构Figure2: MiniSQL数据库系统的文件结构其中bin目录下存放MiniSQL可执行文件;include目录下存放MiniSQL.h文件和相关的lib文件,可以应客户的需求进行应用级开发;Docs目录下存放一些系统开发文档,系统安装文档,系统维护文档以及版权信息文档等等。
同时也提供系统对比已经商业化的DBMS,尚未开发的功能的相关文档。
Data目录下存放数据文件,其下一级目录为各个数据库的名称,再下一级为各个数据库的具体数据文件。
数据文件类型:对应于每一个table建立两个文件,dbf文件为具体数据存放文件,同时关于该table的目录信息亦存放于dbf文件的头信息处,idx文件为为primary key建立的索引文件。
23. 基本设计概念1)系统目标设计并实现一个精简单用户SQL engine ,并在其中实现表定义、索引、标记录操作功能。
其中:(1)表定义中列(属性)的类型至少支持三种(integer、char、float);(2 ) 每个表上要求至少建一个主键上的B+树,支持多属性主键;(3)记录的插入、删除、修改等,即时更新相应的索引;(4)记录的搜索至少实现按主键查找,只是主键上的范围查找,包含遍历。
2)结构清晰(1)用户模块和内核模块完全分开。
(2)内核部分B+ 、Record、Catalog三个模块之间坚决不能互相调用方法和函数。
(3)内核部分B+ 、Record、Catalog三个模块不能访问物理文件,而由Buffer模块实现物理文件操作的所有细节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MiniSQL实验指导书1实验目的设计并实现一个精简型单用户SQL引擎(DBMS)MiniSQL,允许用户通过字符界面输入SQL语句实现表的建立/删除;索引的建立/删除以及表记录的插入/删除/查找。
通过对MiniSQL的设计与实现,提高学生的系统编程能力,加深对数据库系统原理的理解。
2实验需求2.1需求概述数据类型只要求支持三种基本数据类型:int,char(n),float,其中char(n)满足 1 <= n <= 255 。
表定义一个表最多可以定义32个属性,各属性可以指定是否为unique;支持单属性的主键定义。
索引的建立和删除对于表的主属性自动建立B+树索引,对于声明为unique的属性可以通过SQL语句由用户指定建立/删除B+树索引(因此,所有的B+树索引都是单属性单值的)。
查找记录可以通过指定用and连接的多个条件进行查询,支持等值查询和区间查询。
插入和删除记录支持每次一条记录的插入操作;支持每次一条或多条记录的删除操作。
2.2语法说明MiniSQL支持标准的SQL语句格式,每一条SQL语句以分号结尾,一条SQL语句可写在一行或多行。
为简化编程,要求所有的关键字都为小写。
在以下语句的语法说明中,用黑体显示的部分表示语句中的原始字符串,如create就严格的表示字符串“create”,否则含有特殊的含义,如表名并不是表示字符串“表名”,而是表示表的名称。
创建表语句该语句的语法如下:create table表名(列名类型,列名类型,列名类型,primary key(列名));其中类型的说明见第二节“功能需求”。
若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。
示例语句:create table student (sno char(8),sname char(16) unique,sage int,sgender char (1),primary key ( sno ));删除表语句该语句的语法如下:drop table表名 ;若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。
示例语句:drop table student;创建索引语句该语句的语法如下:create index索引名on表名(列名);若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。
示例语句:create index stunameidx on student ( sname );删除索引语句该语句的语法如下:drop index索引名;若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。
示例语句:drop index stunameidx;选择语句该语句的语法如下:select * from表名;或:select * from表名where条件;其中“条件”具有以下格式:列op 值and 列op 值…and 列op 值。
op是算术比较符:= <> < > <= >=若该语句执行成功且查询结果不为空,则按行输出查询结果,第一行为属性名,其余每一行表示一条记录;若查询结果为空,则输出信息告诉用户查询结果为空;若失败,必须告诉用户失败的原因。
示例语句:select * from student;select * from student where sno = ‘88888888’;select * from student where sage > 20 and sgender = ‘F’;插入记录语句该语句的语法如下:insert into表名values (值1 ,值2 ,…,值n );若该语句执行成功,则输出执行成功信息;若失败,必须告诉用户失败的原因。
示例语句:insert into student values (‘12345678’,’wy’,22,’M’);删除记录语句该语句的语法如下:delete from表名;或:delete from表名where条件;若该语句执行成功,则输出执行成功信息,其中包括删除的记录数;若失败,必须告诉用户失败的原因。
示例语句:delete from student;delete from student where sno = ‘88888888’;退出MiniSQL系统语句该语句的语法如下:quit;执行SQL脚本文件语句该语句的语法如下:execfile文件名;SQL脚本文件中可以包含任意多条上述8种SQL语句,MiniSQL系统读入该文件,然后按序依次逐条执行脚本中的SQL 语句。
3设计指导3.1系统体系结构MiniSQL体系结构如下:图1 MiniSQL体系结构3.2模块概述3.2.1InterpreterInterpreter模块直接与用户交互,主要实现以下功能:1.程序流程控制,即“启动并初始化→‘接收命令、处理命令、显示命令结果’循环→退出”流程。
2.接收并解释用户输入的命令,生成命令的内部数据结构表示,同时检查命令的语法正确性和语义正确性,对正确的命令调用API层提供的函数执行并显示执行结果,对不正确的命令显示错误信息。
3.2.2APIAPI模块是整个系统的核心,其主要功能为提供执行SQL语句的接口,供Interpreter层调用。
该接口以Interpreter层解释生成的命令内部表示为输入,根据Catalog Manager提供的信息确定执行规则,并调用Record Manager、Index Manager和Catalog Manager提供的相应接口进行执行,最后返回执行结果给Interpreter模块。
3.2.3Catalog ManagerCatalog Manager负责管理数据库的所有模式信息,包括:1.数据库中所有表的定义信息,包括表的名称、表中字段(列)数、主键、定义在该表上的索引。
2.表中每个字段的定义信息,包括字段类型、是否唯一等。
3.数据库中所有索引的定义,包括所属表、索引建立在那个字段上等。
Catalog Manager还必需提供访问及操作上述信息的接口,供Interpreter和API模块使用。
3.2.4Record ManagerRecord Manager负责管理记录表中数据的数据文件。
主要功能为实现数据文件的创建与删除(由表的定义与删除引起)、记录的插入、删除与查找操作,并对外提供相应的接口。
其中记录的查找操作要求能够支持不带条件的查找和带一个条件的查找(包括等值查找、不等值查找和区间查找)。
数据文件由一个或多个数据块组成,块大小应与缓冲区块大小相同。
一个块中包含一条至多条记录,为简单起见,只要求支持定长记录的存储,且不要求支持记录的跨块存储。
3.2.5Index ManagerIndex Manager负责B+树索引的实现,实现B+树的创建和删除(由索引的定义与删除引起)、等值查找、插入键值、删除键值等操作,并对外提供相应的接口。
B+树中节点大小应与缓冲区的块大小相同,B+树的叉数由节点大小与索引键大小计算得到。
3.2.6Buffer ManagerBuffer Manager负责缓冲区的管理,主要功能有:1.根据需要,读取指定的数据到系统缓冲区或将缓冲区中的数据写出到文件2.实现缓冲区的替换算法,当缓冲区满时选择合适的页进行替换3.记录缓冲区中各页的状态,如是否被修改过等4.提供缓冲区页的pin功能,及锁定缓冲区的页,不允许替换出去为提高磁盘I/O操作的效率,缓冲区与文件系统交互的单位是块,块的大小应为文件系统与磁盘交互单位的整数倍,一般可定为4KB或8KB。
3.2.7DB FilesDB Files指构成数据库的所有数据文件,主要由记录数据文件、索引数据文件和Catalog数据文件组成。
4评分标准本实验有一定的规模,实现上有一定的复杂度,推荐3-5人一组,完成一个完整的系统。
实验采用“优、良、中、及格、不及格”五级评分制,具体的评分标准如下:1.实验最后得分由总体设计报告得分、详细设计报告得分和期末验收得分组成,其比例分别20%、30%、50%;2.报告及时提交,则根据报告的质量给“优、良、中”中相应分级,未及时提交,则在报告质量分级基础上降一级,未提交报告或报告为抄袭,相应的报告得分为“不及格”;3.总体报告得分各小组成员相同,在总体报告中应给出各成员负责的模块,详细报告根据各人的任务单独给分。
4.多人协作完成一个完整的系统,经验收功能完善且几乎没有错误,则组内各成员验收得分都为优;如某模块功能不完善或有较多错误,则对负责该模块的成员进行扣分;5.多人协作完成一个系统,但最后系统无法联合运行,则按各人完成他负责的模块进行处理;6.一人完成一个模块,并能提供测试程序对该模块功能进行测试和演示,则根据测试结果给验收得分为“良、中、及格”,原则上不给“优”,不推荐完成Interpreter、API模块,原因是Interpreter模块与数据库理论联系不紧密,而API层的实现依赖于Catalog Manager、Index Manager、Record Manager,难以进行测试;7.若程序编写工作基本完成,但无法运行或无法进行测试,则根据程序质量给验收得分为“中、及格”8.若基本上末编写程序或程序纯属抄袭,验收得分为“不及格”。