还剩83页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库抽出部门,平均工资,要求按部门的字符串依次排序,不能含有”human部门,结构如下resource”employeeemployee_id,employee_name,depart_id depart_name wage答select depart_name,avgwage11from employeewhere depart_namehuman resourcegroup by depart_name order by depart_name给定如下数据库请用一条语句返回的最SQL TestfnumINT4SQL num小值,但不许运用统计功能,如等MIN,MAX答select top1num fromTest order by num.一个数据库中有两个表33一张表为含字段Customer,ID,Name;一张表为含字段连向中的外Order,ID,CustomerID CustomerID键,Revenue;写出求每个的总和的语句Customer RevenueSQL建表create tabiccustomerID intprimary key,Name charlOgo、关闭选择的工作区、选择已打开的工作区c D从数据库中删除表的吩咐是_______
25.o、、、A DROPTABLE BALTER TABLE C DELETETABLE DUSE年龄语句的功能是_
26.DELETE FROMS WHERE60BBCCB、从表中彻底删除年龄大于岁的记录、表中年龄大于岁的记A S60B S60录被加上删除标记、删除表、删除表的年龄列C SD S语句是_____
27.SELECT-SQL、选择工作区语句、数据查询语句、选择标准语句、数据修改语句A B C D语言是____语言、层次数据库、网络数据库、关系数
28.SQL A BC据库、非数据库D在中,删除视图用
29.SQLo、吩咐吩咐、吩A DROPSCHEMA BCREATE TABLEC DROPVIEW咐、吩咐D DROPINDEX以下属于非容器类控件的是_______、
30.A FormLabel Cpage DoContainer将查询结果放在数组中应运用短语
31._d、A INTOCURSOR TOARRAY CINTO TABLED INTOARRAY在吩咐窗口执行吩咐时,若吩咐要占用多行,续行符是_
32.SQL d—、冒号:、分号;、逗号、连字符-A BC JD设有图书管理数据库:
33.图书总编号⑹分类号⑻,书名作者⑹,出版单位单价c,C C16,C C20,⑵N6读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址C C C C C C20借阅借书证号⑷总编号⑹,借书日期C,C D8对于图书管理数据库,查询号借书证的读者姓名和所借图书的书名001语句正确的是______SQL姓名,书名借阅,图书,读者SELECT FROM WHERE;借阅借书证号AND;a—、图书.总编号=借阅.总编号A AND;读者.借书证号=借阅.借书证号、图书.分类号=借阅.分类号B AND;读者.借书证号=借阅.借书证号、读者.总编号=借阅.总编号C AND;读者.借书证号=借阅.借书证号、图书.总编号=借阅.总编号D AND;读者.书名=借阅.书名设有图书管理数据库
34.图书总编号⑹分类号⑻,书名作者⑹,出版单位单价C,C C16,C C20,⑵N6读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址C C C C C C20借阅借书证号⑷总编号⑹,借书日期C,C D8对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次下面的语句正确的是________SQLo单位,借阅,读者SELECT FROM WHERE;借阅.借书证号=读者.借书证号a、(借阅.借书证号)单位、(借阅.借书证号)A COUNTGROUP BYB SUM单位GROUP BY、(借阅.借书证号)单位、(借阅.借书证C COUNTORDER BYD COUNT号)单位HAVING设有图书管理数据库
35.图书(总编号⑹分类号⑻,书名()作者⑹,出版单位()C,C C16,C C20,单价(⑵)N6读者(借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址())C C C C C C20借阅(借书证号⑷总编号⑹,借书日期())C,C D8对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号下面语句正确的是________SQL借书证号借阅总编号=;SELECT FROM WHEREb(借书证号图书书名=现代网络技术基础)A SELECT FROM WHERE(总编号图书书名=现代网络技术基础”)SELECT FROM WHERE、(借书证号借阅书名=现代网络技术基础)C SELECT FROM WHERE(总编号借阅书名=现代网络技术基础)D SELECT FROM WHERE
二、填空题算法的困难度主要包括困难度和空间困难度
36.数据的逻辑结构在计算机存储空间中的存放形式称为数据的
37.若按功能划分,软件测试的方法通常分为白盒测试方法和测试
38.方法.假如一个工人可管理多个设施,而一个设施只被一个工人管理,则实体39“工人”与实体“设备”之间存在___联系关系数据库管理系统能实现的特地关系运算包括选择、连接和
40.o吩咐的结果是_____
41.LEN”THIS ISMY BOOK”语句为了将查询结果存放到临时表中应当运用短
42.SQL SELECT语多栏报表的栏目数可以通过_______来设置
43.在打开项目管理器之后再打开”应用程序生成器”,可以通过按键,
44.ALT+F2快捷菜单和工具”菜单中的o数据库系统的核心是_______
45.o查询设计器中的“联接”选项卡,可以限制选择
46.设有图书管理数据库
47.图书总编号⑹分类号⑻,书名作者⑹,出版单位单价C,C C16,C C20,N6,2读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址C C C C C C20借阅借书证号⑷总编号⑹,借书日期C,C D8用的吩咐建立借阅表字段依次要相同,请对下面的语SQL CREATESQL句填空设有图书管理数据库:
48.图书总编号⑹分类号⑻,书名作者⑹,出版单位单价c,C C16,C C20,⑵N6读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址C C C C C C20借阅借书证号⑷总编号⑹,借书日期C,C D8对图书管理数据库,查询由清华高校出版社”或‘电子工业出版社”出版,并且单价不超出元的书名请对下面的语句填空20SQL书名,出版单位,单价图书;SELECT FROMWHEREAND;设有图书管理数据库
49.图书总编号⑹分类号⑻,书名作者⑹,出版单位,单价C,C C16,C C2⑵N6读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址C C C C C C20借阅借书证号⑷总编号⑹,借书日期C,C D8对图书管理数据库,求共借出多少种图书请对下面的语句填空SQL借阅SELECTFROM第一套题答案选择题1-5CCBAD6-10BDBCA11-15DCBAA16-20BAABA21-25CCBBA26-30BBCCB31-35DDAAB填空题•时间.模式或逻辑模式.黑盒一对多或对多或一对或
36373839.1n1:或或或或一对或或或或N l:n ln1:N m1M l:m lm投影或页面1:N
40.
41.
1542.Into cursorInto cursorcursorname
43.设置或列数应用程序生成器数据库管理系统或联接类型或联
44.
45.DBMS
46.接条件借阅(借书证号()总编号⑹,借书日期
47.CREATE TABLEC4,C D())或借阅(借书证号⑷总编号⑹,借书日期⑻)或8CREA TABLC,C D CREATE借阅(借书证号⑷总编号⑹借书日期)或借阅(借TABLEC,C,DCREA TABL书证号⑷总编号⑹,借书日期)单价<或(出版单位=清华高校C,C D
48.=20出版社”出版单位=”电子工业出版社”)或(出版单位=”电子工业出版社”OR出版单位=清华高校出版社”)或(出版单位=‘清华高校出版社出版单OR OR位一电子工业出版社)与(出版单位=清华高校出版社”出版单位=电子工OR业出版社”)或(出版单位=清华高校出版社)总编号)
49.COUNTfDISTINCT或(总编号)或总编号)或总COUN DISTINCTCOUNTfDIST COUNfDIST编号)其次套题
一、选择题____________________________________________以下数据结构中不属于
1.线性数据结构的是_________________________________、队列、线性表、二叉树、栈A BC D在结构化方法中,用数据流程图()作为描述工具的软件开发阶段是
2.DFD、可行性分析、需求分析、具体设计、程序编码A BC D结构化程序设计主要强调的是______
3.o、程序的规模、程序的易读性、程序的执行效率、程序的可移植性A BC D在软件生命周期中,能精确地确定软件系统必需做什么和必需具备哪些功
4.能的阶段是_______O、概要设计、具体设计、可行性分析、需求分析A BC D下列关于栈的叙述中正确的是_______、在栈中只能插入数据、在
5.A Bo栈中只能删除数据、栈是先进先出的线性表、栈是先进后出的线性表C D下面不属于软件设计原则的是_______、抽象、模块化、自底向
6.A B Co上、信息隐藏D对长度为的线性表进行依次查找,在最坏状况下所须要的比较次数为
7.N、、、、A N+l BNC N+1/2D N/2视图设计一般有种设计次序,下列不属于视图设计的是_______
8.3o、自顶向下、由外向内、由内向外、自底向上A BC D下列有关数据库的描述,正确的是_______、数据库是一个文件
9.A DBFo、数据库是一个关系B、数据库是一个结构化的数据集合、数据库是一组文件C D__________________________________________________下列说法中,不
10.属于数据模型所描述的内容的是_________________________o、数据结构、数据操作、数据查询、数据约束A BC D____________________________________________________________在
11.下面的表达式中,运算结果是逻辑真的是____________Visual FoxPro、、、、A EMPTYf.NULL.B LIKEacd,ac CATa7123abc DEMPTYSPACE2表达式奔腾的结果是
12.VALSUBS586,5,l*Lenvisual foxpro”、A
13.
0014.00C
45.00D65,00以下关于自由表的叙述,正确的是_______
13.、全部是用以前版本的建立的表A FOXPROFOXBASE、可以用建立,但是不能把它添加到数据库中B Visual FoxPro、自由表可以添加到数据库中,数据库表也可以从数据库中移出成为自由表C、自由表可以添加到数据库中,但数据库表不行从数据库中移出成为自由表D下面关于数据环境和数据环境中两个表之间的关系的陈述中,是正确的
14.、数据环境是对象,关系不是对象、数据环境不是对象,关系是对象A B、数据环境是对象,关系是数据环境中的对象、数据环境和关系均不是对C D象在”报表设计器”中,可以运用的控件是____
15.、标签、域控件和线条、标签、域控件和列表框A B、标签、文本框和列表框、布局和数据源C D.用二维表数据来表示实体与实体之间联系的数据模型称为16o、实体一联系模型、层次模型、网状模型、关系模型A BC D用来指明复选框的当前选中状态的属性是_______、、
17.A SelectedBo、、Caption CValue DControlSource运用菜单操作方法打开一个在当前书目下已经存在的查询文件
18.zgjk.qpr后,在吩咐窗口生成的吩咐是____________、A OPENQUERY zgjk.qpr BMODIFY QUERY zgjk.qpr、、C DOQUERYzgjk.qpr DCREATE QUERYzgjk.qpr___________________________________________可以伴随着表的打开而
19.自动打开的索引是______________________________o、单一索引文件、复合索引文件、结构化复合索引文件、A IDXB CDXC D非结构化复合索引文件现的“一方“表的主索引或候选索引,“多方”表的一般索引、A“一方”表的主索引,“多方“表的一般索引或候选索引、B“一方“表的一般索引,’多方“表的主索引或候选索引、C”一方“表的一般索引,”多方表的候选索引或一般索引、D下列函数中函数值为字符型的是、、、
21.oA DATEOB TIMEDC在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实
20.、YEAR D DATETIMEO下面对控件的描述正确的是
22.、用户可以在组合框中进行多重选择用户可以在列表框中进行多重选A、用户可以在一个选项组中选中多个选项按钮、用户对一个表单内的C D一组复选框只能选中其中一个确定列表框内的某个条目是否被选定应运用的属性是
23.、、、、A ValueB ColumnCountC ListCountD Selected设有关系和经过关系运算得到结果则是
24.RI R2,S,S指的是、数据库管理系统、数据库系统、数据库
25.DBAS A BCo、一个关系、一个表单、一个数据库、一个数组A BC D应用系统、数据库服务系统D设,则下列表达式中值为的是、
26.X=ABC Y=ABCD”,.T.Ao、、、X=YB X==YC X$YD ATX,Y=0在表结构中,逻辑型、日期型、备注型字段的宽度分别固定为
27.、、、随意、A3,8,10B1,6,4C1,8,D1,8,4在标准中,建立视图的吩咐是
28.SQL、吩咐、吩咐、A CREATESCHEMA BCREATE TABLEC CREATE吩咐、吩咐VIEW DCREATE INDEX有关循环结构,叙述正确的是_______
29.SCAN o、循环结构中的语句,可将程序流程干脆指向循环起先语句A SCANLOOP首先推断()函数的真假SCAN,EOF、在运用循环结构时,必需打开某一个数据库B SCAN、循环结构的循环体中必需写有语句C SCANSKIP、循环结构,假如省略了子句和条件子句,则干脆退D SCAN\FOR WHILE出循环设有图书管理数据库
30.图书(总编号⑹分类号⑻,书名()作者⑹,出版单位(),C,C C16,C C2单价(⑵)N6读者(借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址())C CCCCC20借阅(借书证号⑷总编号⑹,借书日期())C,C D8对于图书管理数据库,要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,下面语句正确的是______SQLo出版单位,,,;SELECT图书管理!图书出版单位FROM、(单价)(单价))、(单A MINAVGAGE COUNTf*GROUP BYB MAX价)(单价)()AVG COUNT*ORDER BY、(单价)(单价)()、(单价)C MAXAVG SUM*ORDER BYD MAX(单价))AVG COUNTf*GROUP BY设有图书管理数据库:
31.create table[order]ID intprimary key,CustomerlD intforeign keyreferencescustomerid,Revenue floatgo一查询select Customer.ID,sum isnull[Order].Revenue,0from customerfull join[order]on[order].customerid=customer.id group by customer.idselect customer.id sumorder.reven erfrom order,customer wherecustomer.id=customerid group by customer.id select customer.id,sumforder.revenerfrom customerfull joinorderon order.customerid=customer.idgroup bycustomer.id数据库510用a tabel calledperformance”contain nameand score,please SQL语言表述如何选出最的一个仅有一个score high仅选出分数,Select maxscorefrom performance仅选出名字,即选出名字,又选出分数select top1score name from perorder by score图书(总编号⑹分类号⑻,书名()作者⑹,出版单位()c,CC16,CC20,单价(⑵)N6读者(借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址())CCCCCC20借阅(借书证号⑷总编号⑹,借书日期())C,C D8对于图书管理数据库,求单位借阅图书的读者的人数CIE下面语句正确的是______SQLo借阅SELECTFROM WHERE;借书证号、(借书证号)A COUNTDISTINCT(借书证号读者单位)IN SELECT FROM WHERE=CIE”、(借书证号)B COUNTDISTINCT(借书证号借阅单位)IN SELECT FROM WHERE=CIE”、(借书证号)C SUMDISTINCT(借书证号读者单位)IN SELECTFROM WHERE=CIE”、(借书证号)D SUMDISTINCT(借书证号借阅单位)IN SELECTFOR WHERE=CIE”查询订购单号(字符型,长度为)尾字符是的错误吩咐是____
32.4“
1、订单(订购单号)A SELECT*FROM WHERESUBSTR,4=
1、订单(订购单号)B SELECT*FROM WHERESUBSTR,4,1=
1、订单订购单号C SELECT*FROM WHERE、订单(订购单号D SELECT*FROM WHERERIGHT在关系模型中,为了实现关系中不允许出现相同元组”的约束应运用
33.、临时关键字、主关键字、外部关键字、索引关键字A BC D依据“职工”项目文件生成应用程序的吩咐是
34.emp_sys.exe、职工、A BUILDEXE emp_sys FROMB BUILDAPP emp_sys.exe职工FROM>职工>C LIKEEXE emp_sys FROMD LIKEAPP emp_sys.exe职工FROM当前盘当前书目下有数据库学院其中有老师“表和“学隘表
35..dbc,“老师”表:“学院”表:有语句SQL系号老师工资>=;SELECT DISTINCT FROM WHERE(工资老师系号)ALL SELECTFROM WHERE=“02”与如上语句等价的语句是______SQLo、系号老师工资>=;A SELECTDISTINCT FROMWHERE((工资)老师系号)SELECT MAXFROMWHEREW
02、系号老师工资>=;B SELECTDISTINCT FROMWHERE((工资)老师系号廿)SELECT MINFROMWHERE02”、系号老师工资>=;C SELECTDISTINCT FROMWHERE工资老师系号)ANYfSELECT FROMWHERE=02”、系号老师工资>=;D SELECTDISTINCT FROMWHERE(工资老师系号)SOME SELECTFROMWHERE=02”
二、填空题若按功能划分,软件测试的方法通常分为白盒测试方法和测试
36.方法数据库系统的三级模式分别为模式、内部级模式与外部级模式
37.在最坏状况下,冒泡排序的时间困难度为
38.在面对对象方法中,信息隐藏是通过对象的性来实现的
39.关系模型的数据操纵即是建立在关系上的数据操纵,一般有
40.增加、删除和修改四种操作.要把帮助文件设置为复制到硬盘上的文件,须要在”选项41Foxhelp.chm对话框的选项卡上设置的返回值的数据类型是_____类型
42.TIME在定义字段有效性规则中,在规则框中输入的表达式中类型是
43.O设计报表通常包括两部分内容和布局
44.是指只有满意联接条件的记录才包含在查询结果中
45.设有图书管理数据库
46.图书总编号⑹分类号⑻,书名作者⑹,出版单位单价C,CC16,CC20,⑵N6读者借书证号⑷,单位⑻,姓名⑹,性别⑵,职称⑹,地址CCCCCC20借阅借书证号⑷总编号⑹,借书日期⑻C,C D检索书价在元至元含元和元之间的图书的书名、作者、15251525书价和分类号,结果按分类号升序排序书名,作者,单价,分类号图书;SELECT FROMWHERE;ORDER BY;设有如下关系表、和
47.R STRBH,XM,XB,DWHSSWH,DWMTBH,XM,XB,DWH实现的语句是R UT SQLo设有如下关系表
48.R:RNO,NAME,SEX,AGE,CLASS主关键字是NO其中为学号,为姓名,为性别,为年龄,为班NO NAMESEX AGECLASS号写出实现下列功能的语句SQL插入班学号为姓名为“郑和的学生记录;”95031”30,o设有如下关系表
49.R:RNO,NAME,SEX,AGE,CLASS主关键字是NO其中为学号数值型,为姓名,为性别,为年龄,NO NAMESEX AGECLASS为班号写出实现下列功能的语句SQL删除学号为的学生记录;20o其次套题答案1-5CBBDD6-10CBBCC11-15DDCCA16-20DCBCA21-25BBDAC26-30CDCBD31-35ACBBA.黑盒.概念或概念级.封装.查询.文件位置
363738.nn-l/
2394041.字符或.逻辑表达式42C43数据源.内部联接
44.45单价或单价或单价
46.BETWEEN15AND25BETW15AND25或单价单价或单价单价BETWE15AND25=15and=25=15and或单价单价或单价单价与分类号=25=15and=25=15and=25或分类号ASC或
47.SELECT*FROM R UNION SELECT*FROM TSELE*FROM或RUNIOSELE*FROM TSELECT*FROM RUNIO SELECT*FROM T或SELE*FROM RUNION SELE*FROM T郑和
48.INSERT INTORNO,NAME,CLASS VALUES30J“或郑和J95031INSE INTORNO,NAME,CLASS VALUES30,“,95031”或
49.DELETE FROMR WHERENO=20DELE FROMR WHERE或或NO=20DELE FROMR WHERNO=20DELETE FROMR WHERNO=20存在表要依据字段排序后取第条记录显示,请给12:Ta,b,c,d,c21—30出sqlcreate tableta number,b number!c numberednumberQ;/beginfor iin
1..300loopinsert intot valuesmodi,2,i/2dbms_random.valuel300,i/4;,end loop;end;/select*from selectc.*,rownum asrn from select*from torderby c desc c where rnbetween21and30;select*from select*from testorder byc descx where rownum30minusselect*from select*from testorder bycdescy whererownum20order by3desc题目内容如下*一表TB字段为编号,递增不肯定连续.Id字段为区段路费,比如从家到哈尔滨是元,从哈尔滨到长春是元,数值M6070类型.字段站点名称.S现有元钱,从家先经哈尔滨动身,能走多远?500例所以:60+70+80+50+90+75=42560+70+80+50+90+75+80=505答案应当是武汉6Id MS哈尔滨160长春270沈阳380北京450郑州590武汉675长沙780广东890要求,请用一句语句实现SQL*/-创建表Create TableTB(()Id IntIdentity1,1Not Null,M Int,()S varchar50)-测试数据(哈尔滨)Insert IntoTB Vahies60,(「长春)Insert IntoTB Vahies70(沈阳)Insert IntoTB Values80;(北京)Insert IntoTB Values50,(:郑州)Insert IntoTB Vahies90(;武汉)Insert IntoTB Values75(;长沙’)Insert IntoTB Vahies80(;广东)Insert IntoTB Values90实现方法两种()SELECT TOP1B.id,b.s,sum A.ms_sumFROM TBA,TB BWHEREA.ID=B.IDGROUP BYb.id,b.sHAVING suma.m=500ORDER BYb.id DESCSELECT TOP1ID,S,M SUMFROMSELECTSELECT SUMMFROMTBWHERE ID=1AND ID=A.ID ASM_SUMFROM TBA BWHEREM_SUM=500ORDER BYID DESC面试题二SQL有一张工资表,包含三列员工编号部门编号工资ID,GROUPS,SALARY.•找到每个部门工资最高的人包括并列第一1找到每个部门工资最高的人只选一个
2.语句如下:SQL工资表工资工资工资表
1.select*from as a where a.=select maxb.from部门编号=.部门编号as b where a.6--2工资表工资工资工资表select*from as a where a.=select maxb.from部门编号.部门编号as b where a.=band员工编号员工编号工资表部门编号.a.=select maxc.from as c where a.=c部门编号员工编号员工编号,部门编号,工资工资表select minas from as a where a.工资=工资工资表部门编号.部门编select maxb.from as b where a.=b号部门编号,工资group by面试题一SQL有一个张员工工资表表有三列员工编号工资SALARY,ID,SALARY.查询重复记录1id工资表工资表select*from as a whereselect countf*from as b where员工编号=.员工编号a.11工资表员工编号员工编号SELECT*FROMWHEREIN SELECT工资表员工编号FROM GROUP BY HAVINGCOUNT*
1.删除重复记录,只保留第一条说明,不须要考虑表中存在完全相同纪录的状2id况语句如下SQLCREATE TABLESALARYID INTNOT NULL,SALARY MONEYNOT NULL)INSERT INTOSALARYSELECT1,1000UNION ALLSELECT1,800UNION ALLSELECT2,1200UNION ALLSELECT3,1100UNION ALLSELECT3,1200UNION ALLSELECT3,1300SELECT*FROM SALARY--1(SELECT*FROM SALARYWHERE IDIN SELECTID FROM SALARY))GROUP BYID HAVINGCOUNTS1-2DELETE TFROMSALARY TWHEREEXISTSfSELECT1FROMSALARYWHERE T.ID=ID AND)SALARYT.SALARY
四、设计题(本大题共小题,每小题分,共分)
21020、学生表学生表(学号,姓名,性别,年龄,组织部门)2Student课程表(编号,课程名称)Course选课表(学号,课程编号,成果)Sc表结构如下per有关系4ssno,sname ccno,cname scsno,cno,grade问上课程的学生1db”n=,select count*from c,sc where c amedb andc o=sc o,,select countf*from sc where cno=select eno from cwhere c ame=db成果最高的学生号2select sno from sc where grade=select maxgradefrom sc每科大于分的人数390selectc ame,count*from c,scwherec o=sc oand sc.grade90group byc ameselectc ame,count*from cjoin sc on co=scoand sc.grade90group bycame原数据库笔试题☆❷*建表dept:deptnoprimary keydname,loc,emp:empnoprimary keyenamejob mgr,sal deptno写一个语句,查询选修了计算机原理的学生学号和姓名
1.SQL⑵.写一个语句,查询‘周星驰同学选修了的课程名字SQL⑶.写一个语句,查询选修了门课程的学生学号和姓名SQL5select sno,sname from student where sno in select snofrom sc计算机原理where eno=select enofrom coursewhere cname=select cnamefrom coursewhere enoin selectenofrom scwhere周星驰sno=select snofrom studentwhere sname=⑶select sno,sname Fromstudent Wheresno inselect snofrom scgroup by snohaving countsno=5一道清华同方的面试题1SQL已知一个表的结构为姓名科目成果张三语文20张三数学30张三英语50李四语文70李四数学李四英语怎样通过语句把他变成以下结构6090select姓名语文数学英语张三203050李四706090在上测试通过Mysql use test;drop tableif existsstudentscore;姓名create tablestudentscore id int auto_increment primary key,科目,成果varchar20,varchar2varchar20defaultcharset=utf8;姓名,成果语文,成果数create viewteststudent asselect A.A.as B.as学,成果英语C.as from studentscore A,studentscore B,studentscore C姓名.姓名姓名.姓名科目=,语文科目=,where A.=B and B.=C andA.andB.数学’.科目=英语;and C金蝶的一道笔试题,上个周六的时候去金蝶面试,出了这样一道题,共SQL SQL享之给下面这样的一个表记录购物人商品名称数量给出全部购入商品为两种或两种以上的购物人记录usetest;drop tableif existsproduct;购物人create tableproduct idint auto_increment primarykey,商品名称数量varchar20,varchar20,varchar20;(购物人,商品名称,数量)甲insert intoproduct id,values1,A’,,2;(购物人,商品名称,数量);insert intoproduct id,values2(购物人,商品名称,数量)insert intoproduct id,values(购物人,商品名称,数量)丁insert intoproduct id,values4;A\,2;(购物人,商品名称,数量);丙insert intoproduct id,values5;5;贝勾物人商品名称错select*from product group byhaving count=2;误,因为结果是这样的甲A2乙B4购物人购物人select*from productwhere inselect fromproduct购物人商品名称正确group byhaving count=2甲A2乙B4AT2丙B5语言实现查找成果排名到的学生sql120语句实现sql查询成果表中名至名的学生120方法(select top11*from scorewheresnonot inselect top9snofrom scoreorder bysc descjorder byscdesc补充说明分别为成果表,成果和学号score,sc,sno这道冥思苦想了久的题目原来只用一个就搞定了,真是狂汗,看来还要看N top书用一句取出第条到第条记录的方法SQL m n从表中取出第条到第条的记录(版本)Table mn NotInSELECT TOP n-m+1*FROM TableWHEREid NOT IN SELECT TOP m-1id FROMTable--从表中取出第到条记录(版本)TABLE mn ExistsSELECT TOPn-m+1*FROM TABLEAS aWHERE NotExistsSelect*From SelectTop m-1*From TABLEorder by id bWhere b.id=a.id Orderby id为上标,为下标,例如取出第到条记录,为表名-mn812m=8,n=12,TableSelect Topn-m+1*From TableWhereIdSelect MaxId FromSelect Topm-1IdFromTable OrderBy IdAsc TempOrderBy IdAsc干脆取得数据库中的分页记录前提是表中必需有主键取得第条记录之后的条记录M NSELECTTOP N*FROM[TABLE]WHERE IDNOTIN SELECTTOPMidFROM[TABLE]ORDER BY[ORDER]ORDER BY[ORDER]中的实现,取得第到条记录Oracle MNSELECT*FROMSELECT*,ROWNUM ASCON FROMSELECT*FROM[TABLE]ORDER BY[ORDER]WHERE ROWNUM=N WHERECON=M;查询表中连续的某几条记录不要传任何列的条件参数,查询表中连续的某几条记录如表列为主键A,idid namesex age1luoyi male212yaya female203lili female224wuyong male25这个表的记录还有许多,假如我想取其次、第三条记录,不为别的,我就想要这两条,这不仅在编程中会用到,而且在一些公司面试时也有类似考题呵呵,我没有遇到过,在和中代码分别为oracle mssqlserverSQL
二、ms sql server在中没有只能用类似于的其次种方法server minus,oracleselect*from select top3*from Aas b where b.id not inselect top1id from A
三、绘制出来的结果为:id namesex age2yaya female203lili female22特点一次查询,数据库只返回一页的数据而不是取出全部的数据说明每页显示记录数pagesize:当前页数cureentpageselect*fromselect TOPpagesize*FROMSELECT TOPpagesize*cureentpage*from user_table ORDER BY id ASCasaSysTable ORDER BY id DESCas bSysTableORDER BY id ASC例子说明假如数据库表如下:user_table:主键,自增id:字符username:字符password:假设有条记录,每页显示条记录,从到现在依据升序排列8010id180id取出第三页的数据应当为所取得记录的应当为到这时该语句应当id2130为select*fromselect TOP10*FROMSELECTTOP30*fromuser_table ORDERBY idASCas aSysTableORDERBY idDESCasbSysTable ORDERBYidASC原理如下先依据从小到大升序取出条记录,也就是在之间的id303*10id1-3i己录然后依据SELECTTOP30*from user_table ORDERBYidASC降序排列这条记录,得到记录为在从到然后在这些ID3id313条记录中取出前条记录取得的记录为在之间这就是我们须要1id30-21的数据,但这时是依据降序排列的,不符合要求最终在重新排序得到最终我们须要的数据在之间id21-3随机取出若干条记录的语句SQL Sqlserver表select top20*from order by newidf、两个表拥有一样的表结构,都以为主键,如何将表中存在而表中不A BidA B存在的记录插入到表中B表结构如下:create tableAid intprimary keynamevarchar20,password varchar20表记录AID NAMEPASSWORD1Tom12342Mary12343Lucy12344Billy12345Henry1234表记录BID NAMEPASSWORD1Tom12342Mary12343Lucy1234语句一通过实现SQL not ininsert into B select*from Awhere id not inselect id from B语句二(通过实现)Sql notexists insert intoBselect*from Aa notexistsselect*fromBb where a.id=b.id若两表的记录不同,如下表记录AID NAMEPASSWORD1Tom12342Mary12343Lucy12344Billy25485Henry1234表记录BID NAMEPASSWORD1Jojoy12342Mary12343Lucy1234列出表中各部门的部门号,最高工资,最低工资1emp最高工资,最低工资,select maxsal as minsal as deptno from emp groupby deptno;列出表中各部门为的员工的最低工资,最高工资2emp job CLERK最高工资,最低工资,部门号select maxsal as minsal as deptno as fromemp where job=CLERK group by deptno;对于中最低工资小于的部门,列出为的员工的部门号,3emp1000jobCLERK最低工资,最高工资最高工资,最低工资部门号select maxsal as minsalas,deptno asfromemp asbwhere job=CLERK and1000select minsalfrom emp as awherea.deptno=b.deptno group by b.deptno依据部门号由高而低,工资有低而高列出每个员工的姓名,部门号,工资4select部门号,姓名,工资deptno asename assalasfrom emporder bydeptnodesc salasc,写出对上题的另一解决方法5请补充列出弓长三,所在部门中每个员工的姓名与部门号6select ename,deptno from emp wheredeptno=select deptnofrom张三emp whereename=4Billy12345Henry1234找出两表中的不同记录,以下两条语句都能实现SQLselect*from bwhere namenotinselect namefrom a orpasswordnot infselectpassword from aselect*from bwhere notexistsfselect*from awhere a.name=b.nameand a.password=b.passwordselect*from bwhere notexistsfselect*from awherea.name=b.nameand a.password=b.password不同行列相减实例解析SQLServer昨天技术主管面试新人时出了道数据库编程题,自己也是新人,所以顺便拿过来探讨一下,题目如下数据库表表结构与数据如下TEST,CREATE TABLETEST IDchar10PRIMARY KEY,NAME charID NAME AMOUNT10,AMOUNT numeric9101dr100102cr200101cr50102dr150101dr300103dr300103cr300104cr345104dr355104dr225105dr225105cr500用一条语句得出以下查询结果(要求的查询性能和效率为最高)SQL SQLID AMOUNT101350102-501030要得出以上结果,先得分析一下,可以看出是将相同并且为104235ID NAME的减去为的得出dr AMOUNT NAME crAMOUNT在不考虑效率的状况下,可运用以下语句SQL,,select idamount=s electsum amount from testwhere name=drfand id=t.id-select sumamountfrom testwhere name=cr andid=t.id fromtesttgroupby id但这条语句还是有问题,例如当去掉IDNAMEAMOUNT105cr500这条记录后,查询结果如下:IDAMOUNT101350102-501030104235105NULL出现了一条空值,因为的记录只有一条,没有与之相匹配的记录再看ID-105,下面的语句selectid,sumcase nameWHEN drTHEN1ELSE-1END*amountas amountfrom test groupbyidselect id,sumcase nameWHEN drTHEN amountELSE-amountEND asamountfromtestgroupbyid这两条语句的效率和查询结果等同,也是我们所要的语句其实要获得高效SQL率的语句,解题的思路很重要,这里运用的函数实现SQL SQLServerCASE将字段的值依据的不同赋不同的值加个负号,再用函AMOUNTNAMEsum数实现数据的相减考题现有两张表,以下为表结构部门号create tabledepdepid intidentity primarykey,--一部门名称depname varchar20create tableempempid intidentity primarykey,empnamevarchar20,salary money,depid int问题、请用一条语句查询出各部门的平均工资结果显示为如下形式1sql部门号平均工资
2500.
452122845.0121这个比较简洁,不过有几种方式正解1:部门号,平均工资select depid avgsalary from emp groupby depid正解2:部门号,平均工资select tl.depid avgt
2.salary from dep tl inner joinemp t2on tl.depid=t
2.depid groupby tl.depid正解3:部门号平均工select=depid,W=avgsalary from empgroupby depid、请列出工资大于本部门平均工资的员工姓名和部门号以与统计此部门的人2数结果显示为如下形式部门人数EMPNAME DEPIDZHANGSAN115LISI210这个有点难度,我试了半天都没解决正解1:.部门人数SELECT Tl.empname,Tl.depid,T2FROM dbo.emp TlINNER部门人JOIN selecttl.depid,avgt
2.salary ASsalary,COUNTempid AS数fromdeptlinner join dbo.empt2on
11.depid=t
2.depid groupbytl.depid T2ON T
1.depid=T
2.depid WHERET
1.salaryT
2.salary正解2部门人数select empname,emp.depid sfrom empInner Joinselect,⑴depid avgsalarya,count sfrom empgroupbydepid b onemp.depid=b.depid andsalarya其次条语句相对简洁些sqlSelect empname,emp.depid,select count*from emp as mwhere部门人数m.depid=emp.depidas from emp wheresalaryselect avgsalaryfrom emp ass whereemp.depid=s.depid常用函数面试必背!sql server统计函数1,avg,count,max,min,sum多数聚会不统计值为的行可以与一起运用去掉重复的行可以与null distinct来分组groupby数学函数2,SQRT返回大于或者等于的最小整数ceiling nn返回小于或者是等于的最大整数四舍五入,是保留小数的floorn,n roundmn,n位数absn当返回返回返回signn,n0,1,n=0,0,n0,-1PI,
3.
1415....返回-之间的一个随机数rand,randn,1字符串函数3,将字符转换为码,asciif,ASCII ASCIIabc=97码转换为字符chart,ASCIIlow,upperf转换数字为字符串是要转换的字符串是转换以后的长度,stra,b,ca,b c是小数位数str123,456,8,2=
123.46去空格ltrim,rtrimf截取字符串leftn,rightn,substringfstr,start,length子串,母串,查找是否包含返回第一次出现的位置,没有返回charindex0功能同上,可是运用通配符patindex%pattern%,expression重复字符串replicatefchar,rep_time,,颠倒字符串reversechar替换字符串replacefstr,strold,str new产生个空行spacen,n是起先位置,stufff,SELECT STUFFfabcdef,2,3,ijklmn=aijklmnef,2是要从原来串中删除的字符长度,是要插入的字符串3ijlmn类型转换函数:3,cast,cast expression as data_type,Example:SELECT SUBSTRINGtitle1,30AS Title,ytd_sales FROMtitles,WHERE CASTytd_sales ASchar20LIKE3%convertdata_type expression,日期函数4,day,monthQ,year指定对那一部分力口,知dateaddfdatepart,number,date,datapart number道加多少,指定在谁的基础上加的取值包括,date datepartyear,quarter,比如明天month,dayofy ear,day,week,hour,minute,second,dateaddfday,1,getdatej和上面一样整个函数结果是datediff datepart,date1,date
2.datapartdate2-datel取那一部分,返回字符串datenamedatepart,date取一部分,返回整数datepart datepart,date当前时间getdate系统函数5,col_lengthtablename Ycolname」coLname,SELECT COL_NAMEOBJECT DEmployees,1=EmployeelD1-咧名datalength,example:datalenghtfabc=3,datalengthpub_name db在面试过程中多次遇到两道查询的题目,一是查询表中第id SQLAQD,Name31至条记录,作为主键可能是不是连续增长的列,大家写写看了!4ID答案select top10*from Awhere IDnotinselect top30ID fromA或者select top10*fromAwhere idselect maxid from select top30idfrom Aas A面试必须要知道的语法,语句SQL前言书里有的、书里没的,统统在此可以一浏按升序排列asc按降序排列desc下列语句部分是语句,不行以在中运用Mssql access分类SQL一数据定义语言DDL Create,Alter,Drop,DECLARE数据操纵语言DML—Select,Delete,Update,Insert一数据限制语言DCL GRANT,REVOKE,COMMIT,ROLLBACK首先,简要介绍基础语句、说明创建数据库1Create DATABASEdatabase-name、说明删除数据库2drop databasedbname、说明备份3sql server—创建备份数据的deviceUSE master;EXEC sp_addumpdevice diskJtestBackc:\mssql7backup\MyNwind_
1.daf—起先备份BACKUP DATABASEpubs TOtestBack、说明创建新表4create table tabnamefcoll typel[not null][primarykey],col2type2[notnull],..依据已有的表创建新表运用旧表创建新表A create table tab_new liketab_old・・・B create tabletabnew asselect coll,col2from tabold definitiononly、说明删除新表5drop tabletabname、说明增加一个列6Alter tabletabname addcolumn coltype注列增加后将不能删除中列加上后数据类型也不能变更,唯一能变更DB2的是增加类型的长度varchar、说明:添力口主键7Alter tabletabname addprimary keycol说明删除主键Alter tabletabname dropprimary keycol列出每个员工的姓名,工作,部门号,部门名7select enameJobemp.deptno dept.dname from emp dept where,emp.deptno=dept.deptno列出中工作为的员工的姓名,工作,部门号,部门名8emp CLERKselectenameJob dept.deptno,dname from emp,deptwhere,,dept.deptno=emp.deptno andjob=CLERK对于中有管理者的员工,列出姓名,管理者姓名管理者外键为9emp mgrselect姓名,管理者a.ename asb.ename asfromemp asa,emp asbwherea.mgr isnot null anda.mgr=b.empno对于表中,列出全部部门名,部门号,同时列出各部门工作为的10dept CLERK员工名与工作部门名,部门号,员工名,工作select dnameas dept.deptno asename asjob asfromdept,empwhere dept.deptno*=emp.deptno andjob=CLERK对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序11部号,姓名,工资select a.deptno asa.ename asa.salasfromemp asawherea.salselect avgsalfromemp asbwherea.deptno=b.deptno order bya.deptno对于列出各个部门中平均工资高于本部门平均水平的员工数和部门号,按12emp,部门号排序员工数,部门号、说明仓!select counta.salasa.deptno asfromempasa81建索弓删除索弓I create[unique]index idxnameon tabnamecol---.I I:drop indexidxname注索引是不行更改的,想更改必需删除重新建、说明仓建视图911create viewviewname asselect statement删除视图drop viewviewname、说明几个简洁的基本的语句10sql选择范围select*from tabletwhere插入insert intotable1field1field2values value1value2,删除范围delete from table1where更新范围update table1set fieldl=valuel where查找的语法很精select*from table1where field1like%vahiel%—like妙,查资料!排序select*from tabletorder byfieldl,field2[desc]总数select countas totalcountfrom table1求和select sumfieldlas sumvalue from table1平均select avgfieldlas avgvaluefrom table1最大select maxfieldlas maxvaluefrom table1最小select minfieldlas minvaluefrom table
1、说明几个高级查询运算词11运算符A UNION运算符通过组合其他两个结果表例如和并消去表中UNION TABLE1TABLE2任何重复行而派生出一个结果表当随一起运用时即ALL UNIONUNION ALL,不消退重复行两种状况下,派生表的每一行不是来自就是来自TABLE1TABLE2o运算符B EXCEPT运算符通过包括全部在中但不在中的行并消退全部EXCEPT TABLE1TABLE2重复行而派生出一个结果表当随一起运用时()ALL EXCEPTEXCEPT ALL,不消退重复行运算符C:INTERSECT运算符通过只包括和中都有的行并消退全部重INTERSECT TABLE1TABLE2复行而派生出一个结果表当随一起运用时()ALL INTERSECTINTERSECT ALL,不消退重复行注运用运算词的几个查询结果行必需是一样的、说明运用外连接
12、A leftouter join左外连接(左连接)结果集几包括连接表的匹配行,也包括左连接表的全部行sql:select a.a,a.b,a.c,b.c,b.d,b.f from a LEFTOUT JOINb ONa.a=b.cB:right outerjoin:右外连接(右连接)结果集既包括连接表的匹配连接行,也包括右连接表的全部行C:full outerjoin全外连接不仅包括符号连接表的匹配行,还包括两个连接表中的全部记录其次,大家来看一些不错的语句sql、说明复制表(只复制结构,源表名新表名)(可用)法一1a bAccess select*into b from awhere11法二select top0*into bfroma、说明拷贝表拷贝数据,源表名目标表名可用2a bAccess insertinto ba,b,c select d,e,f from b;、说明跨数据库之间表的拷贝具体数据运用肯定路径可用3Access insertinto具体数据库条件例子ba,b,c selectd,e,f from b inwhere..frombinu Hn H1Server.MapPath.\data.mdbwhere..、说明子查询表名表名41:a2:b或者select a,b,c fromawherea INselectdfrombselect a,b,c fromawhere aIN1,2,
3、说明显示文章、提交人和最终回复时间5select a.title a.username b.adddate from table a,select maxadddate,adddate from table where tab1e.ti11e=a.title b、说明外连接查询表名表名61:a2bselect a.a,a.b,a.c,b.c,b.d,b.f froma LEFTOUT JOINb ONa.a=b.c、说明在线视图查询表名71aselect*from Selecta b,c FROMa Twheret.a1;、说明的用法,限制查询数据范围时包括了边界值,8between betweennot不包括betweenselect*from table1where timebetween timel and time2数值数值select a,b,c,fromtable1whereanot between1and
2、说明的运用方法9in,值值值值select*fromtable1wherea[not]in
1246、说明两张关联表,删除主表中已经在副表中没有的信息10delete fromtable1where notexistsselect*fromtable2wheretable
1.field1=table
2.field
1、说明四表联查问题11select*fromaleft inner join b ona.a=b.b rightinnerjoinc ona.a=c.c......innerjoind ona.a=d.d where、说明日程支配提前五分钟提示12日程支配1起先时sql:select*from wheredatediff Minute,f间,getdate
5、说明一条语句搞定数据库分页13sql主键字段,排序字段表名select top10b.*from select top20from orderby排序字段表名主键字段=主键字段排desc a,bwhere b.a.orderby a.序字段、说明前条记录1410范围select top10*form table1where、说明选择在每一组值相同的数据中对应的最大的记录的全部信息类似15b a这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成果排名,等等.select a,b c from tablenameta wherea=select maxa from tablenametb,where tb.b=ta.b、说明包括全部在中但不在中的行并消退全部重16TableA TableBft TableC复行而派生出一个结果表select afrom tableAexcept select afromtableB exceptselect afromtableC、说明随机取出条数据1710select top10*from tablenameorderbynewid、说明随机选择记录18select newidf、说明删除重复记录19Delete fromtablename whereidnotinselectmaxidfromtablenamegroup bycoll,col2,...、说明列出数据库里全部的表名20select namefrom sysobjectswhere type=U、说明列出表里的全部的21select namefrom syscolumnswhere,,id=object_id TableName、说明列示、、字段,以字段排列,可以便利22type venderpcs typecase地实现多重选择,类似中的select caseselecttype sumcase vender whenA then pcs else0end,sumcasevender,when Cthenpcs else0end sumcasevender whenB thenpcselse0end,FROM tablenamegroupbytype显示结果:type venderpcs电脑电脑光盘A2光盘手机手机、说明初始化表23tablelTRUNCATE TABLEtable
1、说明选择从到的记录241015别名selecttop5*from selecttop15*fromtableorderbyid asctable_表名)orderbyid descsqlserver:selecttopn*from orderby newidf问题一个语句,为按某列排序的数据增加一个标记列,要求如下:select原表数据(按升序)ba bqwe1dsfg2小计118ger19kuyre20we3423小计225db26tyuq29小计335添加标记列后(留意列中的小计与其对应列的值)C aBa bcqwe18dsfg218小计11818ger1925kuyre2025we342325小计22525db2635tyuq2935小计33535-创建表createtabledbo.one idint identityllanvarchar10,b int一插入数据insertintooneselect qwe\1union allselectdsfg2union all小计select N18union all;select ger19union allselect*kuyre\20union all;select we3423union all小计select N2\25union all;select db26union all小计select tyuq,29union allselect N3\35一方法1select a,b mincas cfrom selectone.a one.b,case whenone.b=tem.b,,小计%,then tem.c end ascfrom one,select a,b,case whena likeNthen bendascfromone tembbwherec isnotnullgroupby a,b一方法2小计%select C.*,selecttop1bfromone Awhere A.a likeandA.b-C.b=0C fromone CorderbyC.b―删除测试表Idrop tableone中如何取汉字的长度SQL SERVER代码如下浙江宁波’select len显示结果4浙江宁波select datalength显示结果:8数据库面试题sql找出公司里收入最高的前三名员工1:select rownum,last_name,salary fromselect last_name salaryfrom,s_emporder by salary descwhererownum=3;留意请大家分析一下一下语句为什么不对select rownum,last_name,salaryfrom s_empwhererownum=3order bysalarydesc;找出表中的某一行或某几行的数据找出表中第三行数据21用以下方法是不行的,因为后面至可以用或=号,不行以用=,号和其它rownum的比较符号select*froms_empwhere rownum=3;no rowsselectedSQL select*froms_empwhere rownumbetween3and5;no rowsselected正确的方法如下SQL selectlast_name salaryfrom select rownum a,b/froms_empbjwhere a=3SQL/LAST_NAME SALARYNagayama2660找出第三行到第五行之间的数据:2:wherea.salselect avgsalfromempasb wherea.deptno=b.deptno groupby a.deptno orderbya.deptno对于中工资高于本部门平均水平,人数多与人的,列出部门号,人数,13emp1按部门号排序员工数,部门号,平均工资select counta.empno asa.deptno asavgsal asfromempas awhere selectcountc.empno fromempascwherec.deptno=a.deptnoand c.salselect avgsalfromempasbwherec.deptno=b.deptno1groupbya.deptno orderbya.deptno对于中低于自己工资至少人的员工,列出其部门号,姓名,工资,以与14emp5工资少于自己的人数selecta.deptnoa.ename,a.sal,select countb.ename fromempasb人数whereb.sala.salasfromempasawhereselect countb.ename fromempasbwhereb.sala.sal5数据库笔试题与答案第一套一.选择题下面叙述正确的是
1.CCBADo、算法的执行效率与数据的存储结构无关A、算法的空间困难度是指算法程序中指令或语句的条数B、算法的有穷性是指算法必需能在执行有限个步骤之后终止C、以上三种描述都不对DSQL selectlast_name,salaryfromselectrownuma,b.*froms_emp bwherea between3and5找出那些工资高于他们所在部门的平均工资的员工3第一种方法1SQL selectlast_name,dept_id,salary froms_emp awheresalaryselectavgsalaryfrom s_empwhere dept_id=a.dept_id;其次种方法2SQLselect a.last_name,a.salary,a.dept_id,b.avgsalfrorn s_empa,selectdept_idavgsalaryavgsalfrom s_empgroup bydept_id bwhere,a.dept_id=b.dept_idand a.salaryb.avgsal找出那些工资高于他们所在部门的的工资的员工4:managerSQLselect id,last_name,salary,manager_idfrom s_emp awhere找出部门工资排名salaryselect salaryfroms_empwhere id=a.manager_id5:其次,三的员工selectname,salary,deptnofromselect concatlast_name first_namename,salary department_id deptnorank overpartition by.department_id orderbysalarydesc rnkfromemployees wherernk=2orrnk=3运用精华:left joincreatetablettid intidentity1,1,name varcharlOinserttt selecta unionallselect bunion allfselect*ccreate tablett1idintidentity1,1,name varcharlOinsertttl宣select unionallselect bunion allfselect*c一结果--提取相等的select*from ttleft jointtl ontt.id=ttl.id idid name id name—结果1―用的是可select*from ttleft jointtl ontt.id=ttl.id wherett.id=l where,以看出用和的区分了)where andid name id name1a1a—结果就是查询表中全部记录,假如有返回对应值,没有为2:left jointt NULLselect*from ttleft jointtl ontt.id=ttl.id一用的是且是主表and tt.id=1and,tt.id=1id name idname1a1a2b NULL NULL3c NULLNULL一结果这个返回跟上面一样的结果3:select*from ttleft jointtl ontt.id=ttl.id一用的是且是从表and ttl.id=land,ttl.id=lid nameidname1a1a2b NULLNULL3c NULLNULL―结果4:—关键是去掉了相等这个条件select*from ttleft jointtl ontt.id=l ididnameidname1a1a2a2b3a3c4b NULLNULL5c NULLNULL一对结果许多人不了解,看(邹建)的说明4,2jcxc嘛,无非是左边表为基础,扫描右边表匹配的记录left join先是左边表的第条记录11a按条件来扫描右边表的记录a.id=l,对于右边表的每条记录,明显这个条件都是成立的,所以第条记录a.id=l1匹配后的结果是lai a1a2b2a3c然后再扫描第条记录23b对于条件在边表中没有与之匹配的记录,所以右边表为a.id=l,NULL因此第条记录匹配的结果为2NULLNULL第条记录与第条记录一样,匹配的结果是324c NULLNULL因此最终结果是条记录51a1a1a2b1a3c2b nullnull3c nullnull-—再看—是从表select*from ttleft jointtl onttl.id=l ttl.id=lid nameidname1a1a2b1a3c1a一说明:上面的结果是这样取的,先取主表联立从表正好1a,tt2,其第一条数据满意条件,所以输出id=l,1a1a然后再是从表其次条数据出输出,同理也不满意条件,再主表2b,id!=l,3c2b,联立从表第一条数据满意条件,输出,1a,以后依次类推一最主要的就是在连接里的和是有本质区分and whereselect*fromaleft joinbona.id=b.id wherea.id=lselect*fromaleft joinbona.id=b.id anda.id=l里的条件是对连接后的结果集进行筛选,而里的条件是关联时进行比较where on用的一再看一下更加具体的说明、首先列出笛卡尔乘积11a1a1a2b1a3c2b1a2b2b2b3c3c1a3c2b3c3c、对每个左边的纪录,看有没有符合条件的,假如有,保留符合条件的,2on去掉不符合条件的,假如没有,保留左边和右边是的一条纪录null1a1a1a2b—左边的都符合都保留1a3c1―左边的都不符合,变成一条右边的纪录2b nullnull2null―左边的都不符合,变成一条右边的纪录3c nullnull3null、再去掉条件不符合的,就是结果(这里的例子没有条件,所以3where where结果不变,大家自己可以加条件测试下)1a1a2a2b3a3c4b nullnull5c nullnull对于的条件left joinon用左边的记录去匹配右边的每条记录,匹配条件就是里的条件,若右边有满意on条件的记录,则取出来,若没有匹配的记录,则给个值,对于其后的条件,null where是对整个后产生的结果集进行筛选,所以条件放在里和里left joinon where是完全不同的意思,切记!!!周五的下午面试了一位来自华为的高手,此高手称精通排序算法我一听说某人精通某项,就忍不住兴奋,喜爱抓住别人最精通的这一项追根究底一方面来说,问你最精通的东西,不能算考官有意刁难你;另一方面来说,面试别人往往成为自己变相请教高手的途径问之相对于《数据结构》课本上供应的快速排序算法,有没有可以优化的余地?原来我的原意是想听到他说将递归算法修改为非递归算法,可是聊了一些方面也没提高这个虽然对这个问题的答案有些悲观,总的来说这个高手思维主动、擅长思索,仍是特别不错的面试完成后,我到网上查了查快速排序的一些资料,发觉快速排序算法可优化的地方许多,其实我自己也是半桶水快速排序的优化方法包括、将递归算法修改为非递归算法;
1、须要排序的元素个数假如少于个,则运用插入排序代替快速排序;
28、运用仿函数(函数对象),而不是函数指针模版库会将比较函数绽开,从而3避开函数调用带来的开销;、运用多线程快速排序是分而治之的思想,每个独立的段可以并行进行排序4因此可以利用计算机的并行处理实力来提高排序的性能;基础学问SQL姓名职员档案表年龄>SELECTFROMWHERE25吩咐
1.SELECT姓名职员档案表年龄SELECTFROM AS DA WHERE DA.=18姓名SELECT职员档案表年龄>FROM AS DA WHERE DA.16AND DA.年龄<35姓名职员档案表年龄SELECTFROM AS DA WHERE DA.BETWEEN16AND35姓名职员档案表部门=技术部”SELECTFROM AS DAWHERE DA.部门=信息部”OR DA.姓名职员档案表部门(技术部“,SELECTFROM AS DAWHERE DA.IN”“信息部”)通配符MS SQL职员档案表姓名李%//%”SELECT*FROM AS DAWHERELIKE表示随意字符职员档案表编号〃表示随SELECT*FROM ASDAWHERELIKE02_”_意一个字符排序ORDERBY职员档案表.年龄>SELECT*FROMASDA ORDERBY DA18DESC降序//DESC职员档案表部门,薪金SELECT*FROMASDA ORDERBY DA.DA.DESC//先将相同部门列在一起,然后按薪金降序排列和和聚合函数DISTINCT ALL所在城市城市职员档案表只能运SELECT ASDISTINCTFROM//DISTINCT用一次,视为首词薪金)平均工资职员档案表//显SELECT AVGfALLAS FROM示默认可选:
2633.33ALL(薪金)平均工资职员档案表//显SELECT AVGDISTINCT AS FROM示:因为会忽视掉相同工资中的其它项
1676.20DISTINCT)记录数职员档案表SELECT COUNTf*AS FROM(年龄)最大年龄职员档案表SELECT MAXAS FROM(薪金)最低工资职员档案表SELECT MINAS FROM按某字段对数据进行分组汇总(显示)GROUP BY:部门,(编号)人数总数,(年龄)平均年龄,SELECT COUNTAS AVGAS SUM(薪金)薪金总数职员档案表部门//留意,“部门“是AS FROMGROUP BY分组字段,其它都运用了聚合函数,而后面只能运用运用分组字段GROUP BY部门,(编号)人数总数,(年龄)平均年龄,SELECT COUNTAS AVGAS SUM(薪金)薪金总数职员档案表部门部门=技ASFROMGROUPBYHAVING术部只能在后面//HAVING GROUPBY内连接INNER JOINON:编号,姓名,部门职员档案表SELECT DA.DA.DA.FROMASDA INNER部门信息表部门编号JOIN AS BM ON DA.=BM.(职员档案表部门信息表SELECT*FROMASDA INNER JOIN ASBM ON.部门编号)负责人信息表编号DA=BM.INNER JOINAS FZRONDA.=FZR.编号吩咐
2.INSERT职员档案表(王五,信息部,)INSERT INTOVALUES0011,25,2500吩咐
3.UPDATE职员档案表部门=销售部.年龄UPDATE ASDA SETDA.WHERE DA35职员档案表.薪金UPDATE ASDA SETDA*
1.1吩咐
4.DELETE以下数据结构中不属于线性数据结构的是_______、队列、线性表
2.A Bo、二叉树、栈C D在一棵二叉树上第层的结点数最多是_______、、、、
3.5A8B16C32Do15下面描述中,符合结构化程序设计风格的是_______
4.o、运用依次、选择和重复循环三种基本限制结构表示程序的限制逻辑A、模块只有一个入口,可以有多个出口B、留意提高程序的执行效率、不运用语句C Dgot下面概念中,不属于面对对象方法的是_______
5.o、对象、继承、类、过程调用A BC D在结构化方法中,用数据流程图作为描述工具的软件开发阶段是
6.DFD—BDBCA—o、可行性分析、需求分析、具体设计、程序编码A BC D在软件开发中,下面任务不属于设计阶段的是______
7.o、数据结构设计、给出系统模块结构、定义模块算法、定义需求并A BC D建立系统模型数据库系统的核心是______
8.、数据模型、数据库管理系统、软件工具、数据库A BC D下列叙述中正确的是______
9.、数据库是一个独立的系统,不须要操作系统的支持A、数据库设计是指设计数据库管理系统B、数据库技术的根本目标是要解决数据共享的问题C、数据库系统中,数据的物理结构必需与逻辑结构一样D职员档案表.姓名=王五DELETE FROMASDAWHEREDA职员档案表部门信息表DELETE FROMASDAINNERJOINASBMON部门编号姓名=王五//删除与此人相关的其它的表的信DA.=BM.WHEREDA.息吩咐
5.BACKUP职员档案表,,BACKUP DATABASETO DISK=c:\bak\2007-6-
18.bak吩咐
6.RESTORE职员档案表RESTORE DATABASEFROM,DISK=c:\bak\2007-6-
18.bak假设我有一个表table一道面试题目删除重复纪录7key idname张飞1100张飞21100关羽310021刘备41005|马超31004马超6|曹操1004很明显,张飞的记录重复了,我要删除随意一条重复的纪录该如何操作?假如7I1005我想指定删除依据排序的其次条重复纪录我该如何写我的意思是我要删key sql除为和的这两条记录,因为他们是其次次出现的当然了,最首要实key26现的是能删除一条重复的,不管怎么删,只要能让我保证数据的唯一性就行假如相同就可以判定两条记录重复了,是否相同并不重要idname这条语句是否正确delete fromtable wherekey notinfselect key=min keyfrom tablegroupby name下列模式中,能够给出数据库物理存储结构与物理存取方法的是
10.、内模式、外模式、概念模式、逻辑模式A BC D数据库文件是—
11.VisualFoxProDCBAA、存放用户数据的文件、管理数据库对象的系统文件A B、存放用户数据和系统的文件、前三种说法都对C D____________________________________语句中修改表结构的吩咐是
12.SQLo、A MODIFYTABLE BMODIFY STRUCTUREC ALTERTABLE DALTERSTRUCTURE.假如要创建一个数据组分组报表,第一个分组表达式是“部门”,其次个13分组表达式是“性别”,第三个分组表达式是“基本工资”,当前索引的索引表达式应当是__o、部门+性别+基本工资、部门+性别(基本工资)A B+STR、(基本工资)+性别+部门、性别+部门(基本工资)C STRD+STR.把一个项目编译成一个应用程序时,下面的叙述正确的是___14o、全部的项目文件将组合为一个单一的应用程序文件A、全部项目的包含文件将组合为一个单一的应用程序文件B、全部项目解除的文件将组合为一个单一的应用程序文件C、由用户选定的项目文件将组合为一个单一的应用程序文件D数据库、数据库系统、数据库管理系统三者之间的关系
15.DB DBS DBMS是O、包括和、包括和A DBSDB DBMSB DBMSDB DBS、包括和、就是也就是C DBDBSDBMSD DBSDB,DBMS在选项”对话框的“文件位置”选项卡中可以设置—
16.BAABAo、表单的默认大小、默认书目A B、日期和时间的显示格式、程序代码的颜色C D要限制两个表中数据的完整性和一样性可以设置”参照完整性”,要求这
17.两个表°、是同一个数据库中的两个表、不同数据库中的两个表A B、两个自由表、一个是数据库表另一个是自由表C D定位第一条记录上的吩咐是___
18.o、、、A GOTOP BGO BOTTOMC GO6D SKIP在关系模型中,实现”关系中不允许出现相同的元组”的约束是通过
19.、候选键、主键、外键、超键A BC D设当前数据库有条记录记录未进行任何索引,在下列三种状况下,当
20.10前记录号为时;为真时;为真时,吩咐的结果分别是1EOF BOFRECNO、A1,11,11,10,1C1,11,0D1100,,下列表达式中结果不是日期型的是
21.—CCBBA—o、AA CTOD“2000/10/01”B499/10/01}+365Cn n、VAL2000/10/01DDATE只有满意联接条件的记录才包含在查询结果中,这种联接为
22.、左联接、右联接、内部联接、完全联接ABC D索引字段值不唯一,应当选择的索引类型为
23.o、主索引、一般索引、候选索引、唯一索引ABCD执行选择工作区的结果是____
24.SELECTO、选择了号工作区、选择了空闲的最小号工作区AB。