数据库SQL注入分类及防护思路数据库SQL注入分类及防护思路

数据库SQL注入分类及防护思路数据库SQL注入分类及防护思路
数据库SQL注入分类及防护思路数据库SQL注入分类及防护思路

数据库SQL注入分类及防护思路

作者:安华金和思成

一. 背景

数据库凭借其强大的数据存储能力和卓越的数据处理性能,在各行各业的信息化建设中发挥着关键的作用。随着数据库在各行业的大规模应用,数据泄露事件也频繁发生,这就使数据库安全问题也日益凸显,逐渐变成用户越来越担心的问题。虽然数据库厂商已经做了许多有效的措施来尽量解决数据库存在的安全问题,但至今为止数据库的安全漏洞仍然不断增加。下图为近5年数据库漏洞数量图。

在数据库漏洞中最为常见的漏洞类型是SQL注入漏洞。安华金和数据库攻防实验室结合多年的实践结果总结出了数据库注入的分类分享给大家,以便大家对SQL注入型漏洞有一个更加全面的了解。

SQL注入漏洞不仅出现在WEB端,也出现在数据库的自定义或标准库的存储过程、函数、触发器中。数据库自身的SQL注入漏洞比WEB端的注入漏洞对数据库的威胁性更大。本文对SQL注入的分类是从数据库的角度来划分,不考虑WEB端的角度,这两者在分类上有着不同的角度。

首先在解释不同的数据库SQL注入漏洞之前先简要说明一下数据库攻击者能够进行SQL 注入的主要原理:SQL注入漏洞是用户在输入中混入了程序命令。最直接的例子就是攻击者

在正常的Web 页面中把自己的SQL 代码通过用户输入传输到相应的应用程序中,从而执行

一些非授权的SQL 代码,以达到修改、窃取或者破坏数据库信息的目的。SQL 注入攻击甚至可以帮组攻击者绕过用户认证机制,使其可以完全的操控远程服务器上的数据库。如果应用

程序使用一些用户输入的数据来构造动态的SQL语句去访问数据库,将可能遭受到SQL 注入攻击。同样的如果在代码中使用了存储过程,并且这些存储过程缺乏对用户输入的合理限

制也很容易发生SQL 注入。

二. SQL注入分类

2.1 注入途径分类

SQL注入漏洞按照注入的物理途径可以分成两大类:通过WEB端对数据库进行注入攻

击和直接访问数据库进行注入攻击。

直接访问数据库进行注入攻击是以数据库用户的身份直接连接数据库进行SQL注入攻击。在这种攻击方式中,攻击者可以通过SQL注入来执行SQL语句从而提高用户权限或者越权

执行。而那些在PL/SQL程序中在给用户授权的时候没有使用authid current_user进行定义

的存储过程、函数、触发器、程序块将更容易受到SQL注入攻击。

通过WEB应用程序的用户对数据库进行连接并进行SQL注入攻击。在这种类型的SQL 注入攻击中,攻击者多采用拼接语句的方法来改变查询的内容。获取该账号权限下的全部信息。

一些高级的攻击手段往往结合这两种方式,先利用WEB应用程序上的SQL注入漏洞获

取数据库和数据库所在服务器的基本信息。再利用数据库自身SQL注入漏洞对获取的数据库账号进行提权、越权等操作已达到对数据库进行破坏或者获取敏感信息的目的。

2.2 注入方式分类

根据入侵方式,针对数据库的SQL注入攻击可以分为四种类型,分别是SQL Manipulation、Code Injection 、Function Call Injection以及Buffer Overflows 。前两种SQL注入攻击较为常见,多出现在WEB端的SQL注入上,而后两种攻击类型是直接针对数据库自身的攻击方式,所以对数据库的安全威胁更加致命。

1.针对SQL 操作的注入攻击(SQL manipulation)是在所有的SQL 注入攻击类型中最常见的一种类型。这种攻击的原理在于攻击者会试图在已经存在的SQL 语句中通过集合运算符(SET Operator)比如UNION、INTERSECT 或者MINUS 来添加一些内容在WHERE 子句中使其功能产生变化。当然还有可能会有其他的很多变化存在。最经典的SQL manipulation 攻击就存在于登录验证过程中。一个简单的Web 应用程序就可以通过执行以下的SQL 语

句来检查用户认证是否有返回值:

SELECT * FROM users WHERE username = 'admin' and PASSWORD = 'guess'而攻击者就可以尝试修改SQL 语句使其变为:

SELECT * FROM users WHERE username = 'admin' and PASSWORD = 'xxxx'or 'a' =

'a'

