实验三 SQL语言的DDL 实验报告

合集下载

实验三SQL语言的DDL实验报告

实验三SQL语言的DDL实验报告

实验三SQL语言的DDL实验报告实验目的:掌握SQL语言中的DDL(数据定义语言)的使用方法,包括创建和删除数据库、创建和删除数据表、修改数据表结构等。

实验环境:MySQL数据库实验内容:1.创建数据库:在MySQL中,使用CREATEDATABASE语句来创建数据库。

语法如下:CREATE DATABASE database_name;例如,创建名为"student"的数据库:CREATE DATABASE student;2.删除数据库:在MySQL中,使用DROPDATABASE语句来删除数据库。

语法如下:DROP DATABASE database_name;例如,删除名为"student"的数据库:DROP DATABASE student;3.创建数据表:在MySQL中,使用CREATETABLE语句来创建数据表。

语法如下:CREATE TABLE table_namecolumn1 data_type,column2 data_type,...例如,创建名为"student"的数据表,包含id、name、age三个列:CREATE TABLE studentid INT,name VARCHAR(255),age INT4.删除数据表:在MySQL中,使用DROPTABLE语句来删除数据表。

语法如下:DROP TABLE table_name;例如,删除名为"student"的数据表:DROP TABLE student;5.修改数据表结构:在MySQL中,使用ALTERTABLE语句来修改数据表结构。

语法如下:ALTER TABLE table_nameADD column_name data_type;ALTER TABLE table_nameMODIFY column_name data_type;ALTER TABLE table_nameDROP column_name;例如,向名为"student"的数据表中添加一个新的列"gender":ALTER TABLE studentADD gender VARCHAR(10);6.实验过程:首先,在MySQL中创建一个名为"student"的数据库:CREATE DATABASE student;然后,切换到"student"数据库:USE student;接着,创建一个名为"student_info"的数据表,包含id、name、age 三个列:CREATE TABLE student_infoid INT,name VARCHAR(255),age INT然后,向"student_info"数据表中插入一条记录:INSERT INTO student_info (id, name, age) VALUES (1, '张三', 20);接下来,修改"student_info"数据表的结构,添加一个新的列"gender":ALTER TABLE student_info ADD gender VARCHAR(10);最后,查询"student_info"数据表的内容,确认修改成功:SELECT * FROM student_info;实验结果:成功创建了名为"student"的数据库,并在其中创建了一个名为"student_info"的数据表。

SQL实验报告三

SQL实验报告三

实验三视图、索引及数据更新一、实验目的:熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练掌握数据插入、修改和删除的使用,为后继学习作准备。

二、实验属性验证性三、实验要求1.预习教材第三章,熟悉SQL语句。

2.熟悉SQL Server环境。

3.掌握建立索引的两种方法,即在基本表中建立和用命令方式建立。

4.掌握删除索引的方法。

5.掌握sql视图建立、修改和删除;6.掌握sql视图查询。

7.掌握sql数据插入、修改和删除语句的一般格式及使用方法。

四、实验原理SQL语言应用。

五、实验步骤:1 建立索引例3.1为学生选课数据库中的Students,Courses,Reports三个表建立索引。

其中Students 表按Sno(学号)升序建唯一索引,Courses表按Cno(课程号)升序建唯一索引,Reports表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

命令:CREA TE UNIQUE INDEX Stusno ON Student(Sno);CREA TE UNIQUE INDEX Coucno ON Course(Cno);CREA TE UNIQUE INDEX SCno ON SC(SnoASC,Cno DESC);例 3.2 在基本表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引,而且Students中的物理记录将按照Sname值和Sno值的升序存放。

命令:CREA TE CLUSTERED INDEX Stu_snamesno ON Student(Sname,Sno);2删除索引例3.3删除基本表Reports上的索引。

命令:DROP INDEX SC.SCno3 建立视图例3.4建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。

命令:CREA TE VIEW Smath AS SELECT Sno,Sname,Sage,Sdept FROM Student WHERE Sdept='数学'例3.5建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。

