大型数据库资料打印.docx
【例】创立一个students数据库,该数据库有1个10MB>1个20MB的数据文件和2个IoMB的日志文件。数据文件的逻辑名称为:Studentl和student2;物理名称为:StudentLmdf和student2.ndf;主文件是student由PRIMARY指定;两个数据文件的最大尺寸分别为无限大和IOoMB,增长速度分别为10%和1MB。事务日志文件逻辑名称为StIldelItlOgl和StUdeIltlOg2,物理文件名为StlldentlOgI.Idf和StiIdelltlog2.ldf,最大尺寸分别为50MB,增长速度分别为IMBe数据文件存放在D:data下,日志文件存放在E:data。createdatabasestudentsONPRIMARY(NAME=tSTUDENTl1,FILENAME=DAdataVSTUDENTLMDFt,SIZE=10MB,Maxsize=Unlimited,FILEGROVVTH=10%),(NAME=SrUDENT2FILENAME=,DdataSTUDENT2.NDF,SIZE=20MB,Maxsize=100MB,Filegrovvth=IMB)logON(NAME=,STUDENTLOG,FILENAMETeAdataVSTUDENTLOGLLDF',SIZE=10MB,MAXSIZE=50MB,Filegrovvth=IMB),(NAME=tSTUDENTLOGZ',FlLENAME='e:dataSTUDENTLOG2.LDF',SIZE=10MB,MAXSIZE=50MB,Filegrowth=IMB)go工程实训创立名为“goods"的数据库,要求:1、主数据文件名为goods_data.MDF,存放在e:目录下,初始值大小为5MB,增长方式为按照10%的比例增长;2、次数据文件名为goods_datal.NDF和goods_data2.NDF,都存放在D:目录下,初始大小为IMB,增长方式为按2MB的增量增长,文件组为aa;3、日志文件名goodsog.LDF,都存放在E:目录下,初始大小为3MB,增长方式为按照IMB的增量增长。要求分别使用企业管理器和Transact-SQL语句,并记录完整语句。4、对上述数据库分别进展查看、别离、附加、脱机、联机、收缩、删除等操作。CREATEDATABASEGOODSONPRIMARY(NAME=,goods-data.MDF,FlLENAME='C:goods_data.MDF、SIZE=5,FILEGROWTH=10%),FILEGROUPaa(NAME=,good-data2.NDE,FILENAME='D:good_data2.NDF',SIZE=I,FILEGROVVTH=2),(NAME=,good-datal.NDFFILENAME='D:good_datal.NDF',SIZE=I,FILEGROWTH=2)1.OGON(NAME=,goodsJog.LDF,FlLENAME=tEAgoodsJogXDF',SIZE=3,Filegrovvth=I)在数据库XSCj中的表“学生基本信息表"中定义学生性别列只能是“男"或"女",如果用户输入其它值,系统均提示用户输入无效。usexscjALTERTABLE学生基本信息表addCoNSTRAlNTck_studJnfoCHECK(性别=N'男'or性别二N'女')/*删除约束名为aCK-StudJnfo*的约束的语句是:*/ALTERTABLE学生基本信息表DROPCONSTRAlNTcMtudJnfo例:在Employees表中给EmployeeID字段添加Check约束,使EmpIoyeeII)>100ALTERTABLEEmployeesWITHNOCHECKADDCONSTRAINTID_checkCHECK(EmployeeID>100)WITHNOCHECK防止根据现有记录验证该约束default约束的创立、查看、删除/*为表StudJnfo创立一个约束名为de-gender*的DEFAULT约束,要求性别(gender)的默认值为“男"。其TfQL语句*/ALTERTABLEstudJnfoADDCoNSTRAINTde_genderDEFAULTN男FORgender/*删除DEFAULT约束的语句:*/ALTERTABLEstudJnfoDROPCONSTRAINTde,genderPrimarykey约束的创立、查看、删除/*为表ShKLiIIfo中的学号(StluLid)定义主键。其TfQL语句如下:*/ALTERTABLEstudJnfoADDCONSTRA1NTPK_XHPRIMARYKEYCLUSTERED(StudJd)*删除该主键的TSQL语句*/ALTERTABLEstudJnfoDROPCONSTRAINTPK_XH例:在EmPloyeeS表中,给字段Name增加PRlMARYKEY约束,并设为非聚集索引(默认主键列为聚集索引)ALTERTABLEEmployeesADDCONSTRAINTPK.NamePRIMARYKEYNONCLUSTERED(Name)外键约束的创立、查看、删除/*为学生成绩表StlKLgrade与课程信息表IeSSOli_info创立外键约束,其TSQL语句如下:*/-为IessonJnfo表中的CourseJd列建设主键约束ALTERTABLEIessonJnfbADDCONSTRAlNTpk_courseJdPRIMARYKEYCLUSTERED(course.id)-为stud_grade表中的CourseJd列建设外键约束ALTERTABLEstudqradeADDCONSTRAINTfk_course_idFOREIGNKEY(CourseJd)REFERENCESlesson_info(course_id)UNIQUE约束的创立、查看、删除/*针对学生基本信息表的“号码”创立UNIQUE约束。具体语句如下:*/ALTERTABLEstudJnfoADDCONSTRAINTUN.telcodeUNIQUE(telcode)*删除UNlQUE约束的TfQL语句如下:*/ALTERTABLEstudJnfoDROPCONSTRAINTUN.telcode查询少数民族学生的基本情况。USEXSCJSELECT*FROM学生基本信息表WHERE族别。,汉族4、 ToP关键字的使用用于提取前几条,或者前百分比数据。语法:ToP(EXPRESSIoN)PERCENT例:查询前三名同学的所有信息SELECTTOP(3)*FROMstudent5、DISTINCT关键字的使用例:查询所有学生所在的城市,要求没有重复信息SELECTDISTINCTCityFROMstudent例:查询所有学生的姓名、学号以及出生年并按姓名升序和出生年降序排列SELECTName,Numb,YearFROMstudentORDERBYName,YearDESC例查询所有男生学号、姓名和年龄,并按出生日期进展排列(升序)的语句:USEstudentGOSELECTstud_id学号,name姓名,year(getdate()-year(birthday)年龄,birthday出生日期FROMStudJnfoWHEREgender=N'男'ORDERBYbirthdayASC例、统计计算机工程系各个专业的学生的平均入学成绩的语句:USEstudentGOSELECTsubstring(stud_id,5,2)专业编号,avg(mark)平均入学成绩FROMstudJnfbWHERESUbString(SnKUd,3,2)='0GROUPBYsubstring(studJd,5,2)-1、在学生基本信息表中查询所有姓,王,的学生的学号、姓名、家庭住址。select学号,姓名,家庭住址from学生基本信息表where姓名like'王'-2、查询所有出生日期在1985-03-10室W986-03-l(之间学生的学号和姓名。select学号,姓名,出生日期from学生基本信息表where出生日期between'03/10/1985'and'03/10/1986'-3、查询课程编号为,007号课程成绩高于80分的学生学号,姓名,课程编号,成绩。selecta.学号,a.姓名,b.课程编号,b.成绩from学生基本信息表a,成绩表bWherea.学号=b.学号and课程编号='002,and成绩>80-4、从学生基本信息表中查找所有新疆学生的记录。select*from学生基本信息表Where家庭住址like,%新疆,-5、从学生基本信息表中检索学号末位数字是奇数的学生。select*from学生基本信息表whereright(rtrim(学号),l)%2<>0-6、查询学生的学号,姓名,课程编号,成绩,并按成绩降序、姓名升序排列selecta.学号,a.姓名b课程编号,b.成绩from学生基本信息表a,成绩表bwherea.学号=b.学号orderby成绩desc,姓名-7、统计各民族男女生的学生总数,输出结果包含:性别、族别、人数。select性别,族别,count(*)as人数from学生基本信息表groupby族别,性别-8、在成绩表中统计每个学生的学号,平均成绩及总成绩。select学号,avg(成绩)平均成绩,sum(成绩)总成绩from成绩表groupby学号-9、查询总成绩小于500分的学生学号、姓名、总成绩及所在班级selecta.学号,a.姓名,c.班级名称,sum(成绩)总成绩from学生基本信息表a,成绩表b,班级表Cwherea.学号=b.学号anda.班级编号=c.班级编号groupbya.学号,a.姓名,c.班级名称havingSUm(成绩)<500-10、查询C语言程序设计课程成绩大于等于60分的学生姓名、课程名称及成绩。selecta.姓名,b.成绩C课程名称from学生基本信息表a,成绩表b,课程信息表Cwherea.学号=b.学号andb.课程编号=c.课程编号andc.课程名称=C语言程序设计,andb.成绩=60-11、列出成绩表中各门课程的学生学号、课程编号和成绩以及该门课程的平均分、最高分和最低分。select学号,成绩,课程编号from成绩表orderby课程编号computeavg(成绩),max(成绩),min(成绩)by课程编号-12、列出C语言程序设计课程成绩高于该门课程平均分的学生信息。selecta.*from学生基本信息表a,成绩表b,课程信息表Cwherea.学号=b.学号andb.课程编号二c.课程编号andc.课程名称=C语言程序设计'andb成绩(selectavg(成绩)from成绩表a,课程信息表bwherea.课程编号二b.课程编号andb.课程名称=C语言程序设计')-13、查询选修了课程名称为C语言程序设计课程的学生基本信息,select*from学生基本信息表where学号in(SeIeCta.学