通过以上对于WHERE 子句的修改操作可以使用户登录的判定恒为真,这样攻击者便绕过了用户验证获得了进入后台的权利。集合运算符UNION 也常常被用在SQL 注入攻击中,其最主要的目的就是通过操作SQL 语句来从另外一个表中返回某些行。一个WEB 窗体可

以执行以下SQL 语句从一个存在的product 表中返回一个需要的表单:

SELECT product_name FROM all_products WHERE product_name like '%ddd%'

而攻击者可以修改SQL 语句使其变为:

SELECT product_name FROM all_products WHERE product_name like '%ddd%' UNION SELECT username,password FROM dba_users WHERE username like ‘%’这种情况下在执行完这个SQL语句以后所返回的web表单中的结果就会包括

所有的产品名以及所有的数据库用户名和密码(当然需要链接账号具备查询表dba_users 权限)。

2.代码注入攻击(CODE INJECTION)就是尝试在已经存在的SQL 语句中添加额外的SQL语句或者命令。这种类型的攻击会经常的被应用在微软的SQLServer 应用程序里。在SQL Server 中EXECUTE 语句经常会成为这种SQL 注入攻击的目标。虽然Oracle 这类数据库中没有相应的语句,在PL/SQL 和Java中,也不支持单个数据库的多条SQL 语句的请求,但一些程序语言或者API 可能允许多个SQL 语句同时执行。PL/SQL 和Java 应用程序可以动态的执行那些容易受到代码注入攻击的匿名PL/SQL 块。所以在特定情况下代码注入攻击对即便不支持多SQL请求的数据库依旧有效。

3.函数调用注入(FUNCTION CALL INJECTION)是因为在数据库函数或者自定义函数中存在某些漏洞,攻击者对问题函数进行SQL 语句注入从而使此函数可以执行非预期功能而达到攻击者的目的。严格讲不光数据库中的函数可能存在这些漏洞存储过程、触发器等也存在类似漏洞。这些函数调用可以被用来在数据库中生成数据或者系统调用。

以Oracle为例,Oracle 数据库允许自定义函数或者包中的函数作为SQL 语句的一部分来执行。同时Oracle 数据库在175 个标准数据库包中提供了1000 多个函数,其中有一小部分有可能遭到SQL 注入攻击,而那些用作网络通信的函数同样可以被攻击者利用。任何的自定义函数或者那些存在于自定义包中的函数都可以在SQL语句中执行。当函数作为SQL SELECT 语句中的一部分来执行的时候对于数据库来说不会造成任何变化除非这个函数被标记成了“PRAGMATRANSACTION”。只有极少数的标准数据库函数会被自动执行,而那些在插入、更新、删除语句中执行的函数会对数据库中的数据进行修改。当攻击者使用那些有漏洞的标准

Oracle 函数的时候就可以将数据库中的信息发送到远程计算机或者在其他的数据库服务器执行攻击。许多基于Oracle 的应用程序都可能会使用那些有漏洞的数据库软件包,而这些自定义的软件包里就有可能会包括那些可以修改密码或执行那些敏感的应用程序的函数。

对于函数调用注入攻击来说,任何动态生成的SQL 语句都是脆弱的,即使是最简单的SQL 语句都可以被攻击者利用。

例如创建存储过程test说明

用DBA权限建立自定义存储过程

create or replace procedure test (putin varchar2) as

type c_type is ref cursor;

cv c_type;

buffer varchar2(200);

begin

dbms_output.enable(1000000);

open cv for ‘select object_name from all_objects where owner =’’’||putin||’’’and object_type=’’library’’’’;

close cv;

End;

/

这个SQL 语句不容易遭到其它类型的注入攻击,但是却很容易遭受到函数注入攻击。这是因为在这个函数中缺乏对输入变量的约束。攻击者可能会输入的是一个想要执行的命令。例如grant dba to public;

低权限用户构造一个含有想要执行的命令的函数

Create or replace function get_dba return varchar authid current_user is

Pragma autonomous_transaction;

Begin

Execute immediate ‘grant dba to scott’;

End;

/

在这个例子中本来存储过程test是用来查询用户所拥有的库的,但是为了方便其他用户使用test的执行,这一权限被赋予了所有用户,导致任何用户都可以执行test存储过程。但是函数中由于采用了定义者权限定义test,所以造成所有用户在执行test的时候都获得了DBA 权限。

这一过程是低权限用户创建注入函数get_dba。通过test把任意低权限账号提权到DBA 权限。

Exec sys.test(‘AAAA’||username.get_dba()—‘);

至此低权限用户通过漏洞把自身提权到DBA权限可以对整个数据库进行非法控制。数据库厂商的解决方案一般是通过删除存在漏洞函数的public执行权限来解决

4.许多的标准数据库函数都很容易受到缓冲区溢出(BUFFER OVER FLOWS)攻击,这是因为只需要对那些没有及时打补丁的数据库做SQL 注入攻击就可以很容易利用到缓冲区