SQL实验报告(优秀范文5篇)

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语言的ddl实验报告范文

sql语言的ddl实验报告范文

sql语言的ddl实验报告范文篇一:实验二 SQL语言数据定义语言DDL一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。

是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL 中用DDL语言进行对表、索引、视图的增加、删除和改动。

掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。

掌握使用SQL语句定义和删除同义词。

二、实验要求1、实验前:预习实验内容,学习相关知识。

2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。

3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。

4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。

5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。

三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。

(2)用SQL语句定义索引(创建、删除)。

(3)用SQL语句定义视图(创建、删除)。

(4)用SQL语句定义同义词(创建、删除)。

2、难点:完整性约束的定义、增加及删除。

同义词的定义与删除。

四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。

软件:本机已安装MySQL 5.5数据库平台。

五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。

(2)掌握完整性约束定义、增加和删除的一般用法。

(3)掌握同义词定义、删除的一般用法。

(二)实验原理在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。

实验三 SQL语言的DDL及DML初步

实验三 SQL语言的DDL及DML初步

实验三SQL语言的DDL及DML初步1.1 实验目的本实验的目的是使学生熟悉SQL Server的查询分析器的使用用法,熟悉SQL Server的常用数据类型,熟练掌握简单表的创建与修改。

此外,通过此次实验,了解DDL语言的CREATE、DROP和ALTER对表进行操作;了解DML语言的INSERT语句,学会SQL Server 2000的查询分析器中用DML语言对表中的数据进行插入。

1.2 实验内容1、启动数据库服务软件SQL Server 2000的查询分析器。

(1)在程序菜单中选择Microsoft SQL Server,如下图1所示。

图1(2)选中查询分析器,如图2所示。

图 2(3)点击查询分析器后,出现连接到SQL Server窗口,如图3所示。

图 3(4)点击确定,出现SQL查询分析器主界面,如图4所示。

(5) 选择查询菜单,点击“更改数据库”,如图5所示。

(6)出现选择数据库窗口,如图6所示。

图6(7) 选择要修改的数据库,点击确定,进行修改。

2、在查询分析器中建立表(1)在查询分析器的查询窗口中输入SQL语句,如图7所示。

图7(2) 点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图8所示。

图8提示命令成功完成,或者报告出错信息。

3、查询分析器中向表添加数据(1)在查询分析器的查询窗口中输入SQL语句,如图9所示。

图9(2) 点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图10所示。

图101.3 实验任务一、实验任务11、打开数据库SQL Server 2000的查询分析器,用Create Table建表aa,表结构如下所示:2、用Create Table建表bb,表结构如下所示:3、用Drop Table删除表aa。

4、用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20。

二、实验任务25、打开数据库SQL Server 2000的查询分析器,用Create Table建表cc,表6、用INSERT语句对表cc插入6条记录三、实验内容37、基本表的建立:a)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,其中学号属性为主键,姓名值是唯一的;b)建立“课程”表kc,包括课程号kch,课程名称kcmc,先修课程xxkc,学分xf,要求建立主键;c)建立“成绩登记”表cjdj,包括学号xh,程号kch,成绩cj,要求建立主键及与student及kc表连接的外码。

实验3 SQL语言之DDL应用(附)

实验3 SQL语言之DDL应用(附)

实验三使用DDL创建、修改、删除数据库、表和索引姓名:学号:专业:网络工程班级:同组人:无实验日期:【实验目的与要求】1、了解SQL Server 2005数据库的逻辑结构和物理结构。

2、掌握使用SQL 语句创建和删除数据库。

3、掌握使用SQL 语句创建和删除表、索引等。

【实验准备】1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。

2.了解用SQL语句创建和删除数据库的基本语法。

【实验要求】1、熟练使用查询分析器进行数据库的创建和删除操作2、完成用sql语句建立和删除数据库3、完成用sql语句建立和删除数据库表的实验报告【实验内容】3.1.使用SQL创建与删除数据库使数据定义语句Create Database可以创建数据库,该语句在使用时应指明数据文件和日志文件存放的路径,初始数据文件的大小等参数。

