数据库语句总结_mysql常用语句总结

2020-02-27 其他工作总结 下载本文

数据库语句总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“mysql常用语句总结”。

实验四

1、建立数据库

createdatabaseTSJY on(name=TSJY, filename='E:TSJY.mdf', size=10MB, maxsize=100MB, filegrowth=1MB)logon(name='TSJY_log', filename='E:TSJYT.ldf', size=5MB, maxsize=50MB, filegrowth=1MB);

2、建表

useS_T createtableStudent(Snochar(11)notnullprimarykey, Snamechar(8)notnull, Ssexchar(2)notnull, SageTinyintnotnull, Sdeptchar(10)notnull check(Ccredit >=1 and Ccredit =1 and Grade

3、将course表的cpno的长度改为3 altertableCoursealtercolumncpnochar(3)

4、给student表中的ex列的增加默认约束,默认值为“男”

altertableStudentaddconstraintdf_Student_Ssex default'男'forSsex;

5、为course表增加一列teacher,char(8)altertableCourseaddteacherchar(8);

6、删除course表的teacher列

altertableCoursedropcolumnteacher;

7、插入数据

insertintoS(SNO,SNAME,STATUS,CITY)values('S1','精益','20','天津'),('S2','盛锡','10','北京'),('S3','东方红','30','北京'),('S4','丰泰盛','20','天津'),('S5','为民','50','上海');

8、为S表设一个主键

altertableSaddprimarykey(SNO);

9、为S表增加一个唯一索引s_sno createuniqueindexs_snoonS(SNO);为SPJ表增加索引spj_sno_pno_jno,要求索引列sno用降序,pno、jno用升序

createindexspj_sno_pno_jnoonSPJ(SNOdesc,pno,jno);为HISD的Doctor表按医生ID(dID)升序建立唯一索引

createuniqueindex Dindex on Doctor(dID)

为HISD的Doctor表按医生ID(dID)降序建立唯一索引

createuniqueindex Dindex on Doctor(dID desc)

10、为SPJ表加外键约束(若建表时已经建立外键,可以先删除某个已有外键,重新建立

altertableSPJaddconstraintFK_SNOforeignkey(SNO)referencesS(SNO);altertableSPJaddconstraintFK_PNOforeignkey(PNO)referencesP(PNO);altertableSPJaddconstraintFK_JNOforeignkey(JNO)referencesJ(JNO);

11、为SPJ表增加列qty的检查约束,要求qty>0 altertableSPJaddconstraintCK_SPJ_qtycheck(qty>0);

12、删除SPJ表的检查约束CK_SPJ_qty altertableSPJdropconstraintCK_SPJ_qty13、查询全体学生的学号与姓名

select Sno,Sname FROM Student14、查询全体学生的基本信息

select * FROM Student15、查询全体学生的姓名、出生年份及所在系

uses_t SELECTSname,year(getdate())-sagebirthyear,sdept FROMstudent16、查询选修了课程的学生学号。(掌握distinct的用法)

SELECTdistinctSnoFROMSC17、查询年龄在18-20岁间的06级的学生姓名及学号

SELECTSname,SnoFROMstudentWHERESageBETWEEN 18 AND 20 ANDSNOlike'2006%'

18、查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别

SELECT Sname,Ssex

FROM Student WHERE Sdept IN('IS','MA','CS');

19、查找所有姓李的学生的信息

SELECT*FROMstudentwhereSnamelike'李%' 20、查找所有已选修但没有成绩的学生学号。

selectSno fromSC whereGradeisnull21、对所有已选课的学生按学号进行升序排列,同时要求每个学生按成绩降序排列。(掌握order by的用法)

selectSno,Grade fromSC orderbySno,Gradedesc22、统计每门课程的选课人数。(掌握group by用法)

selectcourse.Cname,COUNT(sc.Cno)as人数

fromcourse,SC wherecourse.Cno=SC.Cno groupbyCname23、统计重名的学生姓名及人数。

selectSname,COUNT(*)as人数 fromstudent groupbySname havingCOUNT(*)>124、统计男生与女生的人数。

selectex,COUNT(sno)cnt fromstudent groupbyex25、查询“计算机系”年龄最大的学生的基本信息。

select* fromstudenta whereSage=(selectMAX(Sage)fromstudentb whereSdept='计算机系')

实验五

26、打出所有供应商的姓名和所在城市。

useSPJ selectSNAME,CITY froms27、找出所有零件的名称及重量。

useSPJ selectPNAME,WEIGHT fromp28、统计每个供应商供应的各种零件数量。

selectPNAME,COUNT(PNAME)cnt fromP,SPJ whereP.PNO=SPJ.PNO groupbyPNAME29、求供应工程J1零件的供应商号码SNO。

useSPJ selectdistinctsno fromspj wherejno='j1' 30、求供应工程J1零件P1的的供应商号码SNO。

useSPJ selectdistinctsno fromspj wherejno='j1'andpno='p1' 实验六

31、求所在的城市为直辖市的供应商的名称。

selectSnamefromswherecityin('北京','天津','重庆','上海')

32、求供应红色零件的供应商号,零件号和数量。

selectSNO,PNO,QTYFROMSPJ wherePnoIN(SELECTpnoFROMp whereColor='红')

33、没有使用天津供应商生产的红色零件的工程号JNO。

selectdistinctJNOfromSPJwhereJNOnotin(selectJNOfromSPJ,P,SwhereSPJ.PNO=P.PNO

andSPJ.SNO=S.SNOandP.COLOR='红'andS.CITY='天津')

34、求供应数量超过300的供应信息,包括供应商名,零件名,项目名和供应数量。

selectSNAME,PNAME,JNAME,QTYfromSPJ,S,P,J whereS.SNO=SPJ.SNOandP.PNO=SPJ.PNO

andJ.JNO=SPJ.JNOandQTY>30035、至少使用了供应商S1所供应的全部零件的工程号JNO。

selectPNOfromSPJwhereSNO='S1';selectJNOfromSPJwhere(PNO='P1'andSNO='S1')intersectselectJNOfromSPJwhere(PNO='P2'andSNO='S1')

36、找出使用供应商S1所提供零件的工程号码。

selectdistinctJNOfromSPJwhereSNO='S1'

37、找出工程项目J2使用的各种零件的名称及其重量。

selectPNAME,WEIGHTfromP,SPJ whereSPJ.PNO=P.PNOandJNO='J2'

38、找出上海厂商供应的所有零件号码。

selectPNOfromS,SPJwhereS.SNO=SPJ.SNO andS.CITY='上海'groupbyPNO39、找出使用上海产的零件的工程名称。

selectJNOfromS,SPJ whereS.SNO=SPJ.SNOandS.CITY='上海' groupbyJNO40、找出没有使用天津产的零件的工程号码。

selectJNOfromSPJwhereSPJ.JNOnotin(selectJNOfromS,SPJwhereS.SNO=SPJ.SNOands.CITY='天津')

41、查询‘IS’系学生的学号、所选课程名称及该门课程的成绩。

selectSC.Sno,Cname,GradefromSC,Course,student wherestudent.Sno=SC.SnoandCourse.Cno=SC.CnoandSdept='数学系'

42、查询‘CS’系成绩不及格的学生姓名。

selectdistinctSnamefromStudent,SC wherestudent.Sno=SC.SnoandGrade

43、查询每一门的课程的间接先修课程。

selectfirst.Cno,second.Cpno fromCoursefirst,Coursesecond wherefirst.Cpno=second.Cno44、查询所有的学生的选课情况,要求没有选课的情况也能在结果显示出来。

selectStudent.*,sc.CnoFROMStudentLEFTJoinSCon SC.Sno=Student.Sno45、查询每个学生超过他选修课程平均成绩的课程号,课程名称及成绩。

selectx.Cno,Cname,Grade

fromSCx,Coursewherex.Cno=Course.CnoandGrade>(selectAVG(Grade)fromSCywherex.Sno=y.Sno)

46、查询‘IS’系的学生以及‘数据库系统原理’成绩在70~80之间的学生。

selectSnamefromStudent,Course,SC

whereStudent.Sno=SC.SnoandCourse.Cno=SC.Cno andCourse.Cname='数据库系统原理'andGradebetween'70'and'80' andSdept='数学系'

47、用两种方法实现:选修了001课程和002课程的学生学号。

方法一:selectSnofromSCwhereCno='1'intersect selectSnofromSCwhereCno='2' 方法二:selectSnofromSCwhereCno='2'andSnoin(selectSnofromSCwhereCno='1')

48、查询至少选修了学生001课程和002课程的学生学号。

selectdistinctSnofromSCAwherenotexists(select*fromSCBwhere(Cno='1'orCno='2')andnotexists(select*fromSCCwhereC.Sno=A.Sno andC.Sno=B.Sno))实验七

49、建一新表,并将所有学生的学生的学号、平均成绩增加到其中。

createtableavgrade(snochar(11)primarykeynotnull, avgranumeric(3,1))insertintoavgrade(sno,avgra)selectsno,avg(Grade)fromSCgroupbySno 50、假设所有的学生都选了‘008‘课程,如何将记录插入选修表中。

insertintoSC(sno,cno)selectsno,'008' fromstudent51、将所有CS系的成绩不及格学生的成绩加5分。

updateSC setgrade=grade+5 where'计算机系'=(selectsdept fromstudent,sc

wherestudent.Sno=sc.Snoandgrade

52、删除选了‘数据库’数据库的学生的选课记录。

delete fromSC wherecno=(selectcnofromcoursewhereCname='数据库')

53、删除所有的学生记录。

delete

fromstudent54、把全部红色零件的颜色改成蓝色。

updatep setcolor='蓝' wherecolor='红'

55、由S5供给J4的零件P6改为由S3供应。

updatespj setsno='s3' wheresno='s5'andjno='j4'andpno='p6'

56、从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。

deletefroms wheresno='s2' deletefromSPJ wheresno='s2'

57、请将(S2,J6,P4,200)插入供应情况关系。

insertintospj(sno,pno,jno,qty)values('s2','j6','p4','200')

实验八

58、为“图书”的“分类号”建立一个索引ts_flh。

createindexts_flhontushu(fenleihao)

59、为“借阅”表建立一唯一索引jycx,要求按“借书证号”升序,“借书日期”降序。

createindexjycxonjieyue(cardID,jdatedesc)

60、为“管理员”表建立一检查约束,要求“基本工资”在(100,10000)之间。

altertableadministratoraddconstraintCK_administrator_gongzi

check(gongzibetween 100 and 10000)

61、建立“借阅”与“图书”及“读者”表之间的参照关系。(增加借阅表的外键约束)

altertablejieyueaddconstraintFK_IDforeign key(ID)referencestushu(ID)altertablejieyueaddconstraintFK_cardIDforeign key(cardID)referencesduzhe(cardID)

62、查询出“图书”数据库中作者姓“刘”的所有图书。SELECT*FROMtushuwherewriterlike'刘%'

63、查询出“图书”数据库中高等教育出版社出版的、单价低于25元的所有种类的图书。

select*fromtushuwhereaddre='高等教育出版社'andprice

4、求出“读者”数据库中的总人数。

selectCOUNT(*)fromduzhe 65、求出“图书”数据库中的所有图书的最高价、最低价和平均价。

selectMAX(price)as最高价,MIN(price)as最低价,AVG(price)as平均价fromtushu 66、求出“借阅”库中借书证号为“112”的所借图书的册数。

selectcardID,COUNT(*)as册数fromjieyuewherecardID='112'groupbycardID 67、按分类号降序显示“图书”库中各种图书的分类号、书名合作者。

selectfenleihao,bookname,writerfromtushuorderbyfenleihaodesc 68、按单价升序显示“图书”库中的高等教育出版社出版的所有图书。

select*fromtushuwhereaddre='高等教育出版社'orderbyprice69、按单价升序显示出“图书”库中由清华大学出版社和电子工业出版社出版的所有图书。

select*fromtushuwhere(addre='高等教育出版社'oraddre='电子工业出版社')orderbyprice 70、按书名和作者分组统计出“图书”库中每种图书的数量。

selectbookname,writer,COUNT(*)as数量fromtushugroupbybookname,writer 71、统计出“图书”数据库中15至25元之间的图书数量。

selectcount(*)as数量fromtushuwherepricebetween 15 and 25 72、查询出“图书”数据库中书名中含有“应用基础”字串的所有图书。

select*fromtushuwherebooknamelike'应用基础%' 73、分组统计出“借阅”数据库中每一种借书证号所借图书的册数。

selectcardID,COUNT(*)as册数fromjieyuegroupbycardID 74、按单位分组统计出“读者”数据库中每个单位的人数。

selectdanwei,COUNT(*)as人数fromduzhegroupbydanwei75、分组统计出1997年底以前借阅不低于2本图书的借书证号和数量。

selectcardID,COUNT(*)as人数fromjieyuewherejdate=2 76、联接查询“借阅”库和“图书”,得到借阅每一本书的信息。

select*fromtushu,jieyuewheretushu.ID=jieyue.ID77、联接查询“借阅”库和“读者”库,得到每一个以借阅者的借书证号、姓名、单位。

selectduzhe.cardID,name,danweifromduzhe,jieyuewhereduzhe0..cardID=jieyue.cardID78、联接查询“借阅”、“读者”、“图书”三个库,得到每一本所借图书的读者的借书证号、姓名、单位、书名。

selectduzhe.cardID,name,danwei,booknamefromduzhe,jieyue,tushu

whereduzhe.cardID=jieyue.cardIDandtushu.ID=jieyue.ID 79、从“图书”数据库中(通过对“借阅”库的嵌套)查询出所有被借图书的信息。

select*fromtushuwhereIDin(selectIDfromjieyue)80、按单位分组统计出被借图书的数量。

selectdanwei,COUNT(*)as数量fromduzhe,jieyuewhereduzhe.cardID=jieyue.cardIDgroupbydanwei 81、按单位分组统计出借阅图书的人数。

selectdanwei,COUNT(*)as人数fromduzhewherecardIDin(selectdistinctcardIDfromjieyue)groupbydanwei 82、从读者库中查询出每个借阅图书的读者的情况。

select*fromduzhewherecardIDin(selectdistinctcardIDfromjieyue)83、查询‘管理员’表中职称为教授或副教授,并且在1950年(含该年)以后出生的所有职工记录。

select*fromadministratorwherezhicheng='教授'orzhicheng='副教授'andbirth

4、查询‘管理员’表中基本工资在250到380元之间的职工记录。

select*fromadministratorwheregongzibetween 250 and 380 85、将基本工资小于500的管理员,工资加上100元。

updateadministratorsetgongzi=gongzi+100 wheregongzi

86、列出藏书在十本以上的图书(书名、作者、出版社)。

selectbookname,writer,addrefromtushuwherecangshuliang>1087、“数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本?

selectkucunfromtushuwherebookname='数据库系统'andwriter='王瑞'andaddre='清华大学出版社' 实验九

88、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:

CREATEVIEWVSPASSELECTSNO,PNO,QTYFROMSPJ,JWHERESPJ.JNO=J.JNOANDJ.JNAME='三建'

89、找出三建工程项目使用的各种零件代码及其数量。

SELECTPNO,sum(QTY)FROMVSPgroupbyPNO 90、找出供应商S1的供应情况。

SELECTdistinct*FROMVSPWHERESNO='S1' 91、建立信息系学生的视图(用with check option子句),并向该视图中插入类似以下的语句:

insert into is_student1(sno,sname,sage)values(‘20051100101’,‘王一’,20)

是否合理?如何更改?

createviewIS_student as selectsno,sname,sagefromstudent wheresdept='IS' withcheckoption 不合理(sno,sname,sage)不用

92、建立信息系选修了001号课程的学生的视图。

createviewIS_S1 as selectstudent.sno,sname,gradefromstudent,sc wheresdept='IS'andstudent.sno=sc.snoandcno='1' 93、在第(2)题创建的视图的基础上建立信息系选修了1号课程且成绩在90分以上的学生的视图。

createviewIS_S2 as

selectstudent.sno,sname,gradefromstudent,sc wheresdept='IS'andstudent.sno=sc.snoandcno='2'andGrade>=90 94、试图删除“选修”表(SC表),看看第(2)题与第(3)题建立的视图是否存在。

deletefromSC 不存在

《数据库语句总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据库语句总结
点击下载文档
相关专题 mysql常用语句总结 语句 数据库 mysql常用语句总结 语句 数据库
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文