溢出漏洞。缓冲区溢出漏洞危害很大,往往最终会造成攻击者直接控制数据库或数据库所在

操作系统。

以Oracle为例,在某些版本的标准数据库软件包和标准数据库函数中

TZ_OFFSET,TO_TIMESTAMP_TZ, BFILENAME, FROM_TZ, NUMTOYMINTERVAL, andNUMTODSINTERVAL 等函数存在缓冲区溢出漏洞。而要使用这些存在缓冲区溢出漏洞

的标准数据库包和函数来做缓冲区溢出漏洞攻击就需要利用到之前所介绍的函数注入的方法;当攻击者通过SQL 注入攻击来利用缓冲区溢出漏洞的时候,就可以实现远程连接操作系统。此外,一些应用程序和WEB 服务器都不能够正常处理由于缓冲区溢出所造成的数据库连接

中断;通常,Web 进程将会被挂起,甚至导致发生拒绝服务攻击。

三. 防护SQL注入

数据库厂商针对SQL注入进行了大量的工作,其中以oracle为例在Oracle推出10G r2的时候开发了一个dbms_assert补丁包。这个补丁包主要被用来修复sql注入漏洞,加强对

用户输入的信息的防守。修复了大量存在的数据库漏洞。但并不能呢彻底解决数据库自身的

所有SQL注入漏洞。根据测试DBMS_ASSERT对二阶SQL注入和跨语言传参缺乏有效防守。

数据库厂商虽然一直在努力,但受限于数据库应用环境和场景。很多时候数据库不能及

时进行补丁升级,所以很多时候数据库威胁依然存在。安华金和攻防实验室建议广大数据库

用户,除了及时更新数据库补丁的同时,必要的时候采用第三方产品来加固数据库的安全。

这里安华金和攻防实验室给出两种数据库加固思路:

1.从信息的源头着手,对敏感信息进行加密。即便被攻击者获取到敏感信息,也保障信息是全密文,攻击者无法获得有价值的信息。

2.从数据库安全加固的角度。数据库防火墙可以有效防护来自外部的攻击行为。专业的数据库防火墙应该是基于数据库协议精确解析,通过对SQL语法/词法中存在的风险进行精确识别,拥有数据库虚拟补丁技术,能够进行细粒度权限管控,行为审计、监测分析等核心功能,以防止攻击者对数据库进行入侵。发挥保护数据库安全的作用。

相信以上无论哪种方式都会使用户数据库中的数据更加安全。

出师表

两汉:诸葛亮

先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。

侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。

臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。

今当远离,临表涕零,不知所言。

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

数据库期末考试填空题及答案

1 .数据库数据具有__________、__________和__________三个基本特点。 2.数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________、__________、__________、__________。 3. 数据库系统是指在计算机系统中引入数据库后的系统,一般由__________、__________、__________和__________构成。 4. 数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:__________阶段,__________阶段和__________阶段。 5. 数据库具有数据结构化、最小的__________、较高的__________等特点。 6. DBMS还必须提供__________保护、__________检查、__________、__________等数据控制功能。 7. 模式(Schema)是数据库中全体数据的__________和__________的描述,它仅仅涉及到__________的描述,不涉及到具体的值。 8. 三级模式之间的两层映象保证了数据库系统中的数据能够具有较高的__________和__________。 9. 根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。第一类是__________,第二类是__________。 10. 数据模型的三要素是指__________,__________,__________。实际数据库系统中所支持的主要数据模型是__________,__________,__________。 11. 数据模型中的__________是对数据系统的静态特征描述,包括数据结构和数据间联系的描述,__________是对数据库系统的动态特征描述,是一组定义在数据上的操作,包括操作的涵义、操作符、运算规则及其语言等。 12. 用树型结构表示实体类型及实体间联系的数据模型称为__________模型,上一层的父结点和下一层的子结点之间的联系是的联系。 13. 用有向图结构表示实体类型及实体间联系的数据模型称为__________模型,数据之间的联系通常通过__________实现。 14. 关系的完整性约束条件包括三大类:__________、__________和__________。 15. 关系数据模型中,二维表的列称为________,二维表的行称为________。 16. 用户选作元组标识的一个候选码为________,其属性不能取________。 17. 关系代数运算中,传统的集合运算有_____,_____,_____,_____。 18. 关系代数运算中,基本的运算是________,________,________,________,________。 (问答题) 19. 关系代数运算中,专门的关系运算有________,________,________。 20. 关系数据库中基于数学上的两类运算是________和________。 21. 关系代数中,从两个关系中找出相同元组的运算称为________运算。 22. R S表示R与S的________。 23. 设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。查询学生姓名和所在系的投影操作的关系运算式是________________。 24. 在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。 25. 已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。

