数据库面试题

1.在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是: 模式

解析:

理论链接:三级模式结构和二级映像
数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。
①外模式,也称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,一个数据库可以有多个外模式。DBMS提供子模式描述语言(子模式DDL)来严格定义子模式。

②模式,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。DBMS提供模式描述语言(模式DDL)来严格定义模式。
③内模式,也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。DBMS提供内模式描述语言(内模式DDL)来严格定义内模式。
数据库系统的二级映像包括外模式/模式映像、模式/内模式映像,是DBMS在三级模式之间定义的,以保证数据库系统中的数据具有较高的逻辑独立性和物理独立性。

2.关于mysql_db_query与mysql_query说法错误的是 ABC

A mysql_db_query与mysql_query在执行sql语句后的返回值是一样的,成功返回资源号,失败返回FALSE

B 不能用mysql_query函数临时在另一个数据库上执行sql语句,而mysql_db_query可以

C mysql_query在功能上等于mysql_select_db() +mysql_db_query()

Dmysql_db_query不会切换回先前连接到的数据库

解析:

A mysql_db_query 成功返回资源号,失败返回FALSE;mysql_query成功返回TRUE,失败返回FALSE;

B mysql_db_query() 选择一个数据库并在其上执行查询。如果没有提供可选的连接标识,本函数会去找一个到 MySQL 服务器的已打开的连接,如果找不到已打开连接则会尝试无参数调用 mysql_connect() 来建立一个。注意此函数不会切换回先前连接到的数据库。换句话说,不能用此函数临时在另一个数据库上执行 sql 查询,只能手工切换回来。强烈建议用户在 sql 查询中使用 database.table 语法来替代此函数。

C 由mysql_select_db()和mysql_query() 来取代mysql_db_query

3.数据库系统的核心是:数据库管理系统数据库系统可分为三种类型:层次、网状和关系,要保证数据库的逻辑数据独立性,需要修改的是:模式与外模式之间的映象,常见的数据模型:概念模型,逻辑模型,物理模型

4.数据库设计各阶段的任务

一个完整的数据库设计一般分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库运行与维护六个阶段

需求分析阶段:分析用户需求,编写系统分析报告

概念结构设计:设计E-R模型

逻辑结构设计:将E-R图转换为表,实现E-R模型到关系模型的转换

物理结构设计:为设计的数据库选择合适的存储结构和存储路径

数据库实施:在计算机上建立实际的数据库结构,对其进行编码,测试和试运行

数据库运行和维护:维护数据库的安全性和完整性,检测并改善数据库性能,重新组织和构造数据库

给数据库赋予登录权限的语句是grant usage on ... to

5.select A,B from Table1 where A between 60 and 100 order by B下面哪些优化sql性能(C D)。

A 字段A 建立hash索引,字段B btree索引

B 字段A 建立hash索引,字段B不建立索引

C 字段A 建立btree索引,字段B不建立索引

D字段A 不建立 索引,字段B建立btree索引

解析:

Hash 索引仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询。 btree用于<、>和between的范围查询,并且支持排序。,A、B都可以建立btree索引

6.数据库常见操作命令:

  • optimize table TabName; 优化表
  • repaire table TabName; 修复表
  • analyze table TabName; 分析表
  • flush table TabName; 刷新表  

数据库查询步骤命令:

  • distribution 分析
  • optimization 优化
  • parsing and transiation 解析和翻译

7.封锁

排它锁又称死锁(X锁):若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。

共享锁又称读锁(S锁),若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

8.数据库系统的特点是

数据共享、数据独立、减少数据冗余、避免数据不一致和加强了数据保护

9.基础概念

①关系数据库中用二维表来表示实体之间的联系

②数据库系统阶段,数据具有高度的物理独立性和一定程度的逻辑独立性

③access数据库的类型是关系型数据库

④结构化查询语言包含6个部分:
一:数据查询语言(DQL:Data Query Language)
二:数据操作语言(DML:Data Manipulation Language)
三:事务处理语言(TPL)
四:数据控制语言(DCL)
五:数据定义语言(DDL)
六:指针控制语言(CCL)

⑤MySql中的权限分为五个级别:Global Level、Database Level、Table Level、Column Level、Routine Level

 ⑥SQL Server里的不同数据库

1、Master数据库
  Master数据库记录了Sqlserver所有的服务器级系统信息,所有的注册帐户和密码,以及所有的系统设置信息,还记录了所有用户定义数据库的存储位置和初始化信息。
  2、Tempdb数据库
  Tempdb记录了所有的临时表、临时数据和临时创建的存储过程。Tempdb数据库是一个全局资源,没有专门的权限限制,允许所有可以连上Sqlserver服务器的用户使用。
  在Tempdb数据库存放的所有数据信息都是临时的。每当连接断开时,所有的临时表和临时存储过程都将自动丢弃。每次系统启动时Sqlserver都会根据Model数据库重新创建Tempdb数据库。
  3、Model数据库
  Model数据库是用户建立新数据库的模板,它包含了将复制到每个用户数据库中去的系统表。每当创建数据库的语句create database执行时,服务器总是通过复制model数据库来建立新数据库的前面部分,新数据库的后面部分被初始化成空白的数据页,以供用户存放数据。
  4、Msdb数据库
  Msdb数据库主要被sqlserver agent用来进行复制、作业调度以及管理报警等活动。该数据库常被用来通过调度任务排除故障。

⑦删除表,不同的关键字的作用

CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。

RESTRICT表示表的删除是有条件限制的,要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则表不能被删除

⑧SQL Server中每一条select、insert、update、delete语句都是隐形事务的一部分,显性事务用BEGIN TRANSACTION明确指定事务。

10.关于MySql的权限级别,下列描述正确的是( B C D)

A MySql中的权限分为四个级别:Global Level、Database Level、Table Level、Routine Level

B Global Level所有权限信息都保存在mysql.user 表中,它的所有权限都是针对整个mysqld 的,对所有的数据库下的所有表及所有字段都有效

C Database Level其作用域即为所指定整个数据库中的所有对象

D Routine Level 的权限主要只有EXECUTE 和ALTER ROUTINE 两种,主要针对的对象是procedure 和function 这两种对象

11.查找 student表中所有电话号码(列名:telephone)的第一位为8或6,第三位为0的电话号码(C)

A SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]%0*’

B SELECT telephone FROM student WHERE telephone LIKE ‘(8,6)*0%’

C SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]_0%’

D SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]_0*’

解析

"_"匹配任何单个字符

"%"匹配任意数目字符(包括零个字符)

"*"匹配0个或多个在它前面的字符

"[]"匹配在方括号中的任意一个字符

12.sql执行顺序:

from->on->join->where->group by->having->select->distinct->order by->limit

13.修改表的操作

修改表:ALTER TABLE 表名 修改选项 。选项集合:

  • { ADD COLUMN <列名> <类型> -- 增加列

  •  | CHANGE [COLUMN] <旧列名> <新列名> <新列类型> -- 修改列名或类型

  •  | ALTER [COLUMN] <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值

  • | MODIFY [COLUMN] <列名> <类型> -- 修改列类型

  • | DROP [COLUMN] <列名> -- 删除列

  • | RENAME TO <新表名> -- 修改表名

  • | CHARACTER SET <字符集名> -- 修改字符集

  • | COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cqq00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值