软件测试-数据库零散知识记录集合

数据库 特殊字使用案例

distinct

1.如何只显示重复数据
select * fromtable group by id having count(*)>1

2.怎样创建一个索引,索引使用的原则,有什么优缺点

create index 索引名 on 表名(列名)

原则:

建议索引列建立not null约束

经常与其他表进行连接的表,在连接列上建立索引

优缺点:

创建索引能大大加快检索速度,加强表与表的连接,但是创建索引很占用空间

3.关系型数据库的关系操作有哪些?

选择(查询某些行)、投影(查询某些列)、链接(把多张表连接获取数据)、增加、删除、修改

4.oracle数据库中如何显示表的结构

新建命令窗口,输入desc 表名

5.数据库的三大范式是什么?

1)第一范式:原子件,要求每一列的值不能再拆分了

2)第二范式:一张表只描述一个实体(若列中有冗余数据,则不满足)

3)第三范式:所有列与主键直接相关

6.事务的特性(ACID)是指什么?

1)原子性(Atomic):事务中的各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败

2)一致性(Consistent):事务结束后系统状态是一样的

3)隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态

4)持久性(Durable):事务完成后,即使发生灾难性的故障,通过日志和同步备份可以在故障发生后重建数据

7.MySQL数据库与Oracle数据库有什么区别

1)应用方面:MySQL是中小型应用的数据库,一般用于个人项目或中小型网站及论坛。Oracle属于大型数据库,一般在具有相当规模的企业应用。

2)自动增长的数据类型方面:MySQL有自动增长的数据类型。Oracle没有自动增长的数据类型,需要建立一个自增序列

3)group by用法:MySQL中group by在select语句中可以随意使用,但是在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的或者是group by子句中的列,否则报错

4)引号方面:MySQL中用双引号包起字符串,Oracle中只可以用单引号包起字符串

8.事务的隔离级别
读未提交(Read uncommitted),一个事务可以读取另一个未提交事务的数据,最低级别,任何情况都无法保证。读已提交(Read committed),一个事务要等另一个事务提交后才能读取数据,可避免脏读的发生。可重复读(Repeatable read),就是在开始读取数据(事务开启)时,不再允许修改操作,可避免脏读、不可重复读的发生。串行(Serializable),是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。Mysql的默认隔离级别是Repeatable read。

9.数据表类型有哪些答:MyIASM、InnoDB、HEAP、ISAM、MERGE、DBD以及Gemeni(一般只知道前两者即可)

10.innodb引擎的4大特性答:插入缓冲(insert buffer);二次写(double write);自适应哈希索引(ahi);预读(read ahead)

11.InnoDB引擎的行锁是通过加在什么上实现的?答:基于索引;
Mysql中的myisam与innodb的区别,至少五点InooDB支持事务,而MyISAM不支持事务;InnoDB支持行级锁,而MyISAM支持表级锁;InnoDB支持MVCC,而MyISAM不支持;InnoDB支持外键,而MyISAM不支持;InnoDB不支持全文索引,而MyISAM支持;InnoDB不能通过直接拷贝表文件的方法拷贝表到另外一台机器, myisam 支持;InnoDB表支持多种行格式, myisam 不支持;InnoDB是索引组织表, myisam 是堆表;

12.myisam与innodb select count(*)哪个更快,为什么答:myisam更快,因为myisam内部维护了一个计数器,可以直接调取。

13.关键字使用说几个除了增删改查之外常用的关键字答:distinct、limit、offset、order by、union、union all、between、group by;

14.union、union all的区别对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录;对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回;从效率上说,UNION ALL 要比UNION快很多

15.varchar(100)和varchar(200)的区别答:varchar(100)最多存放100个字符,varchar(200)最多存放200个字符,varchar(100)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)

16.varchar(20)和int(20)中的20含义一样吗答:不一样,前者表示最多存放20个字符,后者表示最多显示20个字符,但是存储空间还是占4字节存储,存储范围不变;

17.索引的作用?和它的优点缺点是什么?答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

18.使用like ‘a%’ 、like’%a’、like’%a%'查询时是否会使用索引答:'a%'会,其他两个不会;

你可能感兴趣的:(数据库)