mysql数据库系统及应用综合练习附答案

《MySQL数据库系统及应用》综合练习__1附答案 一、单项选择题(只有一个正确答案) 【1】执行语句"SELECT '2008-01-20'+ INTERV AL 2 DAY; "结果为()。A: 2010-01-20 B: 2008-01-22 C: 2008-02-11 D: 2008-03-20 答案: B 【2】下列是不正确的MySQL的变量命名方式的是()。 A: @name! B: @name C: @_name D: @n$ame 答案: A 【3】字符串'hel'lo'输出结果为()。 A: hel\'lo B: 'hello' C: hel'lo D: 'hel lo' 答案: C 【4】关系数据库模型是以()方式组织数据结构。 A: 文本 B: 网状 C: 树状 D: 二维表 答案: D 【5】使用下列语句中的()可以删除表中所有数据,但保留表结构。A: rename table B: delete C: drop table D: turn cate table 答案: D 【6】E-R图设计属于()。 A: 需求分析设计 B: 物理结构设计

C: 逻辑结构设计 D: 概念结构设计 答案: D 【7】执行语句"GREATEST(10,9,128,1)"结果为()。 A: 128 B: 1 C: 10 D: 9 答案: A 【8】在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则称这个属性为()。 A: 候选码 B: 主键 C: 主键值 D: 数据项 答案: B 【9】数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。这种功能称为()。 A: 数据控制功能 B: 数据管理功能 C: 数据操纵功能 D: 数据定义功能 答案: C 【10】1999年10月1日在mysql中表示方法错误的是()。 A: "1999/10/01" B: "1999%10%01" C: "1999\10\01" D: "1999-10-01" 答案: A 【11】两个表中的行按照给定的条件进行拼接而形成新表的运算为()。 A: 连接 B: 集合 C: 选择 D: 投影 答案: A 【12】向表中插入一个新行的纪录的命令为()。 A: insert from B: insert into C: replace from D: replace into 答案: B 【13】\n在MySQL中表示()。 A: 退格符 B: 换行符

数据库原理及应用(第二版)人民邮电出版社出版——习题参考答案

第1章数据概述 一.选择题 1.下列关于数据库管理系统的说法,错误的是C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率 3.下列说法中,不属于数据库管理系统特征的是C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是D A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于A A.系统软件B.工具软件 C.应用软件D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是B A.数据库B.操作系统 C.应用程序D.数据库管理系统 9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是D A.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端 B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

sql数据库期末考试题及答案