阅读以下是创建数据库SalesDB的SQL语句,理解其功能,并置于查询分析器中执行:create database SalesDBon(name= SalesDB_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='C:\Exam03\SalesDB4.mdf' ,--物理名称,注意路径必须存在size=5,--数据初始长度为5Mmaxsize=10,--最大长度为10Mfilegrowth=1--数据文件每次增长1M)log on(name= SalesDB_log,filename='C:\Exam03\SalesDB4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)运行上述语句建立数据库SalesDB。

请给出语句执行结果截图:2.用SQL语句删除前面实验中建立的数据库SalesDB给出相关语句:Drop database salesdb;给出测试结果:3.2.分别用向导和SQL语句创建和删除表1. 在上面实验建立的数据库SalesDB中,根据分析需要如下几个表:表3.1 Product表(产品表)字段名称类型宽度允许空值主键说明Pno char 6 NOT NULL 是产品编号Pname char 30 NOT NULL 产品名称Price float NULL 价格Stocks int NULL 库存量表3.2 Customer表(客户信息表)字段名称类型宽度允许空值主键说明Cno char 6 NOT NULL 是客户编号Cname char 30 NOT NULL 客户名称Region char 10 NULL 地区Leader char 8 NULL 负责人Tel char 12 NULL 电话表3.3 Product_Customer表(产品销售表)字段名称类型宽度允许空值主键说明Pno char 6 NOT NULL 是产品编号,外键,参照Product表Cno char 6 NOT NULL 是客户编号,外键,参照Customer表Cdate datetime 8 NOT NULL 是销售日期Count int 数量Sales float 销售额2.根据如上表结构用向导(企业管理器)创建各表。

实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。

3.熟练掌握各种查询条件的表示。

4.掌握排序和分组操作在SQL语句中的实现。

5.掌握集函数的使用。

实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。

);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。

2.并输入数据,设置主键。

3.建立索引及三表之间关系。

4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。

sql语言的ddl实验报告范文

sql语言的ddl实验报告范文

sql语言的ddl实验报告范文实验报告标题:SQL语言的DDL实验报告实验目的:1. 掌握SQL语言的DDL(Data Definition Language)的基本概念和用法;2. 熟悉DDL语句的创建和管理数据库对象的操作。

实验环境:1. 编程语言:SQL;2. 数据库管理系统:MySQL。

实验步骤:1. 创建数据库:首先使用DDL语句创建一个新的数据库。

例如,使用如下语句创建一个名为“test”的数据库:```CREATE DATABASE IF NOT EXISTS test;```2. 使用数据库:使用DDL语句选择要使用的数据库。

例如,使用如下语句选择之前创建的“test”数据库:```USE test;```3. 创建表:使用DDL语句创建一个新的数据库表。

例如,创建一个名为“students”的表,包含学生的姓名、年龄和性别信息:```CREATE TABLE IF NOT EXISTS students (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,age INT NOT NULL,gender ENUM('男', '女') NOT NULL);```4. 查看表结构:使用DDL语句查看数据库表的结构。

例如,使用如下语句查看之前创建的“students”表的结构:```DESC students;```5. 修改表结构:使用DDL语句修改数据库表的结构。

例如,使用如下语句添加一个新的字段“score”到“students”表中:```ALTER TABLE students ADD score INT;```6. 删除表:使用DDL语句删除数据库表。

例如,使用如下语句删除之前创建的“students”表:```DROP TABLE IF EXISTS students;```实验结果与总结:经过以上实验步骤的操作,我们成功使用SQL语言的DDL实现了数据库的创建、使用、表的创建、查看表结构、修改表结构和删除表等操作。

SQL数据库实验报告 实验三

SQL数据库实验报告 实验三

实验3 SQL Server数据表的管理1.实验目的(1)掌握使用SQL Server管理平台和Transact-SQL语句CREA TE TABLE和ALTER TABLE创建和修改表的方法。

(2)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。

