数据库二级题目
选择
数据库技术的基本概念与方法:
E-R图提供了表示信息世界中实体,属性和联系的方法
数据库系统的核心是数据库管理系统
E-R图是数据库设计的工具之一,它一般适用于建立数据库的概念模型
将E-R图转换到关系模式时,实体与联系都可以表示成关系
在关系数据库设计中,设计关系模式属于数据库设计的逻辑设计阶段
从E-R模型向关系模型转换,一个M:Ndex联系转换成一个关系模式时,该关系模式的键是M端实体键与N端实体键组合
数据库和表:
VAR类型不是MySQL中常用的数据类型
表数据的基本操作:
CREATE语句不是表数据的基本操作语句
数据库的查询:
在MySQL中,通常使用SELECT语句来进行数据的检索,输出操作
在SELECT语句中,可以使用GROUP BY字句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,即实现对每个组的聚集计算。
填空
数据库技术的基本概念与方法:
数据库系统的三级模式结构是指数据库系统是由模式,外模式和内模式三级构成
数据库系统的运行与应用结构有客户/服务器结构(C/S结构)和浏览器/服务器结构(B/S结构)两种
在数据库的三级模式体系结构中,外模式与模式之间的映射实现了数据库的逻辑独立性
用二维表结构表示实体以及实体间联系的数据模型称为关系数据模型
数据库设计包括概念设计,逻辑设计和物理设计
在E-R图中,矩形表示实体
MySQL概述:
MySQL数据库所支持的SQL语言主要包含数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)和MySQL扩展增加的语言要素几个部分
在MySQL的安装过程中,若选用“启用TCP/IP网络”,则MySQL会默认选用的端口号是3306
MySQL安装成功后,在系统中回默认建立一个root用户
MySQL安装包含典型安装,定制安装和完全安装三种安装类型
数据库和表:
在MySQL,通常使用NULL值来表示一个列值没有值或缺值的情形
在CREATE TABLE语句中,通常使用PRIMARY KEY关键字来指定主键
表数据的基本操作:
在MySQL中,可以使用INSERT或REPLACE语句,向数据库中一个已有的表插入一行或多行元组
数据
在MySQL中,可以使用DELETE语句或TRANCANTE语句删除表中的一行或多行数据
在MySQL中,可以使用UPDATE语句来修改,更新一个表或多个表中的数据
数据库的查询:
SELECT语句的执行过程是从数据库中选取匹配的特定行和列,并把这些数据组织成一个结果集,然后以一张临时表的形式返回
当使用SELECT语句返回的结果集中行数很多时,为了便于用户对结果数据的浏览和操作,可以使用LIMIT子句来限制被SELECT语句返回的行数。
索引:
创建普通索引时,通常使用的关键字是INDEX或KEY
创建唯一性索引时,通常使用的关键字是UNIQUE
视图:
在MySQL中,可使用CREATE VIEW语句创建视图
在MySQL中,可使用DROP VIEW语句删除视图
数年据完整性约束与表维护语句:
MySQL支持关系模型中实体完整性,参照完整性和用户定义的完整性三种不同的完整性约束
触发器:
在实际使用中,MySQL所支持的触发器有INSERT触发器,DELETE触发器和UPDATE触发器三种
访问控制与安全管理:
在MySQL中,可以使用CREATE语句来为指定数据库添加用户。
在MySQL中,可以使用revoke语句来实现权限的撤销。
简答
数据库技术的基本概念与方法:
简述什么是数据库管理系统,它的功能有哪些?
数据库管理系统是一种操作和管理数据库的大型软件,是用于建立,使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。它的主要功能有数据定义,数据操作,数据库的运行及管理,数据组织,存储及管理,数据库的保护及维护,通信功能等
简述什么是数据库系统?
数据库,数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台,软件平台与数据库有关的人员(如DBA,程序设计者等)一起,就构成了一个完整的数据库系统。
什么是模式,外模式和内模式?
模式:称为逻辑模式,是数据库的主题,是数据的全局结构和特征描述。
外模式:称为子模式和用户模式,是数据库看得见的局部数据的逻辑结构和特征的描述,是数据库的用户视图,是与某种应用相关的逻辑表示。
内模式:称为存储模式,定义了数据库中的全体物理结构,有定义数据的存储方法。
简述C/S结构和B/S结构的区别
CS是建立在局域网的基础上,BS是建立在广域网的基础上,BS容易维护,只需要升级服务端,CS升级比较困难,需要所有用户客户端都要升级
简述关系规范化的过程
对于存在数据冗余,插入异常,删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程
MySQL概述:
列举MySQL的系统特性
良好的可移植性,支持多操作平台,支持多线程,支持多种编程语言,支持大型数据库
简述MySQL的安装与配置过程
把MySQL文件压缩包解压后,用管理员模式运行dos界面,进入到MySQL解压的文件内bin层,输入mysqld-install命令
列举两个常用的MySQL客户端管理工具
MySQL命令行客户端,MySQL图形化管理工具phpAdmin
请解释SQL是何种类型的语言?
SQL是结构化查询语言(Structured Q-ery Language)的英文缩写,它是一种专门用来与数据库通信的语言
数据库和表:
分别解释AUTO_INCREMENT,默认值和NULL值的用途
AUTO_INCREMENT:为列设置自增属性,只有整型列才能设置;
默认值:在向表插入数据时,如果没有明确给出某个表列所对应的值,则此时DBMS允许为此表列指定的一个值;
NULL值:默认设置,不是not null就是null。
使用MySQL命令行客户端在MySQL中创建一个名为db_test的数据库
CREATE DATABASE db_test;
使用MySQL命令行客户端在数据库db_test中,创建一个网络留言版系统中用于描述网络留言内容的数据表content,该表的结构如下:
(注:诸多练习将基于这里创建的数据库db_test和表content)
USE db_test:
Database changed CREATE TABLE content
(content-id INT NOT NULL AUTO-INREMENT PRIMARY KEY,
subject VARCHAR(200);
words VARCHAR(1000);
username VARCHAR(50);
face VARCHAR(50);
email VARCHAR(50);
createtime DATETIME);
表数据的基本操作:
简述INSERT语句与REPLACE语句的区别
insert: 插入一条新的数据, 假如主键相同的话会报错
replace: 要插入的数据中索引值不同于表中任意一条数据的索引值,就增加一条新的数据,等同于
insert,否则,替换原来的数据,等同于先delete再insert
简述DELETE语句与TRUNCATE语句的区别
DELETE语句和TRUNCATE语句,都是删除数据表中的数据,但是它们对数据库的影响是很不一样的。一般来讲DELETE用于日常数据表的删除操作,TRUNCATE则用于对数据库整体性的维护性操作。
TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:删除内容、释放空间但不删除定义。 删除定义:用DESCRIBE TABLE语句可以查出来的那些内容,包括列名和每列的存储格式。
DELETE TABLE:删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间
通俗点说:
truncate删除的更彻底,所有的日志记录都会没有,并且是一把全清,不会有where条件。
有个比较大的区别就是truncate后自增长的ID列也会归零,以后插入记录ID从1开始。
但是delete后你再插入记录,ID会从上次最大的数字开始。
delete 可以配合where条件。
使用INSERT语句向数据库db_test的表content中插入一行描述了下列留言信息的数据:留言ID号由系统自动生成;留言标题为“MySQL问题请教”;留言内容为“MySQL中对表数据的基本操作有哪些?”;
留言人姓名为“MySQL初学者”;脸谱图标文件名为“face.jpg”;电子邮件为“tom@gmail.com”;留言创建日期和时间为系统当前时间。
USE db_test;
Database changed INSERT INTO content(content_id,subject,words,username,face,email,createtime);
VALUES(NULL,'MySQL问题请教','MySQL中对表数据的基本操作有哪些?'
'MySQL初学者','face.jpg','tom@gmail.com',now());
使用UPDATE语句将数据库db_test的表content中留言人姓名为"MySQL初学者"的留言内容修改为"如何使用INSERT语句?"
USE db_test;
Database changed UPDATE content
SET words='如何使用INSERT语句?'
WHERE username='MySQL初学者';
使用DELETE语句将数据库db_test的表content中留言人姓名为"MySQL初学者"的留言信息删除。
USE db_test;
Database changed DELETE FROM content
WHERE username='MySQL初学者';
数据库的查询:
什么是子查询?
子查询:一个查询语句嵌套在另一个查询语句内部的查询。
请简述UNION语句的作用。
把所有查询的结果合并到一起,然后去掉相同的记录。
使用SELECT语句将数据库db_test的表content中留言人姓名为"MySQL初学者"的所有留言信息检索出来。
USE db_test;
Database changed
SELECT * FROM content WHERE username='MySQL初学者';
索引:
简述索引的概念及其作用
索引是对数据库中一列或多列的值进行排序的一种结构。使用索引可提高数据库中特定数据的查询速度。
列举索引的几种分类
普通索引,唯一索引,主键索引,全文索引,聚类索引,空间索引,单个索引,复合索引
简述在MySQL中创建,查看和测除索引的SQL语句
create index indexname on tablename;
show index from tablename;
drop index indexname on tablename;
简述索引的弊端
索引会增加表单的更新时间,而且索引会占用额外的物理空间,降低运行速度
用CREATE INDEX语句在数据库db_test的表content中,根据留言标题列的前三个字符采用默认的索引类创建一个升序索引index_subject。
USE db_test;
CREATE INDEX index_subject ON content(subject(3)ASC);
视图:
解释视图与表的区别
视图由表产生,是虚拟的表,表可以存储数据,视图不能储存数据
使用视图的益处
1.可以定制用户数据,聚集特定的数据
2.可以简化数据的操作
3.基表中的数据就有了一定的安全性
4.可以合并分离的数据,创建分区视图
在数据库db_test中创建视图content_view,要求该视图包含表content中所有留言人姓名为"MySQL初学者"的信息,并要求保证今后对该视图数据的修改都必须符合留言人姓名为”MySQL初学者“这个条件
USE db_test;
CREATE VIEW content_view AS SWERE username='MySQL初学者' WITH CHECK OPTION
数年据完整性约束与表维护语句:
什么是实体完整性?
实体完整性:规定表的每一行在表中是唯一的实体;参照完整性:指2个表的关键字和外关键字的数据应一致,保证了表之间的数据一致性,防止了数据丢失或无意义的数据在数据库中的扩散;用户定义的完整性:不同关系的数据库系统根据其应用环境的不同,往往需要一些特殊的约束条件。
MySQL是如何实现实体完整性约束的?
通过主键和外键的约束来实现
触发器:
USEdb_test;
CREATE TRIGGER content_delete_trigger AFTER DELETE ON content FOR EACH ROW SET@str=' old content deleted! ';
事件:
什么是事件?
事件就是需要在指定的时刻才被执行的某些特定任务,其中这些特定任务通常是一些确定的SQL语句
简述事件的作用
事件可根据需要在指定的时刻被事件调度器调用执行,并以此可取代原先只能由操作系统的计划任务来执行的工作。
事件与触发器的区别
事件与触发器相似,都是在某些事情发生的时候才被启动,因此事件也可称作临时触发器,其中事件基于特定时间周期触发来执行某些任务,而触发器是基于某个表所产生的事件触发的,它们的区别也在于此。
在数据库db_test中创建一个事件,用于每个月将表content中姓名为”MySQL留言者“的留言人所发的全部留言信息删除,该事件开始于下个月并且在2013年12月31日结束。
USE db_test;
DELIMITER$$ CREATE EVENT IF NOT EXISTS event_delete_content ON SCHEDULE EVERY | MONTH ENDS' 2013-12-31 '
DO
BEGIN
IF YEAR(CURDATE())<2013 THEN
DELETE FROM content
WHERE username=' MySQL初学者 ';
END IF;
END$$
存储过程与存储函数:
什么是存储过程?
存储过程是一组为了完成某特定功能的SQL语句集,其实质上就是一段存放在数据库中的代码,它可以由声明式的SQL语句(如CREATE,UPDATE和SELECT等语句)和过程式SQL语句(如IF-THEN-ELSE控制结构语句)组成。
举例使用存储过程的益处
可增强SQL语句的功能和灵活性,良好的封闭性;高性能;可减少网络流量;存储过程可作为一种安全机制来确保数据库的安全性和数据的完整性
简述游标在存储过程中的作用
游标是一个被SELECT语句检索出来的结果集。在存储了游标后,应用程序或用户就可以根据需要滚动或浏览其中的数据。
简述存储过程的与存储函数的区别
1.存储函数不能拥有输出参数,这是因为存储函数自身就是输出参数;而存储过程可以拥有输出参数。
2.可以直接对存储函数进行调用,且不需要使用CALL语句;而对存储过程的调用,需要使用CALL语句。
3.存储函数中必须包含一条RETURN语句,而这条特殊的SQL语句不允许包含于存储过程中。
在数据库db_test中创建一个存储过程,用于实现给定表content中一个留言人的姓名即可修改表content中该留言人的电子邮件地址为一个给定的值。
USE db_test;
DELIMITER$$
CREATE PROCEDURE sp_update email(IN User_name VARCHAR(50) , IN e_mail VARCHAR(50))
BEGIN
UPDATE content SET email=e_mail WHERE username=user_name;
END$$
访问控制与安全管理:
在MySQL中可以授予的权限有哪几组?
在MySQL中可以授予的权限有这样几组:列权限;表权限;数据库权限;用户权限
在MySQL的权限授予语句中,可用于指定权限级别的值有哪几类格式?
* :表当前数据库中的所有表
*. :表所有数据库中的所有表
db_name.* :表某个数据库中的所有表
db_name.tbl_name:表某个数据库中的某个表或视图,db_name指定数据库名,tbl_name指定表名或视图名。
tbl_name:表某个表或视图,tbl_name指定表名或视图名
db_name.routine_name:表某个数据库中的某个存储过程或函数,routine_name指定存储过程名或函数名。
假定当前系统中不存在用户wanming,请编写一段SQL语句,要求创建这个新用户,并为其设置对应的系统登录口令“123”,同时授予该用户在数据库db_test的表content上拥有SELECT和UPDATE的权限。
USE db_test;
GRANT SELEC ON db_test.content TO ' warnming ' @ ' localhost ' IDENTIFIED BY '123'
备份与恢复:
为什么MySQL中需要进行数据库的备份与恢复操作?
保证数据的完整性和可靠性
MySQL数据库备份与恢复的常用方法有哪些?
1.使用SQL语句备份和恢复表数据
2.使用MySQL客户端实用程序备份和恢复数据
使用直接复制方法实现数据库备份与恢复时,需要注意哪些事项?
1.两个服务器必须使用相同或兼容的MySQL版本
2.两个服务器必须硬件结构相同或相似,除非要复制的表使用MyISAM存储格式,这是因为这种表可以为在不同的硬件体系中共享数据提供了保证。
二进制日志文件的用途是什么?
由于二进制Et志包含了数据备份后进行的所有更新,因此二进制日志的主要目的就是在数据恢复时能够最大可能地更新数据库。
请使用SELECT INTO ... OUTFILE语句,备份数据库db_test中表content的全部数据到C盘的BACKUP目录下一个名为backupcontent.txt的文件中,要求字段值如果是字符则用双引号标注,字段值之间用逗号隔开,每行以问号为结束标志。
USE db_test;
SELECT*FROM content INTO OUTFILE'C:/BACKUP/backupcontent.txt'
FIELDS TERMINATED BY','
OPTIONALLY ENCLOSED BY' " '
LINES TERMINATED BY' ? ' ;
PHP是什么类型的语言?
是英文超文本预处理语言Hypertext Preprocessor的缩写,PHP是一种HTML内嵌式的语言,是一种在服务器执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP的另一个含义是:菲律宾比索的标准符号
解释嵌入在HTML文档中的PHP脚本用什么标记符进行标记?
使用标签“ < ?php “ 和 ” ? > ”
简述使用PHP进行MySQL数据库编程的基本步骤
1.首先建立与MySQL数据库服务器的连接
2.然后选择要对其进行操作的数据库
3.再执行相应的数据库操作,包括对数据的添加,删除,修改和查询等
4.最后关闭与MySQL数据库服务器的连接
请编写一段PHP程序,要求可通过该程序实现向数据库db_test的表content中,插入一行描述了下列留言信息的数据:留言ID号由系统自动生成;留言标题为“MySQL问题请教”;留言内容为:“MySQL中对表数据的基础操作有哪些?”;留言人姓名为“MySQL初学者”;脸谱图标文件名为“face.jpg”;电子邮件为“tom@gmail.com”;留言创建日期和时间为系统当前时间。
开发实例:
使用PHP语言和MySQL数据库编写一个论坛留言板系统
1.html表单,提交数据至c.php
2。c.php连接数据库,将数据存到mysql,同时读取数据,输出至html页面
使用PHP语言和MySQL数据库编写一个电子公告系统
使用PHP语言和MySQL数据库编写一个博客管理系统
使用PHP语言和MySQL数据库编写一个用户登陆系统