一、单选题(共 10 道试题,共 50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是( C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. Insert D. Alter 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于(A )。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 5. 记录数据库事务操作信息的文件是(D )。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用( C)命令。 A. SELECT * FROM CP WHERE 产品名称 LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产品名称 LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称 LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D )。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的( D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 9. 列值为空值(NULL),则说明这一列( C)。 A. 数值为0

SQL数据库图书管理系统(完整代码)

作品设计报告书题目:《图书管理系统》 班级网络2012-1班 学号 姓名 课程名称数据库应用技术 指导教师

目录

数据库课程设计报告书 一、设计目标 1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织 和实施。 2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试 运行等工作。 3.培养把所学知识运用到具体对象,并能求出解决方案的能力。 二、数据库存储设计指导思想 在数据库存储设计的无数选择中,简单是系统架构师和DBA 的秘密武器。 简单,有时候就来自于对一个特定的表或表空间没有选择最优I/O 特性,总有这么一种可能,一个富有经验的DBA 拥有高超的存储技能并可以没有时间限制的去为一个非常重要的表或者索引配置一个存储。然而这样做的问题是,就算能达到设计的最佳性能,为了维护原始对象,这也经常造成对一个系统的管理变得更加复杂。好的数据库存储设计的要点是,在一个动态系统上,实现所有目标应该是最初的系统设计的一部分,并应该在数据库运行过程中长期进行。这篇文档简单的最佳实践描述达到了这些目标并且几乎没有性能损失。 三、任务 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语言及查询结果。 2.上机实现。

1.问题描述 1.1背景 随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。 另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。 提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。 1.2数据需求 图书馆管理信息系统需要完成功能主要有: 1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。 2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。 3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。 4.书籍类别信息的查询、修改,包括类别编号、类别名称。 5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。 6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。 7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。 8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。 9.还书信息的输入,包括借书证编号、书籍编号、还书日期。 10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

大工18春《SQL数据库系统及应用》在线作业2

------------------------------------------------------------------------------------------------------------------------------ (单选题) 1: 如果想查询订单表中订购金额大于等于800的所有信息,下面()语句能够完成此任务。 A: select * FROM 订单表 WHERE 订购金额<800 B: select * FROM 订单表 WHERE 订购金额>800 C: select * FROM 订单表 WHERE 订购金额<=800 D: select * FROM 订单表 WHERE 订购金额>=800 正确答案: (单选题) 2: 如果想查询订单表中前5条信息,下面()语句能够完成此任务。 A: select top 5 * FROM 订单表 B: select up 5 * FROM 订单表 C: select up_down 5 * FROM 订单表 D: select top_down 5 * FROM 订单表 正确答案: (单选题) 3: Select emp_id,emp_name,sex,title,wage from Yuangong order by emp_name 句子得到的结果集是按( )排序。 A: emp_id B: emp_name C: sex D: wage 正确答案: (单选题) 4: 如果要查询学校员工的平均收入,则使用以下()聚合函数。 A: sum() B: ABS() C: count() D: avg() 正确答案: (单选题) 5: 如果要查询学校员工的总收入,可以使用以下()聚合函数。 A: sum() B: ABS() C: count() D: MAX() 正确答案: (单选题) 6: Select count(*) from student 语句得到的结果是()。 A: 某个记录的详细信息 B: 全部记录的详细信息 C: 所有记录的条数 D: 得到16条记录 正确答案: (单选题) 7: SQL语句中,查询中分组的关键词是()。 A: ORDER BY B: LIKE C: CREATE D: GROUP BY

数据库系统及应用(高专)第二次作业

数据库系统及应用(高/专)第二次作业 This course 首页我的课程理工类课程数据库系统及应用(高/专)(2321)第五章T-SQL语言第二次作业数据库系统及应用(高/专) 开始时间2018年10月10日星期三21:07 状态完成 完成于2018年10月10日星期三21:15 耗时7 分钟29 秒 分数18.00/19.00 成绩94.74/满分100.00 题目1 正确 获得1.00分中的1.00分 未标记标记题目 题干 在KCB表中找出名字中包含“原理”两个字的课程,对应的SQL命令是()。 选择一项: a. SELECT * FROM KCB WHERE 课程名= '原理' b. SELECT * FROM KCB WHERE课程名LIKE '%原理' c. SELECT * FROM KCB WHERE课程名LIKE '原理%' d. SELECT * FROM KCB WHERE课程名LIKE '%原理%' 正确 反馈 你的回答正确 正确答案是:SELECT * FROM KCB WHERE课程名LIKE '%原理%' 题目2 正确 获得1.00分中的1.00分 未标记标记题目 题干 对于SELECT KCB.*, CJB.* FROM KCB, CJB WHERE KCB.课程号=CJB.课程号,其等价的语句为()。 选择一项: a. SELECT KCB.*, CJB.* FROM KCB LEFT JOIN CJB ON KCB.课程号=CJB.课程号 b. SELECT KCB.*, CJB.* FROM KCB RIGHT JOIN CJB ON KCB.课程号=CJB.课程号 c. SELECT KCB.*, CJB.* FROM KCB JOIN CJB ON KCB.课程号=CJB.课程号正确 d. SELECT KCB.*, CJB.* FROM KCB FULL JOIN CJB ON KCB.课程号=CJB.课程号 反馈 你的回答正确 正确答案是:SELECT KCB.*, CJB.* FROM KCB JOIN CJB ON KCB.课程号=CJB.课程号 题目3 正确

(SQLServer)考试试题及答案

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书 (SQL Server)考试试卷 第一大题:单选题(30 分) 1. (1分) 数据模型的三要素不包括()。 (A) 数据结构(B) 数据操作(C) 数据完整性约 束(D) 数据恢复 2. (1分) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 ()。 (A) 结构独立性(B) 物理独立性(C) 逻辑独立 性(D) 分布独立性 3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联 系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。 (A) 1:1联系(B) 1:n联系(C) n:m联 系(D) 多种联系 4. (1分) 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。 (A) 元组(B) 关键字(C) 记 录(D) 属性 5. (1分) 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. (1分) SQL语言查询一次的结果是一个()。 (A) 元组(B) 表(C) 属性(D) 数据

库 7. (1分) 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。 (A) 平凡函数依赖 (B) 部分函数依赖 (C) 完全 函数依赖 (D) 传递函数依赖 8 . (1分) 在Transact-SQL中,下列命令能让程序完全跳出循环的是( )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINU E 9 . (1 分) 在Transact-SQL中,下列选项不属于数值型数据类型的是( )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是( )。 (A) 张 _ (B) 张 % (C) 张 ^ (D) 张& 1 1. (1 分) 下列聚合函数中正确的是( )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) AVG (*) 12. (1 分) 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是( )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13 . (1 分 ) 在SQL的SELECT语句中,与投影运算对应的子句是( )。 (A) SELECT (B) FROM (C) WHERE (D) GROU P BY 14. (1 分) 在SQL语言中,给表起别名应使用( )。 (A) AS (B) RENAME (C) SET (D) FOR 15. (1分) 在SELECT语句中使用GROUP BY SNO时,SNO必须() 。 (A) 在WHERE中出现 (B) 在FROM中出现

SQL数据库系统期末试题

. 蚌埠学院2013—2014学年第一学期 《SQL 数据库系统》期末考试试题(A ) 注意事项:1、适用班级:11计算机科学与技术(本1、本2、本3班) 2、本试卷共2页。满分100分。 3、考试时间120分钟。 4、考试方式:闭卷 一、选择题(每小题1分,共25分) 1、在SQL SERVER 中,使用update 语句更新数据库表中的数据,以下说法正确的是( b )。 (A )每次只能更新一行数据 (B )每次可以更新多行数据 (C )如果没有数据项被更新,将提示错误信息 (D )更新数据时,必须带有WHERE 条件子句 2、在SQL Server 2008中,要防止大于100的数据被保存到int 类型的列,可以使用( d )。 (A )主键约束 (B )限制约束 (C )外键约束 (D )检查约束 3、在SQL Server 2008 中,有students(学生)表,包含字段:Sid(学号),SName(姓名),Grade(成绩)。现要将所有学员的成绩加10分。下列SQL 语句正确的是( d )。 (A )update students set Grade=Grade+10 where Sid=1 (B )update * set Grade=Grade+10 (C )update * from students set Grade=Grade=Grade+10 (D )update students set Grade=Grade+10 4、在SQL Server 2008 中,有一个product(产品)表,包含子段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或者“香蕉”的记录,下列语句正确的是( c )。 (A ) SELECT*FROM product ON pname=’苹果’OR pname=’香蕉’ (B ) SELECT*FROM product ON pname=’苹果’ AND pname=’香蕉’ (C ) SELECT*FROM product WHERE pname=’苹果’ OR pname=’香蕉’ (D ) SELECT*FROM product WHERE pname=’苹果’ AND pname=’香蕉’ 5、在SQL Server 2008中,附加数据库操作是指( b )。 (A )把SQL Server 数据库文件保存为其他数据库文件。 (B )根据数据库物理文件中的信息,把数据库在SQL Server 2008中恢复。 (C )把所有该数据库表的数据清空。 (D )把数据库删除掉。 6、在SQL Sever 2008中,假设表 users 包含主键列 id ,那么执行“Update users SET id=20 WHERE id=30”,执行的结果可能有( c )。 (A )如果表中含有id 为30的记录,但不包含id 为20的记录,则更新失败。 (B )执行出错,因为主键列不可以被更新。 (C )如果表中同时含有id 为20和id 为30的记录,则更新失败。 (D )如果表中不包含id 为20 和id 为30 的记录,则更新一行记录。 7、在SQL Sever 2008中,查找 student 表中所有身份证号码CardNo 的前三位为010或020的记录,以下语句正确的是( c )。 (A )select * from student where cardno like ‘010%’ and cardno like ‘020%’ (B )select * from student where cardno like ‘010%’ or ‘020%’ (C )select * from student where cardno like ‘0[1,2]0%’ (D )select * from student where cardno like ‘0(1,2)0%’ 8、在SQL Sever 2008中,学生表student 中包含以下字段:学生编号 sid (主键),学生姓名 sName ,现在查询所有姓名重复的记录,以下语句正确的是( b )。 (A )select * from student where count(sid)>1 (B )select a. * from student a, student b where a.sname=b.sname (C )select a.* from student a, student b where a.sname=b.sname and a.sid<>b.sid (D )select * from student group by sName where count(sid)>1 9、在SQL Sever 2008 中,有系统数据库和用户数据库,下列不属于系统数据库的是( d )。 (A ) master (B ) model (C ) msdb (D ) pubs 10、在SQL Server 2008中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,要求( a )。 装 订 线 内 不 要 答 题

大工20秋《SQL数据库系统及应用》在线作业1

大工20秋《SQL数据库系统及应用》在线作业1 1:删除表sst的命令( )。 A、DROP_FOR sst B、DELETES TABLE sst C、DROP TABLE sst D、DELETES sst 答案:C 2:在SQL语句中,修改表结构的命令是( )。 A、MODIFY_FOR TABLE B、MODIFY_FOR STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 答案:C 3:SQL语句中建立表的命令是( )。 A、DROP SCHEMA B、CREATE TABLE C、CREATE VIEW D、DROP INDEX 答案:B 4:在select语句查询时,使用WHERE子句指出的是( )。 A、创建删除条件 B、排序结果

C、查询条件 D、查询视图 答案:C 5:若想查询出所有姓王的且民族为汉族的学生信息,则WHERE条件应为( )。 A、name like '王%'and Minzu='汉族' B、name like '王%'and Minzu!='汉族' C、name like '王%'and Minzu ISS '汉族' D、name like '王_'and Minzu IS '汉族' 答案:A 6:以下说法中正确的是( )。 A、student_3是不合法的变量名 B、SQL中用户变量也称为全局变量 C、a2是不合法的变量名 D、可以使用语句来为变量赋值 答案:D 7:下面聚合函数中正确的是( )。 A、SUM (*) B、COUNT (*) C、MAX (*) D、AVG (*) 答案:B 8:以下聚合函数中用于返回最大值的是( )。 A、VARP

数据库系统及应用复习

ZH计0418班数据库系统及应用复习 一、填空题 1、SQL具有数据定义、查询、操纵和控制等四种主要功能。 2、一个关系模型由若干个关系模式所组成。 3、若实体A和B是1对多的联系,实体B和C是多对1的联系,则实体A和C是多对_多_联系。 4、按照两关系中对应属性值相等的条件所进行的联接称为等值联接。 5、关系规范化就是使一个关系模式描述一个实体,或实体间的一种联系。 6、假定一个E-R图包含有A实体和B实体,并且从A到B存在着1:n 的联系,则转换成关系模型后,包含有 2 个关系模式。 7、SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,充分体现了关系数据语言的特点和优点。 8、一个关系就是一张二维表,每个关系有一个关系名,每个关系在计算机中作为一个文件存储起来。 9、人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖和多值依赖。 10、任一种数据模型都有_型__和_值区别;层次模型是一棵_树__结构,关系模型是一个__二维表格 _结构。 11、在对象数据模型中,每个对象不仅要包含描述实体的__状态 ___特征,而且要包含描述实体的__行为_ _特征。 12、设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,A→C,(C,D)→E},该关系只满足第一范式,若要规范化为第三范式,则将得到 3 个关系。 13、数据库管理系统提供了数据库的定义、操纵、查寻、控制和通信功能。 14、E-R模型是描述概念世界、建立概念模型的实用工具。 15、数据库系统的主要特点是实现数据共享、减少数据冗余、采用特定的数据模型、具有较高的数据独立性、具有统一的数据控制功能。 16、选择运算的结果关系同原关系具有相同的结构框架,投影运算的结果关系同原关系通常具有不同的结构框架。 17、在SQL所支持的数据库系统的三级模式结构中,视图属于外模式,基本表属于全局概念模式。 18、设X—Y是关系模式R的一个函数依赖,并且Y是X的子集,则称X→Y是平凡函数依赖。 19、数据库系统的核心是数据库管理系统或DBMS。 20、实体之间的联系按照联系方式的不同可分为1∶1、1∶n和m∶n。 21、假定利用CREATE TABLE命令建立如下一个基本表:BOOK(总编号C(6),分类号C(8),书名C(16),单价N(10,2)),则单价字段的类型为数值型,字段宽度为 10 ,其中包含有 2 位小数。 22、在关系模型中,实体以及实体间的联系都是用关系来表示的。 23、关系模式由3NF转化为BCNF是消除了主属性对码的部分函数依赖和传递函数依赖。 24、专门的关系运算包括选择、投影、连接和除四种。 25、在数据库系统中,DBMS是指数据库管理系统。 26、传统的三大数据模型分别是层次模型、网状模型和关系模型。 27、在关系运算的四种专门关系运算符中,它们分别是选择、摄影、连接和除运算。 28、SQL的含义是结构化查询语句。29、SQL的四大功能分别是查询、定义、操纵和控制。 30、在SQL的修改表结构命令中增加字段的关键字是ADD。 修改字段的属性的关键字是ALTER COLUMN。 31、在SQL常用的运算符号中,OR表示或,NOT表示否定,LIKE表示字符匹配。 32、在SQL的SELECT的格式中用于表示条件的关键字是WHERE。 如:SELECT*FROM A WHERE年龄>20的含义是:从A表中查询出所有年龄大于20的记录。 33、在SQL中创建视图的基本命令是:CREATE VIEW〈试图名〉AS〈SELECT查询语句〉。 34、在操作的表中,可以定义的触发器大概有三类:它们分别是更新触发器、插入触发器和删除触发器 二、选择题 1、关系演算的基础是( C )。 A、形式逻辑中的逻辑演算 B、形式逻辑中的关系演算 C、数理逻辑中的谓词演算 D、数理逻辑中的形式演算 2、若要求分解保持函数依赖,那么模式分解一定能够达到( B )。 A、2NF B、 3NF C、 BCNF D、 1NF 3、用于配置客户端网络连接的工具是(B )。 A、企业管理器 B、客户端网络实用工具 C、查询分析器 D、联机帮助文档 4、1级封锁协议加上T要读取的数据R加S锁,这是( C )。 A、3级封锁协议 B、4级封锁协议 C、2级封锁协议 D、1级封锁协议 5、在表设计视图中,如果要限定数据的输入格式,应修改字段的( D )属性。 A、字段大小 B、有效性规则 C、输入格式 D、格式 6、下列( D )是主键的标志。 A、 B、 C、 D、 7、数据库类型是按照( B )来划分的。 A、文件形式 B、数据模型 C、记录形式 D、数据存取方法 8、哪种情况应尽量创建索引(A )。 A、在Where子句中出现频率较高的列 B、具有很多NULL值的列 C、记录较少的基本表 D、需要更新频繁的基本表 9、建立数据字典的时机是( A )。 A、需求分析阶段 B、数据库物理设计阶段 C、数据库实施 D、概念结构设计阶段 10、如果要在SQL Server中存储图形图像、Word文档文件,不可采用的数据类型是( C )。 A、binary B、varbinary C、text D、image 11.数据库系统的核心是(C) A数据库B数据库系统C数据库管理系统D数据 12.实体之间的联系的基本类型有(D) A一对一B一对多C多对多D上述三种都是