(3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。

(4)了解SQL Server的常用数据类型。

2.实验内容及步骤(1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。

(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。

图1-2 学生基本情况表student_info图1-3 课程信息表curriculum图1-4 学生成绩表grade(3)在SQL Server管理平台中创建student_info、curriculum表。

(4)在SQL Server 管理平台中,将student_info 表的学号列设置为主键,非空。

(5)使用Transact-SQL语句CREA TE TABLE在studentsdb数据库中创建grade表。

(6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。

图1-5 student_info的数据图1-6 curriculum的数据图1-7 grade的数据(7)在SQL Server管理平台中为student_info、curriculum、grade表添加数据。

(8)使用Transact-SQL语句INSERT INTO...V ALUES向studentsdb数据库的grade表插入数据:学号为0004,课程编号为0001,分数为80。

(9)使用Transact-SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。

SQL数据库实验

SQL数据库实验

《数据库设计》实验报告实验名称:数据定义语言DDL实验任课教师:张三学号:123456 姓名:李四完成日期: 2018.10.21一、实验目的1、熟悉ORACLE的数据库管理和数据库操作环境。

2、通过SQL的DDL定义和修改基本表。

3、通过SQL的DDL建立与删除索引。

二、实验内容1、进入ORACLE的环境,创建scott用户,至少分配CONNECT和RESOURCE角色,使用户拥有一定的数据库操作权限。

用户名:scott 口令:tiger2、在SQL命令环境中用create table语句创建学生表(Student)、课程表(Course)和学生选课表(SC)三个基本表。

表1-1 学生表Student表1-2 课程表Course表1-3 学生选课表SC(1)定义Student基本表,其中Sno为主码。

create table Student(sno char(5) not null primary key, sname varchar(10) unique,ssex char(3) not null,sage number(3) default 0,sdept varchar(10));(2)定义COURSE基本表:create table Course(cno char(1) not null primary key, cname VARCHAR2(15) not null,cpno char(1) default 0,ccredit number(1) default 0);(3)定义SC基本表:create table SC(sno char(5) not null,cno char(1) not null,grade number(3) default 0,primary KEY (sno,cno));(4)显示基本表结构:DESC Student;DESC Course;DESC SC;(5)显示SCOTT用户模式的基本表和视图:SELECT * FROM Student;SELECT * FROM Course;SELECT * FROM SC;3、用Alter Table 语句修改基本表结构:(1)对Student表增加“籍贯”属性列,VARCHAR2(20); ALTER TABLE STUDENTadd place VARCHAR(20);(2)对Student表增加“入学时间”属性列,日期型;ALTER TABLE STUDENTadd TIMETOSHOOL DATE;(3)对Course和SC表更新涉及“课程号”,“先行课号”属性列长度为2; ALTER TABLE COURSE MODIFY CNO CHAR(2);ALTER TABLE COURSE MODIFY CPNO CHAR(2);ALTER TABLE SC MODIFY CNO CHAR(2);(4)删除学生姓名必须取惟一值的约束。

sql语言的ddl实验报告范文

sql语言的ddl实验报告范文

SQL语言的DDL实验报告范文实验目的本次实验的目的是学习和掌握SQL语言的DDL(数据定义语言),熟悉其基本操作和语法,能够独立完成数据表的创建、修改和删除操作。

实验环境本次实验使用的是MySQL数据库管理系统,在Windows系统下进行。

使用的版本为MySQL 5.7。

实验中使用的SQL语句均在MySQL Workbench中编写并执行。

实验步骤1. 数据表的创建首先,在MySQL中创建一个新的数据库,命名为mydb。

创建成功后,使用该数据库进行接下来的实验操作。

然后,我们需要创建一个新的数据表。

下面是我们要创建的数据表的结构:字段名类型长度备注id int 自动编号,主键name varchar 50 姓名age int 年龄gender varchar 10 性别phone varchar 20 手机号码address varchar 100 居住地址我们可以使用以下SQL语句来创建该数据表:CREATE TABLE mydb.students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10),phone VARCHAR(20),address VARCHAR(100));上述代码中,CREATE TABLE语句用于创建数据表,紧接着是数据表的名称mydb.students。

括号内是数据表的结构,每个字段之间用逗号隔开,每个字段包括字段名、类型和长度(有些类型不需要长度)。

其中,id字段为主键,并使用AUTO_INCREMENT进行自动编号。

执行以上代码后,我们就成功地创建了名为students的数据表。

2. 数据表的修改在实际使用过程中,我们有时需要对数据表进行修改,以满足新的需求。

在MySQL中,我们可以使用ALTER TABLE语句来进行数据表的修改。

例如,我们想要在students表中新增一个字段email,可以使用以下SQL语句来实现:ALTER TABLE mydb.studentsADD email VARCHAR(50);上述代码中,ALTER TABLE语句用于修改数据表,接着是数据表的名称mydb.students。

sql语言的ddl实验报告范文

sql语言的ddl实验报告范文

2020sql语言的ddl实验报告范文Contract Templatesql语言的ddl实验报告范文前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况,答复上级机关的询问。

按性质的不同,报告可划分为:综合报告和专题报告;按行文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。

体会指的是接触一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想法和自己的理解本文内容如下:【下载该文档后使用Word打开】篇一:实验二SQL语言数据定义语言DDL一、实验目的SQL(StructuredQueryLanguage)语言是关系数据库的标准语言。

是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER 对表、索引、视图的操作,掌握在NavicatforMySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。

掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。

掌握使用SQL语句定义和删除同义词。

二、实验要求1、实验前:预习实验内容,学习相关知识。

2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。

3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。

4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。

5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。

三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。

(2)用SQL语句定义索引(创建、删除)。

(3)用SQL语句定义视图(创建、删除)。

(4)用SQL语句定义同义词(创建、删除)。

2、难点:完整性约束的定义、增加及删除。

实验3_SQL语言(1)实验报告

实验3_SQL语言(1)实验报告

实验3 _ SQL语言(1)实验报告03CS__31311060__周燕红一、实验目的1.熟悉标准SQL中的简单的Select语句和DDL语言2.DML语言和关系表的约束规范3.了解查询执行计划、加深理解关系代数理论4.了解数据库系统的数据字典5.熟悉SQL Server的相关工具的使用二、实验素材考虑一个简单的数据库,在这个数据库中,只有供应商、零件和项目这三个实体,下面给出这个数据库的概念模型。

其中主码用下划线标出。

实体有:z供应商(S) 属性有S#、SNAME、STATUS、CITY。

z项目(J) 属性有J#、JNAME、CITYz零件(P) 属性有P#、PNAME、COLOR、WEIGHT、CITY这三个实体之间的联系为:供应商给项目提供多少零件,可以用SPJ来表示,它的属性有:S#、P#、J#、QTY。

三、实验活动及其要求(一)熟悉交互式SQL的环境,了解常见的系统表。

了解下列系统表的主要作用和主要属性列,要求:a、知道这些系统表的作用,普通用户常用哪些属性列;b画出数据字典的结构图――也就是下列关系表的引用、依赖关系。

(1)该部分实验均在SQL查询分析其中进行,对于各表的相关内容(如表中各个属性列的数据结构等)可以通过察看对象浏览器获得,在此不作具体说明。

关于系统表的详细说明,及它们的各个属性列的含义在SQL Server 联机丛书中均能找到,在此就不详细叙述了,而仅仅通过简单的select语句,看直观的看看这些表的相关信息。

z Sysdatabases表该表在master数据库下,存放系统的现有的数据库信息。

其中普通用户常用的属性列有:name(即dbname),dbid,crdate、status。

打开SQL查询分析器,在master数据库下,输入查询语句:select* from sysdatabases分析查询语句后执行,则可得到该表的内容,如下表所示:(仅给出表的部分列)z Sysobjects 表该表存放某个数据库中现有的数据库对象,包括用户表、系统表、索引、视图、函数、触发器等。

sql语言实验报告[最新版]

sql语言实验报告[最新版]

sql语言实验报告sql语言实验报告篇一:数据库SQL语句实验报告《数据库原理及应用》实验报告SQL语句部分班级: 11-37-06 学号:姓名:总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的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.创建学生课程数据库create database Studend; 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。

PRIMARY KEY, Sname CHARUNIQUE, Ssex CHARprimary key, CnameCHARSQL定义语言实验目的:1.熟练掌握SQL语言进行基本表结构的创建。

2.熟练应用SQL语言进行表结构的修改。

3.掌握SQL语言进行基本表的删除。

4.掌握SQL语言进行索引的建立和删除5.选择具体的数据库管理系统进行实现(Access 或SQL Server)实验内容和要求: 1.切换到Access的SQL视图或者打开SQL Server查询分析器进行定义操作2.用SQL语言CREATE TABLE语句创建学生表student、课程表course和选课表SC;(字段类型及长度参照实验一)3.用SQL语言ALTER语句修改表结构;a)STUDENT表中SNO设为非空和唯一;b)STUDENT表中增加一个字段SBIRTH,类型设置为日期时间类型,增加一个ADDRESS字段,类型为文本(字符);c)删除STUDENT表中ADDRESS字段;d)COURSE表中CNO字段设为非空和唯一;4.重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;5.用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引;6.用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引;7.用SQL语言DROP语句删除索引;8.输入部分数据,并试着修改其中的错误;实验过程与步骤:(1)创建学生表student的实现如下:create table student, ssex char , sage smallint, sdeptchar);(2)创建课程表course的实现如下:create table course, cnamechar); (4)创建选课表sc实现如下:create tablesc); (5)表建完后,就是对表结构的操作,可用drop删除表的某一列,create index 创建索引,用add constraint添加属性等,具体操作详见压缩包对实验内容的实现的命令。

