多套数据库笔试题及答案(吐血推荐)_第1页
多套数据库笔试题及答案(吐血推荐)_第2页
多套数据库笔试题及答案(吐血推荐)_第3页
多套数据库笔试题及答案(吐血推荐)_第4页
多套数据库笔试题及答案(吐血推荐)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE44数据库笔试题及答案I第一套选择题1.下面叙述正确的是______。A、算法的执行效率与数据的存储结构无关B、算法的空间复杂度是指算法程序中指令(或语句)的条数C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、以上三种描述都不对2.以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈3.在一棵二叉树上第5层的结点数最多是______。A、8B、16C、32D、154.下面描述中,符合结构化程序设计风格的是______。A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B、模块只有一个入口,可以有多个出口C、注重提高程序的执行效率D、不使用goto语句5.下面概念中,不属于面向对象方法的是______。A、对象B、继承C、类D、过程调用6.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。A、可行性分析B、需求分析C、详细设计D、程序编码7.在软件开发中,下面任务不属于设计阶段的是______。A、数据结构设计B、给出系统模块结构C、定义模块算法D、定义需求并建立系统模型8.数据库系统的核心是______。A、数据模型B、数据库管理系统C、软件工具D、数据库9.下列叙述中正确的是______。A、数据库是一个独立的系统,不需要操作系统的支持B、数据库设计是指设计数据库管理系统C、数据库技术的根本目标是要解决数据共享的问题D、数据库系统中,数据的物理结构必须与逻辑结构一致10.下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。A、内模式B、外模式C、概念模式D、逻辑模式11.VisualFoxPro数据库文件是______。A、存放用户数据的文件B、管理数据库对象的系统文件C、存放用户数据和系统的文件D、前三种说法都对12.SQL语句中修改表结构的命令是______。A、MODIFYTABLEB、MODIFYSTRUCTUREC、ALTERTABLED、ALTERSTRUCTURE13.如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。A、部门+性别+基本工资B、部门+性别+STR(基本工资)C、STR(基本工资)+性别+部门D、性别+部门+STR(基本工资)14.把一个项目编译成一个应用程序时,下面的叙述正确的是______。A、所有的项目文件将组合为一个单一的应用程序文件B、所有项目的包含文件将组合为一个单一的应用程序文件C、所有项目排除的文件将组合为一个单一的应用程序文件D、由用户选定的项目文件将组合为一个单一的应用程序文件15.数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是______。A、DBS包括DB和DBMSB、DBMS包括DB和DBSC、DB包括DBS和DBMSD、DBS就是DB,也就是DBMS16.在"选项"对话框的"文件位置"选项卡中可以设置______。A、表单的默认大小B、默认目录C、日期和时间的显示格式D、程序代码的颜色17.要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表______。A、是同一个数据库中的两个表B、不同数据库中的两个表C、两个自由表D、一个是数据库表另一个是自由表18.定位第一条记录上的命令是______。A、GOTOPB、GOBOTTOMC、GO6D、SKIP19.在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过______。A、候选键B、主键C、外键D、超键20.设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是______。A、1,11,1B、1,10,1C、1,11,0D、1,10,021.下列表达式中结果不是日期型的是______。A、CTOD("2000/10/01")B、{^99/10/01}+365C、VAL("2000/10/01")D、DATE()22.只有满足联接条件的记录才包含在查询结果中,这种联接为______。A、左联接B、右联接C、内部联接D、完全联接23.索引字段值不唯一,应该选择的索引类型为______。A、主索引B、普通索引C、候选索引D、唯一索引24.执行SELECT0选择工作区的结果是______。A、选择了0号工作区B、选择了空闲的最小号工作区C、关闭选择的工作区D、选择已打开的工作区25.从数据库中删除表的命令是______。A、DROPTABLEB、ALTERTABLEC、DELETETABLED、USE26.DELETEFROMSWHERE年龄>60语句的功能是______。A、从S表中彻底删除年龄大于60岁的记录B、S表中年龄大于60岁的记录被加上删除标记C、删除S表D、删除S表的年龄列27.SELECT-SQL语句是______。A、选择工作区语句B、数据查询语句C、选择标准语句D、数据修改语句28.SQL语言是______语言。A、层次数据库B、网络数据库C、关系数据库D、非数据库29.在SQL中,删除视图用______。A、DROPSCHEMA命令B、CREATETABLE命令C、DROPVIEW命令D、DROPINDEX命令30.以下属于非容器类控件的是______。A、FormB、LabelC、pageD、Container31.将查询结果放在数组中应使用______短语。A、INTOCURSORB、TOARRAYC、INTOTABLED、INTOARRAY32.在命令窗口执行SQL命令时,若命令要占用多行,续行符是______。A、冒号(:)B、分号(;)C、逗号(,)D、连字符(-)33.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。SQL语句正确的是______。SELECT姓名,书名FROM借阅,图书,读者WHERE;借阅.借书证号="0001"AND;____________A、图书.总编号=借阅.总编号AND;读者.借书证号=借阅.借书证号B、图书.分类号=借阅.分类号AND;读者.借书证号=借阅.借书证号C、读者.总编号=借阅.总编号AND;读者.借书证号=借阅.借书证号D、图书.总编号=借阅.总编号AND;34.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是______。SELECT单位,______FROM借阅,读者WHERE;借阅.借书证号=读者.借书证号______A、COUNT(借阅.借书证号)GROUPBY单位B、SUM(借阅.借书证号)GROUPBY单位C、COUNT(借阅.借书证号)ORDERBY单位D、COUNT(借阅.借书证号)HAVING单位35.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号。下面SQL语句正确的是______。SELECT借书证号FROM借阅WHERE总编号=;______A、(SELECT借书证号FROM图书WHERE书名="现代网络技术基础")B、(SELECT总编号FROM图书WHERE书名="现代网络技术基础")C、(SELECT借书证号FROM借阅WHERE书名="现代网络技术基础")D、(SELECT总编号FROM借阅WHERE书名="现代网络技术基础")填空题36.算法的复杂度主要包括______复杂度和空间复杂度。37.数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。38.若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。39.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。40.关系数据库管理系统能实现的专门关系运算包括选择、连接和______。41.命令?LEN("THISISMYBOOK")的结果是______。42.SQLSELECT语句为了将查询结果存放到临时表中应该使用______短语。43.多栏报表的栏目数可以通过______来设置。44.在打开项目管理器之后再打开"应用程序生成器",可以通过按ALT+F2键,快捷菜单和"工具"菜单中的______。45.数据库系统的核心是______。46.查询设计器中的"联接"选项卡,可以控制______选择。47.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))用SQL的CREATE命令建立借阅表(字段顺序要相同),请对下面的SQL语句填空:______48.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对图书管理数据库,查询由"清华大学出版社"或"电子工业出版社"出版,并且单价不超出20元的书名。请对下面的SQL语句填空:SELECT书名,出版单位,单价FROM图书;WHERE_______AND;_______49.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对图书管理数据库,求共借出多少种图书。请对下面的SQL语句填空:SELECT_______FROM借阅选择题答案1-5CCBAD6-10BDBCA11-15DCBAA16-20BAABA21-25CCBBA26-30BBCCB31-35DDAAB填空题答案36.时间 37.模式或逻辑模式 38.黑盒 39.一对多或1对多或一对n或1:N或1:n或1:n或1:N或一对m或1:M或1:m或1:m或1:N40.投影 41.15 42.Intocursor或Intocursorcursorname43.页面设置或列数 44.应用程序生成器45.数据库管理系统或DBMS46.联接类型或联接条件47.CREATETABLE借阅(借书证号C(4),总编号C(6),借书日期D(8))或CREATABL借阅(借书证号C(4),总编号C(6),借书日期D(8))或CREATETABLE借阅(借书证号C(4),总编号C(6),借书日期D)或CREATABL借阅(借书证号C(4),总编号C(6),借书日期D)48.单价<=20或(出版单位="清华大学出版社"OR出版单位="电子工业出版社")或(出版单位="电子工业出版社"OR出版单位="清华大学出版社")或(出版单位='清华大学出版社'OR出版单位='电子工业出版社')与(出版单位="清华大学出版社"OR出版单位="电子工业出版社")或(出版单位='清华大学出版社‘)49.COUNT(DISTINCT总编号)或COUN(DISTINCT总编号)或COUNT(DIST总编号)或COUN(DIST总编号)第二套题选择题1.以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈2.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。A、可行性分析B、需求分析C、详细设计D、程序编码3.结构化程序设计主要强调的是______。A、程序的规模B、程序的易读性C、程序的执行效率D、程序的可移植性4.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。A、概要设计B、详细设计C、可行性分析D、需求分析5.下列关于栈的叙述中正确的是______。A、在栈中只能插入数据B、在栈中只能删除数据C、栈是先进先出的线性表D、栈是先进后出的线性表6.下面不属于软件设计原则的是______。A、抽象B、模块化C、自底向上D、信息隐蔽7.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。A、N+1B、NC、(N+1)/2D、N/28.视图设计一般有3种设计次序,下列不属于视图设计的是______。A、自顶向下B、由外向内C、由内向外D、自底向上9.下列有关数据库的描述,正确的是______。A、数据库是一个DBF文件B、数据库是一个关系C、数据库是一个结构化的数据集合D、数据库是一组文件10.下列说法中,不属于数据模型所描述的内容的是______。A、数据结构B、数据操作C、数据查询D、数据约束11.在下面的VisualFoxPro表达式中,运算结果是逻辑真的是______。A、EMPTY(.NULL.)B、LIKE('acd','ac?')C、AT('a','123abc')D、EMPTY(SPACE(2))12.表达式VAL(SUBS("奔腾586",5,1))*Len("visualfoxpro")的结果是______。A、13.00B、14.00C、45.00D、65.0013.以下关于自由表的叙述,正确的是______。A、全部是用以前版本的FOXPRO(FOXBASE)建立的表B、可以用VisualFoxPro建立,但是不能把它添加到数据库中C、自由表可以添加到数据库中,数据库表也可以从数据库中移出成为自由表D、自由表可以添加到数据库中,但数据库表不可从数据库中移出成为自由表14.下面关于数据环境和数据环境中两个表之间的关系的陈述中,______是正确的。A、数据环境是对象,关系不是对象B、数据环境不是对象,关系是对象C、数据环境是对象,关系是数据环境中的对象D、数据环境和关系均不是对象15.在"报表设计器"中,可以使用的控件是______。A、标签、域控件和线条B、标签、域控件和列表框C、标签、文本框和列表框D、布局和数据源16.用二维表数据来表示实体及实体之间联系的数据模型称为______。A、实体--联系模型B、层次模型C、网状模型D、关系模型17.用来指明复选框的当前选中状态的属性是______。A、SelectedB、CaptionC、ValueD、ControlSource18.使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr后,在命令窗口生成的命令是____。A、OPENQUERYzgjk.qprB、MODIFYQUERYzgjk.qprC、DOQUERYzgjk.qprD、CREATEQUERYzgjk.qpr19.可以伴随着表的打开而自动打开的索引是______。A、单一索引文件(IDX)B、复合索引文件(CDX)C、结构化复合索引文件D、非结构化复合索引文件20.在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实现的______。A、"一方"表的主索引或候选索引,"多方"表的普通索引B、"一方"表的主索引,"多方"表的普通索引或候选索引C、"一方"表的普通索引,"多方"表的主索引或候选索引D、"一方"表的普通索引,"多方"表的候选索引或普通索引21.下列函数中函数值为字符型的是______。A、DATE()B、TIME()C、YEAR()D、DATETIME()22.下面对控件的描述正确的是______。A、用户可以在组合框中进行多重选择B、用户可以在列表框中进行多重选择C、用户可以在一个选项组中选中多个选项按钮D、用户对一个表单内的一组复选框只能选中其中一个23.确定列表框内的某个条目是否被选定应使用的属性是______。A、ValueB、ColumnCountC、ListCountD、Selected24.设有关系R1和R2,经过关系运算得到结果S,则S是______。A、一个关系B、一个表单C、一个数据库D、一个数组25.DBAS指的是______。A、数据库管理系统B、数据库系统C、数据库应用系统D、数据库服务系统26.设X="ABC",Y="ABCD",则下列表达式中值为.T.的是______。A、X=YB、X==YC、X$YD、AT(X,Y)=027.在表结构中,逻辑型、日期型、备注型字段的宽度分别固定为______。A、3,8,10B、1,6,4C、1,8,任意D、1,8,428.在标准SQL中,建立视图的命令是______。A、CREATESCHEMA命令B、CREATETABLE命令C、CREATEVIEW命令D、CREATEINDEX命令29.有关SCAN循环结构,叙述正确的是______。A、SCAN循环结构中的LOOP语句,可将程序流程直接指向循环开始语句SCAN,首先判断EOF()函数的真假B、在使用SCAN循环结构时,必须打开某一个数据库C、SCAN循环结构的循环体中必须写有SKIP语句D、SCAN循环结构,如果省略了子句\FOR和WHILE条件子句,则直接退出循环30.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对于图书管理数据库,要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,下面SQL语句正确的是______。SELECT出版单位,______,______,______;FROM图书管理!图书______出版单位A、MIN(单价)AVGAGE(单价)COUNT(*)GROUPBYB、MAX(单价)AVG(单价)COUNT(*)ORDERBYC、MAX(单价)AVG(单价)SUM(*)ORDERBYD、MAX(单价)AVG(单价)COUNT(*)GROUPBY31.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))对于图书管理数据库,求CIE单位借阅图书的读者的人数。下面SQL语句正确的是______。SELECT______FROM借阅WHERE;借书证号_______A、COUNT(DISTINCT借书证号)IN(SELECT借书证号FROM读者WHERE单位="CIE")B、COUNT(DISTINCT借书证号)IN(SELECT借书证号FROM借阅WHERE单位="CIE")C、SUM(DISTINCT借书证号)IN(SELECT借书证号FROM读者WHERE单位="CIE")D、SUM(DISTINCT借书证号)IN(SELECT借书证号FOR借阅WHERE单位="CIE")32.查询订购单号(字符型,长度为4)尾字符是"1"的错误命令是______。A、SELECT*FROM订单WHERESUBSTR(订购单号,4)="1"B、SELECT*FROM订单WHERESUBSTR(订购单号,4,1)="1"C、SELECT*FROM订单WHERE"1"$订购单号D、SELECT*FROM订单WHERERIGHT(订购单号,1)="1"33.在关系模型中,为了实现"关系中不允许出现相同元组"的约束应使用______。A、临时关键字B、主关键字C、外部关键字D、索引关键字34.根据"职工"项目文件生成emp_sys.exe应用程序的命令是______。A、BUILDEXEemp_sysFROM职工B、BUILDAPPemp_sys.exeFROM职工C、LIKEEXEemp_sysFROM职工D、LIKEAPPemp_sys.exeFROM职工35.当前盘当前目录下有数据库:学院.dbc,其中有"教师"表和"学院"表。"教师"表:"学院"表:有SQL语句:SELECTDISTINCT系号FROM教师WHERE工资>=;ALL(SELECT工资FROM教师WHERE系号="02")与如上语句等价的SQL语句是______。A、SELECTDISTINCT系号FROM教师WHERE工资>=;(SELECTMAX(工资)FROM教师WHERE系号="02")B、SELECTDISTINCT系号FROM教师WHERE工资>=;(SELECTMIN(工资)FROM教师WHERE系号="02")C、SELECTDISTINCT系号FROM教师WHERE工资>=;ANY(SELECT工资FROM教师WHERE系号="02")D、SELECTDISTINCT系号FROM教师WHERE工资>=;SOME(SELECT工资FROM教师WHERE系号="02")填空题36.若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。37.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。38.在最坏情况下,冒泡排序的时间复杂度为______。39.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。40.关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。41.要把帮助文件设置为复制到硬盘上的Foxhelp.chm文件,需要在"选项"对话框的______选项卡上设置。42.TIME()的返回值的数据类型是______类型。43.在定义字段有效性规则中,在规则框中输入的表达式中类型是________。44.设计报表通常包括两部分内容:______和布局。45.______是指只有满足联接条件的记录才包含在查询结果中。46.设有图书管理数据库:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))借阅(借书证号C(4),总编号C(6),借书日期D(8))检索书价在15元至25元(含15元和25元)之间的图书的书名、作者、书价和分类号,结果按分类号升序排序。SELECT书名,作者,单价,分类号FROM图书;WHERE______;ORDERBY______;47.设有如下关系表R、S和T:R(BH,XM,XB,DWH)S(SWH,DWM)T(BH,XM,XB,DWH)实现R∪T的SQL语句是_______。48.设有如下关系表R:R(NO,NAME,SEX,AGE,CLASS)主关键字是NO其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。插入"95031"班学号为30,姓名为"郑和"的学生记录;_______。49.设有如下关系表R:R(NO,NAME,SEX,AGE,CLASS)主关键字是NO其中NO为学号(数值型),NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。删除学号为20的学生记录;______。选择题答案1-5CBBDD6-10CBBCC11-15DDCCA16-20DCBCA21-25BBDAC26-30CDCBD31-35ACBBA填空题答案36.黑盒37.概念或概念级38.n(n-1)/239.封装40.查询41.文件位置42.字符或C43.逻辑表达式44.数据源45.内部联接46.单价BETWEEN15AND25或单价BETW15AND25或单价BETWE15AND25或单价>=15and单价<=25或单价>=15and单价=<25或单价=>15and单价<=25或单价=>15and单价=<25与分类号ASC或分类号47.SELECT*FROMRUNIONSELECT*FROMT或SELE*FROMRUNIOSELE*FROMT或SELECT*FROMRUNIOSELECT*FROMT或SELE*FROMRUNIONSELE*FROMT48.INSERTINTOR(NO,NAME,CLASS)VALUES(30,"郑和","95031")或INSEINTOR(NO,NAME,CLASS)VALUES(30,"郑和","95031")49.DELETEFROMRWHERENO=20或DELEFROMRWHERENO=20或DELEFROMRWHERNO=20或DELETEFROMRWHERNO=20SQL经典面试题及答案1.一道SQL语句面试题,关于groupby表内容:2005-05-09胜2005-05-09胜2005-05-09负2005-05-09负2005-05-10胜2005-05-10负2005-05-10负如果要生成下列结果,该如何写sql语句?胜负2005-05-09222005-05-10121)selectrq,sum(casewhenshengfu='胜'then1else0end)'胜',sum(casewhenshengfu='负'then1else0end)'负'from#tmpgroupbyrq2)selectN.rq,N.勝,M.負from(selectrq,勝=count(*)from#tmpwhereshengfu='胜'groupbyrq)Ninnerjoin(selectrq,負=count(*)from#tmpwhereshengfu='负'groupbyrq)MonN.rq=M.rq3)selecta.col001,a.a1胜,b.b1负from(selectcol001,count(col001)a1fromtemp1wherecol002='胜'groupbycol001)a,(selectcol001,count(col001)b1fromtemp1wherecol002='负'groupbycol001)bwherea.col001=b.col0012.请教一个面试中遇到的SQL语句的查询问题表中有ABC三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。select(casewhena>bthenaelsebend),(casewhenb>cthenbeslecend)fromtable_name3.面试题:一个日期判断的sql语句?请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)select*fromtbwheredatediff(dd,SendTime,getdate())=04.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。显示格式:语文数学英语及格优秀不及格select(casewhen语文>=80then'优秀'when语文>=60then'及格'else'不及格')as语文,(casewhen数学>=80then'优秀'when数学>=60then'及格'else'不及格')as数学,(casewhen英语>=80then'优秀'when英语>=60then'及格'else'不及格')as英语,fromtable5.在sqlserver2000中请用sql创建一张用户临时表和系统临时表,里面包含两个字段ID和IDValues,类型都是int型,并解释下两者的区别?用户临时表:createtable#xx(IDint,IDValuesint)系统临时表:createtable##xx(IDint,IDValuesint)区别:用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.当创建它的进程消失时这个临时表就自动删除.全局临时表对整个SQLServer实例都可见,但是所有访问它的Session都消失的时候,它也自动删除.6.sqlserver2000是一种大型数据库,他的存储容量只受存储介质的限制,请问它是通过什么方式实现这种无限容量机制的。它的所有数据都存储在数据文件中(*.dbf),所以只要文件够大,SQLServer的存储容量是可以扩大的.SQLServer2000数据库有三种类型的文件:主要数据文件主要数据文件是数据库的起点,指向数据库中文件的其它部分。每个数据库都有一个主要数据文件。主要数据文件的推荐文件扩展名是.mdf。次要数据文件次要数据文件包含除主要数据文件外的所有数据文件。有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。次要数据文件的推荐文件扩展名是.ndf。日志文件日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是.ldf。7.请用一个sql语句得出结果从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。如使用存储过程也可以。table1月份mon部门dep业绩yj一月份0110一月份0210一月份035二月份028二月份049三月份038table2部门dep部门名称dname01国内业务一部02国内业务二部03国内业务三部04国际业务部table3(result)部门dep一月份二月份三月份0110nullnull02108null03null5804nullnull91)selecta.部门名称dname,b.业绩yjas'一月份',c.业绩yjas'二月份',d.业绩yjas'三月份'fromtable1a,table2b,table2c,table2dwherea.部门dep=b.部门depandb.月份mon='一月份'anda.部门dep=c.部门depandc.月份mon='二月份'anda.部门dep=d.部门depandd.月份mon='三月份'and2)selecta.dep,sum(casewhenb.mon=1thenb.yjelse0end)as'一月份',sum(casewhenb.mon=2thenb.yjelse0end)as'二月份',sum(casewhenb.mon=3thenb.yjelse0end)as'三月份',sum(casewhenb.mon=4thenb.yjelse0end)as'四月份',sum(casewhenb.mon=5thenb.yjelse0end)as'五月份',sum(casewhenb.mon=6thenb.yjelse0end)as'六月份',sum(casewhenb.mon=7thenb.yjelse0end)as'七月份',sum(casewhenb.mon=8thenb.yjelse0end)as'八月份',sum(casewhenb.mon=9thenb.yjelse0end)as'九月份',sum(casewhenb.mon=10thenb.yjelse0end)as'十月份',sum(casewhenb.mon=11thenb.yjelse0end)as'十一月份',sum(casewhenb.mon=12thenb.yjelse0end)as'十二月份',fromtable2aleftjointable1bona.dep=b.dep8.华为一道面试题一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。selectid,Count(*)fromtbgroupbyidhavingcount(*)>1select*from(selectcount(ID)ascountfromtablegroupbyID)TwhereT.count>1Sql常见面试题1.用一条SQL语句查询出每门课都大于80分的学生姓名namekechengfenshu张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100王五英语90A:selectdistinctnamefromtablewherenamenotin(selectdistinctnamefromtablewherefenshu<=80)2.学生表如下:自动编号学号姓名课程编号课程名称分数12005001张三0001数学6922005002李四0001数学8932005001张三0001数学69删除除了自动编号不同,其他都相同的学生冗余信息A:deletetablenamewhere自动编号notin(selectmin(自动编号)fromtablenamegroupby学号,姓名,课程编号,课程名称,分数)一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.你先按你自己的想法做一下,看结果有我的这个简单吗?答:select,fromteama,teambwhere<请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的科目。请注意:TestDB中有很多科目,都有1-12月份的发生额。AccID:科目代码,Occmonth:发生额月份,DebitOccur:发生额。数据库名:JcyAudit,数据集:Select*fromTestDB答:selecta.*fromTestDBa,(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID='101'groupbyOccmonth)bwherea.Occmonth=b.Occmonthanda.DebitOccur>b.Debit101ccur**************************面试题:怎么把这样一个表儿yearmonthamount199111.1199121.2199131.3199141.4199212.1199222.2199232.3199242.4查成这样一个结果yearm1m21991.41992.4答案一、selectyear,(selectamountfromaaamwheremonth=1andm.year=aaa.year)asm1,(selectamountfromaaamwheremonth=2andm.year=aaa.year)asm2,(selectamountfromaaamwheremonth=3andm.year=aaa.year)asm3,(selectamountfromaaamwheremonth=4andm.year=aaa.year)asm4fromaaagroupbyyear这个是ORACLE中做的:select*from(selectname,yearb1,lead(year)over(partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()over(partitionbynameorderbyyear)rkfromt)whererk=1;**********************精妙的SQL语句!精妙SQL语句作者:不详发文时间:2003.05.2910:55:05说明:复制表(只复制结构,源表名:a新表名:b)SQL:select*intobfromawhere1<>1说明:拷贝表(拷贝数据,源表名:a目标表名:b)SQL:insertintob(a,b,c)selectd,e,ffromb;说明:显示文章、提交人和最后回复时间SQL:selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b说明:外连接查询(表名1:a表名2:b)SQL:selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c说明:日程安排提前五分钟提醒SQL:select*from日程安排wheredatediff('minute',f开始时间,getdate())>5说明:两张关联表,删除主表中已经在副表中没有的信息SQL:deletefrominfowherenotexists(select*frominfobzwhereinfo.infid=infobz.infid)说明:--SQL:SELECTA.NUM,A.NAME,B.UPD_DATE,B.PREV_UPD_DATEFROMTABLE1,(SELECTX.NUM,X.UPD_DATE,Y.UPD_DATEPREV_UPD_DATEFROM(SELECTNUM,UPD_DATE,INBOUND_QTY,STOCK_ONHANDFROMTABLE2WHERETO_CHAR(UPD_DATE,'YYYY/MM')=TO_CHAR(SYSDATE,'YYYY/MM'))X,(SELECTNUM,UPD_DATE,STOCK_ONHANDFROMTABLE2WHERETO_CHAR(UPD_DATE,'YYYY/MM')=TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'YYYY/MM')¦¦'/01','YYYY/MM/DD')-1,'YYYY/MM'))Y,WHEREX.NUM=Y.NUM(+)ANDX.INBOUND_QTY+NVL(Y.STOCK_ONHAND,0)<>X.STOCK_ONHAND)BWHEREA.NUM=B.NUM说明:--SQL:select*fromstudentinfowherenotexists(select*fromstudentwherestudentinfo.id=student.id)and系名称='"&strdepartmentname&"'and专业名称='"&strprofessionname&"'orderby性别,生源地,高考总成绩说明:从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)SQL:SELECTa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy')AStelyear,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'01',a.factration))ASJAN,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'02',a.factration))ASFRI,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'03',a.factration))ASMAR,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'04',a.factration))ASAPR,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'05',a.factration))ASMAY,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'06',a.factration))ASJUE,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'07',a.factration))ASJUL,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'08',a.factration))ASAGU,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'09',a.factration))ASSEP,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'10',a.factration))ASOCT,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'11',a.factration))ASNOV,SUM(decode(TO_CHAR(a.telfeedate,'mm'),'12',a.factration))ASDECFROM(SELECTa.userper,a.tel,a.standfee,b.telfeedate,b.factrationFROMTELFEESTANDa,TELFEEbWHEREa.tel=b.telfax)aGROUPBYa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy')说明:四表联查问题:SQL:select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere说明:得到表中最小的未使用的ID号SQL:SELECT(CASEWHENEXISTS(SELECT*FROMHandlebWHEREb.HandleID=1)THENMIN(HandleID)+1ELSE1END)asHandleIDFROMHandleWHERENOTHandleIDIN(SELECTa.HandleID-1FROMHandlea)***********************有两个表A和B,均有key和value两个字段,如果B的key在A中也有,就把B的value换为A中对应的value这道题的SQL语句怎么写?updatebsetb.value=(selecta.valuefromawherea.key=b.key)whereb.idin(selectb.idfromb,awhereb.key=a.key);************************高级sql面试题原表:courseidcoursenamescore1java702oracle903xml404jsp305servlet80为了便于阅读,查询此表后的结果显式如下(及格分数为60):courseidcoursenamescoremark1java70pass2oracle90pass3xml40fail4jsp30fail5servlet80pass写出此查询语句没有装ORACLE,没试过selectcourseid,coursename,score,decode(sign(score-60),-1,'fail','pass')asmarkfromcourse完全正确SQL>desccourse_vNameNull?TypeCOURSEIDNUMBERCOURSENAMEVARCHAR2(10)SCORENUMBERSQL>select*fromcourse_v;COURSEIDCOURSENAMESCORE1java702oracle903xml404jsp305servlet80SQL>selectcourseid,coursename,score,decode(sign(score-60),-1,'fail','pass')asmarkfromcourse_v;COURSEIDCOURSENAMESCOREMARK1java70pass2oracle90pass3xml40fail4jsp30fail5servlet80pass**************************原表:idproidproname11M12F21N22G31B32A查询后的表:idpro1pro21MF2NG3BA写出查询语句解决方案sql求解表a列a1a2记录1a1b2x2y2z用select能选成以下结果吗?1ab2xyz使用pl/sql代码实现,但要求你组合后的长度不能超出oraclevarchar2长度的限制。下面是一个例子createorreplacetypestrings_tableistableofvarchar2(20);createorreplacefunctionmerge(pvinstrings_table)returnvarchar2islsvarchar2(4000);beginforiin1..pv.countloopls:=ls||pv(i);endloop;returnls;end;createtablet(idnumber,namevarchar2(10));insertintotvalues(1,'Joan');insertintotvalues(1,'Jack');insertintotvalues(1,'Tom');insertintotvalues(2,'Rose');insertintotvalues(2,'Jenny');columnnamesformata80;selectt0.id,merge(cast(multiset(selectnamefromtwheret.id=t0.id)asstrings_table))namesfrom(selectdistinctidfromt)t0;droptypestrings_table;dropfunctionmerge;droptablet;用sql:Wellifyouhaveathoreticalmaximum,whichIwouldassumeyouwouldgiventhelegibilityoflistinghundredsofemployeesinthewayyoudescribethenyes.ButtheSQLneedstousetheLAGfunctionforeachemployee,henceahundredempsahundredLAGs,sokindofbulky.Thisexampleusesamaxof6,andwouldneedmorecutnpastingtodomorethanthat.SQL>selectdeptno,dname,emps2from(3selectd.deptno,d.dname,rtrim(e.ename||','||4lead(e.ename,1)over(partitionbyd.deptno5orderbye.ename)||','||6lead(e.ename,2)over(partitionbyd.deptno7orderbye.ename)||','||8lead(e.ename,3)over(partitionbyd.deptno9orderbye.ename)||','||10lead(e.ename,4)over(partitionbyd.deptno11orderbye.ename)||','||12lead(e.ename,5)over(partitionbyd.deptno13orderbye.ename),',')emps,14row_number()over(partitionbyd.deptno15orderbye.ename)x16fromempe,deptd17whered.deptno=e.deptno18)19wherex=120/DEPTNODNAMEEMPS10ACCOUNTINGCLARK,KING,MILLER20RESEARCHADAMS,FORD,JONES,ROONEY,SCOTT,SMITH30SALESALLEN,BLAKE,JAMES,MARTIN,TURNER,WARDalso先createfunctionget_a2;createorreplacefunctionget_a2(tmp_a1number)returnvarchar2isCol_a2varchar2(4000);beginCol_a2:='';forcurin(selecta2fromunite_awherea1=tmp_a1)loopCol_a2=Col_a2||cur.a2;endloop;returnCol_a2;endget_a2;selectdistincta1,get_a2(a1)fromunite_a1ABC2EFG3KMN********************************一个SQL面试题去年应聘一个职位未果,其间被考了一个看似简单的题,但我没有找到好的大案.不知各位大虾有无好的解法?题为:有两个表,t1,t2,Tablet1:SELLER|NON_SELLERABACADBABCBDCACBCDDADBDCTablet2:SELLER|COUPON|BALA9100B9200C9300D9400A9.5100B9.520A1080要求用SELECT语句列出如下结果:如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和且用的方法不要增加数据库负担,如用临时表等.NON-SELLER|COUPON|SUM(BAL)A9900B9800C9700D9600A9.520B9.5100C9.5120D9.5120A100B1080C1080D1080关于论坛上那个SQL微软面试题问题:一百个账户各有100$,某个账户某天如有支出则添加一条新记录,记录其余额。一百天后,请输出每天所有账户的余额信息这个问题的难点在于每个用户在某天可能有多条纪录,也可能一条纪录也没有(不包括第一天)返回的记录集是一个100天*100个用户的纪录集下面是我的思路:1.创建表并插入测试数据:我们要求username从1-100CREATETABLE[dbo].[TABLE2]([username][varchar](50)NOTNULL,--用户名[outdate][datetime]NOTNULL,--日期[cash][float]NOTNULL--余额)ON[PRIMARYdeclare@iintset@i=1while@i<=100begininserttable2values(convert(varchar(50),@i),'2001-10-1',100)inserttable2values(convert(varchar(50),@i),'2001-11-1',50)set@i=@i+1endinserttable2values(convert(varchar(50),@i),'2001-10-1',90)select*fromtable2orderbyoutdate,convert(int,username)2.组合查询语句:a.我们必须返回一个从第一天开始到100天的纪录集:如:2001-10-1(这个日期是任意的)到2002-1-8由于第一天是任意一天,所以我们需要下面的SQL语句:selecttop100dateadd(d,convert(int,username)-1,min(outdate))asoutdatefromtable2groupbyusernameorderbyconvert(int,username)这里的奥妙在于:convert(int,username)-1(记得我们指定用户名从1-100:-))groupbyusername,min(outdate):第一天就可能每个用户有多个纪录。返回的结果:outdate2001-10-0100:00:00.000……2002-01-0800:00:00.000b.返回一个所有用户名的纪录集:selectdistinctusernamefromtable2返回结果:username11010099c.返回一个100天记录集和100个用户记录集的笛卡尔集合:select*from(selecttop100dateadd(d,convert(int,username)-1,min(outdate))asoutdatefromtable2groupbyusernameorderbyconvert(int,username))asACROSSjoin(selectdistinctusernamefromtable2)asBorderbyoutdate,convert(int,username)返回结果100*100条纪录:outdateusername2001-10-0100:00:00.00012002-01-0800:00:00.000100d.返回当前所有用户在数据库的有的纪录:selectoutdate,username,min(cash)ascashfromtable2groupbyoutdate,usernameorderbyoutdate,convert(int,username)返回纪录:outdateusernamecash2001-10-0100:00:00.0001902002-01-0800:00:00.00010050e.将c中返回的笛卡尔集和d中返回的纪录做leftjoin:selectC.outdate,C.username,D.cashfrom(select*from(selecttop100dateadd(d,convert(int,username)-1,min(outdate))asoutdatefromtable2groupbyusernameorderbyconvert(int,username))asACROSSjoin(selectdistinctusernamefromtable2)asB)asCleftjoin(selectoutdate,username,min(cash)ascashfromtable2groupbyoutdate,username)asDon(C.username=D.usernameanddatediff(d,C.outdate,D.outdate)=0)orderbyC.outdate,convert(int,C.username)注意:用户在当天如果没有纪录,cash字段返回NULL,否则cash返回每个用户当天的余额outdateusernamecash2001-10-0100:00:00.0001902001-10-0100:00:00.00021002001-10-0200:00:00.0001902001-10-0200:00:00.0002NULL<--注意这里2002-01-0800:00:00.00010050f.好了,现在我们最后要做的就是,如果cash为NULL,我们要返回小于当前纪录日期的第一个用户余额(由于我们使用orderbycash,所以返回top1纪录即可,使用min应该也可以),这个余额即为当前的余额:caseisnull(D.cash,0)wh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论