SQLServer数据库期末复习试题试卷及答案

现有关系数据库如下: 数据库名:教学数据库(Teacher) 教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数) 一、用SQL语言实现下列功能 1. 创建数据库。 要求:数据库名为 Teacher,主数据文件名为 Teacher_data.MDF,存放在目录下,初始值大小为2MB增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存放在目录下,初始值大小为 1MB增长方式为按照1MB的增量增长。 2. 创建教师信息表Teacherinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Teacher_Id char 6 主键教师编号 Teacher_Name n varchar 8 不允许空姓名 Sex n char 2 检查(男/女)性别 Birth_Place n varchar 20 默认值(汉族)民族 Zhiche ng n varchar 20 不允许空职称 H Id char 16 唯一身份证号 3.创建课程信息表Course info,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Course_ld char 5 主键】田千口i=r. 课程 号 Course_Name n varchar 20 不允许空课程名 B Hours Int 检查(0~200) 标准课时数 4.创建任课信息表TCinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Id int 自动编号 Teacher_Id char 6 外键教师编号 Course_Id char 5 外键】田千口 i=r. 课程号S Hours Int 实际课时数 5. 将下列课程信息添加到课程表中: 课号课程名称课时数 30001 SQL Server 数据库 90 30002 数据结构60 30003 VB 程序设计72 修改课号为30003的课程名称:Visual Basic 程序设计。