实验三SQL语言的DDL

实验三SQL语言的DDL

实验三SQL语言的DDL第一篇:实验三 SQL语言的DDL实验三视图、存储过程的定义和使用一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。

是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

本次实验了解DDL语言的CREATE、DROP、ALTER对视图和存储过程的操作,学会SQL Server 2000的查询分析器中实现视图的创建、查看、修改和删除;实现对存储过程的创建、修改、撤消和运行。

本实验需2学时。

二、实验内容1.启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对视图进行操作,详细的语法格式参看课本相应章节:Create view 创建视图Drop view删除视图Select * from 视图名查询视图2.如下语句对存储过程进行操作,详细的语法格式参看课本相应章节:Create proc 过程名Dropproc 过程名三、实验任务1.打开数据库SQL Server 2000的查询分析器,用Create Table 建表student。

2.向表中填入教材P82数据3.根据student表创建视图V_stud.4.使用视图v_stud,向原student表中插入一行记录。

5.根据P82,创建SC表,创建视图,通过视图查看学生的姓名和选课情况。

6.删除视图v_stud.7.根据student,sc,c三个表,创建存储过程proc1,查看学生的姓名,选课的课程名和相应的成绩。

8.执行proc19.修改该存储过程为p_proc,并删除proc1.运行以上语句,并观察结果.10.将以上的SQL语言以报告的形式写出来,以备老师检查。

