mysql试题

net start mysql
found_rows函数 返回select的总行数
哪种操作能够实现实体完整性 设置外键
数据模型三要素:数据结构、数据操作、完整性约束,哪项不属于数据模型 网状模型(层次、网状、关系、面向对象模型)

触发器主要用于监视某个表的insert、update以及delete等更新操作
start transaction(不是begin ~)

sql语言是非过程化语言
某事物”有什么性质。
“我”让“某物”干什么事情。
这就是非过程化的。
过程化的是“让某物怎么样去干事情”

正则表达式中用*匹配任意一个字符,不是_
sql中是%:匹配一个或多个字符;
_:匹配任意单个字符;
escape:定义转义字符。
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围,不同的数据库对 边界的处理方式是有差异的。(MySql between 是包含两边的边界值,而not between 不含边界)
eg: id between 3 and 7 等价与 id >=3 and id<=7
eg:id not between 3 and 7 等价与 id <3 or id>7

存储过程是一组预先定义并编译的sql语句
字符串长度函数 lengh()

使用SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是( )
在ORDER BY子句中使用RAND()函数,并用LIMIT子句定义行数

视图是一种常用的数据对象,它是提供____和____数据的另一种途径,可以简化数据库操作
A、查看,存放

mysql比较运算符没有 == ,是=

mysql逻辑运算符(没有&& ||)
运算符号 作用
NOT 或 ! 逻辑非
AND 逻辑与
OR 逻辑或
XOR 逻辑异或

位运算符
运算符号 作用
& 按位与
| 按位或
^ 按位异或
! 取反
<< 左移
>> 右移

优先级
not/and/or

union连接结果集:
句式:SELECT field1,field2... FROM table1 UNION SELECT field3,field4... FROM table2;
注意:
前后所选字段数目需相同,否则报错;
所选出的内容显示时,会以前面的字段名称命名(允许前后sql字段不一样,即任何查询语句都可以用union连接);
UNION ALL 表示将包括重的内容一起显示出来 ,UNION 或UNION DSTINCT表示去重显示。

行在表中的顺序无关紧要,任意两行的值不能相同;列在表中的顺序无关紧要,任意两列的值可以相同
游标只能用于存储过程和函数
Mysql中不允许有空表存在,即一张表不允许没有字段;字符型数据常量标志可以是单引号或双引号,不允许混用;

数据库名称中有$合法,有.和/不合法

GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。没有这些的sql是不对的

??
create table 表名(字段类型,字段名1 字段类型,字段名2.....)

select 9/3 3.0000

12.当所查询的表不在当前数据厍时,可用数据库.所有者名称.对象名称格式来指出表或视图对象
13.当某字段要使用AUTO_INCREMENT的属性时,除了该字段必须是INT类型外,该字
段还必须是关键字段或索引字段
14.在SELECT语句的FROM子句中最多可以指定256个表或视图
15.ODBC是一种答案开放式数据厍连接
insert触发器可以引用名为NEW的虚拟表,访问刚刚插入的行;
delete触发器可以引用名为OLD的虚拟表,访问刚刚删除的行;
select (NULl <=> NULL) is NULL 结果是0
select 'Abc'='abc' 结果为1
select '张三\n张四' 结果为'张三\n张四'

update语句可以有where和limit子句
trim函数只可以除去半角空格
null和NULL、Null一样
数据库和表名字都可以使用中文
结构化查询语言不仅仅是查询
'2008-12-5'和'20081205'都可以表示同一天
所有timestamp插入null时自动填充为当前日期和时间
group by结果集中每个组只能有一行数据
为了更好支持中文,mysql安装后就设置缺省字符集gb2312---错误

五、简答题
1.什么是数据厍镜像?它有什么用途?
答案:
数据厍镜像即根据DBA的要求,自动把整个数据厍或者其中的部分关键数据复制到另一个
磁盘上。每当主数据厍更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜
像数据与主数据的一致性。
数据厍镜像的用途有:
一是用于数据厍恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据厍的恢复,不需要关闭系统和重装数据厍副本。
二是提高数据厍的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
2.为什么事务非正常结束时会影响数据厍数据的正确性
答案:
事务执行的结果必须是使数据厍从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据厍所做的修改有一部分己写入物理数据库,这时数据厍就处于一种不正确的状态,或者说是不一致的状态。
3.什么是物理设计:
答案:
对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。物理结构,主要指数据库在物理设备上的存储结构和存取方法。
4.什么是日志文件?为什么要设立日志文件?
答案:
(1)日志文件是用来记录事务对数据厍的更新操作的文件。
(2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复
5.在数据厍系统生存期中,生存期的总开销可分为几项:
答案:规划开销、设计开销、实现与测试开销、操作开销、维护开销
6.数据厍中为什么要有恢复子系统?它的功能是什么?
答案:
因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统恢复子系统的功能是:把数据厍从错误状态恢复到某一己知的正确状态(亦称为一致状态或完整状态)。
7.数据厍运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据厍数据?
答案:答:数据厍系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;
(2)系统故障;
(3)介质故障;
(4)计算机病毒
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据厍数据。
8.登记日志文件时为什么必须先写日志文件,后写数据库?
答案:
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据厍修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
如果先写日志,但没有修改数据厍,在恢复时只不过是多执行一次UNDO操作,并不会影
响数据厍的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

9.数据厍转储的意义是什么?
答案:
数据转储是数据厍恢复中采用的基本技术。所谓转储即DBA定期地将数据厍复制到磁带或
另一个磁盘上保存起来的过程。当数据厍遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。
静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。
动态转储:指转储期间允许对数据厍进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据厍的一致版本。
为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(logfile).这样,后援副本加上日志文件就能得到数据厍某一时刻的正确状态。
转储还可以分为海量转储和增量转储两种方式。
海量转储是指每次转储全部数据厍。增量转储则指每次只转储上一次转储后更新过的数据。
从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据厍很大,事务处理又十分频繁,则增量转储方式更实用更有效。
10.试述事务的概念及事务的四个特性。
答案:
事务是用户定义的一个数据厍操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有四个特性:原子性、一致性、隔离性)和持续性。
11,数据厍恢复的基本技术有哪些?
答案:
数据转储和登录日志文件是数据厍恢复的基本技术。
当系统运行过程中发生故障,利用转储的数据厍后备副本和日志文件就可以将数据厍恢复到故障前的某个一致性状态。
12.数据厍设计中的规划阶段的主要任务:
答案:是进行建立数据厍的必要性及可行性分析,确定数据厍系统在组织中和信息系统中的地位,以及各个数据厍之间的联系

猜你喜欢

转载自www.cnblogs.com/ccdat/p/11261852.html