MySQL数据库系统及应用综合练习

一、单项选择题(只有一个正确答案) 【1】执行语句“SELECT '2008-01-20'+ INTERVAL 2 DAY; ”结果为 A: 2008-01-22 B: 2010-01-20 C: 2008-02-11 D: 2008-03-20 答案: A 【2】下列哪个是不正确的MySQL的变量命名方式 A: _name B: n$ame C: name D: name! 答案: D 【3】字符串‘hel’lo’输出结果为 A: hel'lo B: 'hello' C: hel\'lo D: 'hel lo' 答案: A 【4】关系数据库模型是以下哪种方式组织数据结构 A: 树状 B: 文本 C: 二维表 D: 网状 答案: C 【5】使用下列哪个语句可以删除表中所有数据,但保留表结构 A: truncate table B: rename table C: delete D: drop talbe 答案: A 【6】E-R图设计属于()。 A: 概念结构设计 B: 物理结构设计 C: 逻辑结构设计 D: 需求分析设计 答案: B 【7】执行语句“GREATEST(10,9,128,1)”结果为()。 A: 9

B: 10 C: 128 D: 1 答案: C 【8】在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则称这个属性为 A: 数据项 B: 候选码 C: 主键 D: 主键值 答案: C 【9】数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。这种功能称为()。 A: 数据控制功能 B: 数据操纵功能 C: 数据管理功能 D: 数据定义功能 答案: B 【10】1999年10月1日在mysql中表示方法错误的是: A: "1999-10-01" B: "1999%10%01" C: "1999\10\01" D: "1999/10/01" 答案: D 【11】两个表中的行按照给定的条件进行拼接而形成新表的运算为 A: 连接 B: 投影 C: 集合 D: 选择 答案: A 【12】向表中插入一个行新的纪录的命令为 A: replace into B: insert into C: replace from D: insert from 答案: B 【13】\n在MySQL中表示 A: " B: 退格符 C: 回车符

相关文档
最新文档