第二篇:重庆理工大学实验二 SQL语言的DDL实验二SQL语言的DDL一.实习目的及要求:本次实验了解SQL的数据定义语句:(1)创建数据库、表、索引(2)增加、删除表结构(3)修改表结构二实习内容:用SQL语句建立SPJ数据库(见书P74,5),数据库名取自己的名字,如:张三。

实验三 SQL语言的DDL 实验报告

实验三 SQL语言的DDL 实验报告

实验三SQL语言的DDL 实验报告实验三 SQL语言的DDL 实验报告实验任务1.打开数据库SQL Server 2008的查询分析器,用Create Table建表Student,course,sc。

数据库的名称为“学生选课”,各个表结构如教材P85页所示。

以下要求用T-SQL来实现:创建student表:CREATE table Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );创建course表:CREATE TABLE Course(Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4), Credit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );创建sc表:CREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENces Course(Cno) );2.向表中填入教材P82数据。

3.向Student 表增加“入学时间”列(列名为Scome,日期型)ALTER TABLE Student ADD Scome DATE;4.将年龄的数据类型改为整型。

ALTER TABLE Student ALTER COLUMN Sage INT;5. 为Student中Sname添加列级完整性约束,不能为空。

为Student中Sno 添加列级完整性约束,取值唯一,不能为空。

Sname添加列级完整性约束,不能为空ALTER TABLE Student ADD CONSTRAINT c1 CHECK(Sname IS NOT NULL); 图示为插入元组时Sname列内为空时数据输入失败:Sno添加列级完整性约束,取值唯一,不能为空ALTER TABLE Student ADD CONSTRAINT c2 UNIQUE(Sno)ALTER TABLE Student ADD CONSTRAINT c3 CHECK(Sno IS NOT NULL);6. 删除Student中Sname 列级完整性。

sql语言的ddl实验报告范文实验报告

sql语言的ddl实验报告范文实验报告

SQL语言的DDL实验报告前言随着信息化时代的发展,数据的管理和处理越来越得到重视。

而SQL语言作为一种重要的数据管理语言,在实际应用中扮演着重要的角色。

本实验旨在通过学习实验资料并动手实践,掌握SQL语言的DDL(数据定义语言)的概念和应用。

实验目的1.掌握DDL语言的基本概念和语法;2.掌握利用SQL语言创建、修改、删除数据表的方法;3.学会使用SQL语言创建、修改、删除数据表后,实现数据的存储和查询。

实验环境为了完成实验,需要准备以下环境:1.安装MySQL数据库;2.安装MySQL Workbench;3.实验所需数据库。

实验步骤创建数据表打开MySQL Workbench,进入SQL Editor,输入以下SQL语句:CREATE DATABASE mydb;USE mydb;CREATE TABLE students(id INT(4) NOT NULL,name VARCHAR(20) NOT NULL,gender ENUM('男','女') NOT NULL DEFAULT'男',age INT(3) NOT NULL,PRIMARY KEY (id))这段代码的意思是:在mydb数据库中创建一个名为students的数据表,数据表包含以下字段:id、name、gender、age,其中id是主键,且不能为空。

查看数据表输入以下代码查看是否创建成功:SHOW TABLES;如果成功创建,会显示出students数据表。

插入数据通过以下SQL语句向students表中插入3条数据:INSERT INTO students (id, name, gender, age) VALUES(1, '张三', '男', 18),(2, '李四', '女', 19),(3, '王五', '男', 20);修改数据表实验要求修改数据表,在students表中增加一个score字段:ALTER TABLE students ADD score INT(3) DEFAULT0;更新数据输入以下代码,向学生张三的score字段更新数据:UPDATE students SET score=80WHERE name='张三';删除数据输入以下语句,删除数据表中张三的信息:DELETE FROM students WHERE name='张三';删除数据表输入以下语句,删除students数据表:DROP TABLE students;实验总结在本次实验中,我们通过实践掌握了SQL语言的DDL的概念和应用,学会了通过SQL语言创建、修改、删除数据表。

实验报告sql语言的ddl实验报告范文_0738

实验报告sql语言的ddl实验报告范文_0738

2020实验报告sql语言的ddl实验报告范文_0738EDUCATION WORD实验报告sql语言的ddl实验报告范文_0738前言语料:温馨提醒,教育,就是实现上述社会功能的最重要的一个独立出来的过程。

其目的,就是把之前无数个人有价值的观察、体验、思考中的精华,以浓缩、系统化、易于理解记忆掌握的方式,传递给当下的无数个人,让个人从中获益,丰富自己的人生体验,也支撑整个社会的运作和发展。

本文内容如下:【下载该文档后使用Word打开】SQLServer20xx的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。

SQL(StructuredQueryLanguage)语言是关系数据库的标准语言。

是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

在本次实验中熟悉表的创建、删除、修改及索引的创建与删除1.启动数据库服务软件SQLServer20xx的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节:CreateTable建表DropTable删除表AlterTable更改表2.如下语句对索引进行操作,详细的语法格式参看课本相应章节:CreateIndex建立索引DropIndex删除索引1.打开数据库SQLServer20xx的查询分析器,用CreateTable建表aa,表2.用CreateTable建表bb,表结构如下所示(其中Bb1与Bb2的组合是主键):3.用DropTable删除表aa。

4.用AlterTable修改表bb,添加一个字段Bb4,类型Varchar,长度20。

5.用CreateIndex对表Bb的Bb3字段建立一个升序索引,索引名Indexbb。

6.用DropIndex删除索引Indexbb。

CreateTableaa(Aa1Varchar(20)primarykey,Aa2Int,Aa3Decimal);CreateTablebb(Bb1Varchar(30),Bb2Int,Bb3Decimal(6,2),primarykey(Bb1,Bb2));DropTableaa;AlterTablebbaddBb4Varchar(20);CreateIndexIndexbbonbb(Bb3asc);DropIndexbb.Indexbb;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三SQL语言的DDL 实验报告
实验任务
1.打开数据库SQL Server 2008的查询分析器,用Create Table建表Student,course,sc。

数据库的名称为“学生选课”,各个表结构如教材P85页所示。

以下要求用T-SQL来实现:
创建student表:
CREATE table Student
(Sno CHAR(9)PRIMARY KEY,
Sname CHAR(20)UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
创建course表:
CREATE TABLE Course
(Cno CHAR(4)PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Credit SMALLINT,
FOREIGN KEY (Cpno)REFERENCES Course(Cno)
);
创建sc表:
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENces Course(Cno)
);
2.向表中填入教材P82数据。

3.向Student 表增加“入学时间”列(列名为Scome,日期型)
ALTER TABLE Student ADD Scome DATE;
4.将年龄的数据类型改为整型。

ALTER TABLE Student ALTER COLUMN Sage INT;
5. 为Student中Sname添加列级完整性约束,不能为空。

为Student中Sno添加列级完整性约束,取值唯一,不能为空。

Sname添加列级完整性约束,不能为空
ALTER TABLE Student ADD CONSTRAINT c1CHECK(Sname IS NOT NULL);
图示为插入元组时Sname列内为空时数据输入失败:
Sno添加列级完整性约束,取值唯一,不能为空
ALTER TABLE Student ADD CONSTRAINT c2UNIQUE(Sno)
ALTER TABLE Student ADD CONSTRAINT c3CHECK(Sno IS NOT NULL);
6. 删除Student中Sname 列级完整性。

ALTER TABLE Student DROP CONSTRAINT c1;
7.为SC按学号升序和课程号降序建立唯一索引。

CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
8. 建立Student、Course及SC的主码约束。

在建立Student、Course、SC表的主码约束时出现错误,原因是在创建各个表时已经定义了主码约束,因此再次建立时失败。

(1)Student表主码约束建立失败
(2)Course表主码约束建立失败
(3)SC表主码约束建立失败
9.建立 Student与SC、Course与SC之间的外码约束。

ALTER TABLE SC ADD CONSTRAINT C5FOREIGN KEY(Sno)REFERENCES Student(Sno) ALTER TABLE SC ADD CONSTRAINT C6FOREIGN KEY(Cno)REFERENCES Course(Cno);
10.实现学生性别只能是“男”或“女”的Check(检查)约束。

ALTER TABLE Student ADD CONSTRAINT C7CHECK (Ssex IN('男','女'))
11.实现学生年龄只能小于等于30大于17的语义约束。

ALTER TABLE Student ADD CONSTRAINT C8CHECK (Sage>17 AND Sage<=30)
12. 用Create Index对表student的Sname字段建立一个升序索引,索引名Indexs。

CREATE UNIQUE INDEX Indexs ON Student(Sname)
13.用Drop Index删除索引Indexs。

DROP INDEX Student.Indexs
实验报告完毕!。

相关文档
最新文档