文档库 最新最全的文档下载
当前位置:文档库 › mysql面试题

mysql面试题

mysql面试题
mysql面试题

1.产生一个结果集,如果一个员工工资小于等于2000,就返回消息“NO”,如果大于等于

4000,就返回消息“YES”。如果在这两者之间,就返回“OK”.结果集如下:

EMP表原始数据

Name sal

------------------------------

Wsp 2300

Hjj 6700

king 6000

ford 1800

james 1200

按要求,显示效果图

Name sal status

------------------------------------------

Wsp 2300 ok

Hjj 6700 yes

king 6000 yes

ford 1800 no

james 1200 no

select Name, sal,

case WHEN sal <= 2000 THEN "NO"

WHEN sal >=4000 THEN "YES"

ELSE "OK"

end

as status

FROM EMP;

2.从表中随机返回5 条记录!可以修改下面的语句,要求下次执行时产生不同的结果集

Select ename,job from emp

Select ename, job from emp order by rand() limit 5;

3.如:emp表

Deptno cnt

------------------------------

10 3

20 5

30 6

效果图:

Deptno_10 Deptno_20 Deptno_30

---------------------------------------------------

3 5 6

SELECT

SUM(CASE WHEN Deptno = 10 THEN 3 ELSE 0 END) as Deptno_10,

SUM(CASE WHEN Deptno = 20 THEN 5 ELSE 0 END) as Deptno_20,

SUM(CASE WHEN Deptno = 30 THEN 6 ELSE 0 END) as Deptno_30 FROM emp;

4.如表emp原台数据如

empno job name

-------------------------------------------------------------

1 analyst scott

2 analyst ford

3 cleark smith

4 cleark miller

5 cleark james

6 manager jones

7 manager clark

8 manager blank

效果图:

Cleark manager analyst

----------------------------------------------

Smith jones scott

Miller clark ford

James blank

SELECT

MAX(IF(job='cleark',name,'')) AS cleark,

MAX(IF(job='manager',name,'')) AS manager,

MAX(IF(job='analyst',name,'')) AS analyst

FROM emp

GROUP BY name

ORDER BY name DESC

mysql面试大全精心整理

Mysl面试大全 1.Mysql中有哪几种锁? 1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3. 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 2.Mysql中有哪些不同的表格? 共有5种类型的表格: MyISAM Heap Merge INNODB ISAM 3.简述在MySQL数据库中MyISAM和InnoDB的区别 MyISAM: 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储表的总行数; 一个MYISAM表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。 InnoDb: 支持ACID的事务,支持事务的四种隔离级别; 支持行级锁及外键约束:因此可以支持写并发; 不存储总行数; 一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为2G),受操作系统文件大小的限制; 主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持B+树结构,文件的大调整。 4.Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别? SQL标准定义的四个隔离级别为: read uncommited :读到未提交数据 read committed:脏读,不可重复读 repeatable read:可重读 serializable :串行事物

MySQL数据库考试试题及答案

专业:移动通信科目:MySQL数据库 一、单项选择题 1.以下聚合函数求数据总和的是( ) A.MAX B.SUM C.COUNT D.AVG 答案:B 2.可以用( )来声明游标 A.CREATE CURSOR B.ALTER CURSOR C.SET CURSOR D.DECLARE CURSOR 答案:D 3.SELECT语句的完整语法较复杂,但至少包括的部分是( ) A.仅SELECT B.SELECT,FROM C.SELECT,GROUP D.SELECT,INTO 答案:B 4.SQL语句中的条件用以下哪一项来表达( ) A.THEN B.WHILE C.WHERE D.IF 答案:C 5.使用CREATE TABLE语句的( )子句,在创建基本表时可以启用全文本搜索A.FULLTEXT B.ENGINE C.FROM D.WHRER 答案:A 6.以下能够删除一列的是( ) A.alter table emp remove addcolumn B.alter table emp drop column addcolumn C.alter table emp delete column addcolumn D.alter table emp delete addcolumn 答案:B 7.若要撤销数据库中已经存在的表S,可用()。 A.DELETE TABLE S B.DELETE S C.DROP S D.DROP TABLE S 答案:D

8.查找表结构用以下哪一项( ) A.FIND B.SELETE C.ALTER D.DESC 答案:D 9.要得到最后一句SELECT查询到的总行数,可以使用的函数是( ) A.FOUND_ROWS B.LAST_ROWS C.ROW_COUNT D.LAST_INSERT_ID 答案:A 10.在视图上不能完成的操作是( ) A.查询 B.在视图上定义新的视图 C.更新视图 D.在视图上定义新的表 答案:D 11.UNIQUE惟一索引的作用是( ) A.保证各行在该索引上的值都不得重复 B.保证各行在该索引上的值不得为NULL C.保证参加惟一索引的各列,不得再参加其他的索引 D.保证惟一索引不能被删除 答案:A 12.用于将事务处理写到数据库的命令是( ) A.insert B.rollback C.commit D.savepoint 答案:C 13.查找条件为:姓名不是NULL的记录( ) A.WHERE NAME ! NULL B.WHERE NAME NOT NULL C.WHERE NAME IS NOT NULL D.WHERE NAME!=NULL 答案:C 14.主键的建立有( )种方法 A.一 B.四 C.二 D.三 答案:D 15.在视图上不能完成的操作是( ) A.更新视图数据

mysql数据库面试题

公司招聘MySQL DBA面试心得 2013-11-01 10:06:51 我来说两句作者:黄杉 收藏我要投稿公司招聘MySQL DBA面试心得 1 2年MySQL DBA经验 其中许多有水分,一看到简历自我介绍,说公司项目的时候,会写上linux 系统维护,mssql server项目,或者oracle data gard项目,一般如果有这些的话,工作在3年到4年的话,他的2年MySQL DBA管理经验,是有很大的水分的。刚开始我跟领导说,这些不用去面试了,肯定mysql dba经验不足,领导说先面面看看,于是我就面了,结果很多人卡在基础知识这一环节之上,比如: (1)有的卡在复制原理之上 (2)有的卡在binlog的日志格式的种类和分别 (3)有的卡在innodb事务与日志的实现上。 (4)有的卡在innodb与myisam的索引实现方式的理解上面。 ......... 个人觉得如果有过真正的2年mysql专职dba经验,那么肯定会在mysql的基本原理上有所研究,因为很多问题都不得不让你去仔细研究各种细节,而自己研究过的细节肯定会记忆深刻,别人问起一定会说的头头是道,起码一些最基本的关键参数比如Seconds_Behind_Master为60这个值60的准确涵义,面试了10+的mysql dba,没有一个说的准确,有的说不知道忘记了,有的说是差了60秒,有的说是与主上执行时间延后了60秒。 2 对于简历中写有熟悉mysql高可用方案 我一般先问他现在管理的数据库架构是什么,如果他只说出了主从,而没有说任何ha的方案,那么我就可以判断出他没有实际的ha经验。不过这时候也不能就是断定他不懂mysql高可用,也许是没有实际机会去使用,那么我就要问mmm以及mha以及mm+keepalived等的原理实现方式以及它们之间的优势和不足了,一般这种情况下,能说出这个的基本没有。 3 对于简历中写有批量MySQL 数据库服务器的管理经验

mysql 面试题(简单)

数据库入门[mysql] 1、假设要按照分页(每页显示10条)的形式获取test表中的数据,在MySql数据库中,以下哪条语句是取第2页中的数据?(单选) (难度A) A、select * from test limit 10,10; B、select * from test limit 11,10; C、select * from test limit 10,20; D、select * from test limit 11,20; 2在Mysql数据库中,以下哪条语句用于统计test表中的记录总数?(难度A) A、select sum(*) from test; B、select max(*) from test; C、select avg(*) from test; D、select count(*) from test; E、select min(*) from test; 3、假设在D盘根目录下有一个名为db.sql的文件,以下哪些语句可以利用db.sql恢复数据库test(数据库名已经存在)中的表结构和数据?(难度A) A、在DOS提示符下输入以下命令 mysql -uroot -p1234 testd:/db.sql 4、下列SQL语句中,创建关系表的是?(难度A) A、ALTER B、CREATE C、UPDATE D、INSERT 5、以下那个不是DDL(数据定义语言)保留的关键字?(难度A) A、CREATE B、DELETE C、ALTER D、DROP 6、以下哪个sql语句表示在mysql中创建book表,并添加id字段和title字段?(难度A) A、create table book{ id varchar(32), title varchar(50) }; B、create table book( id varchar2(32), title varchar2(50) );

运维面试题(含答案)

运维工程师面试题 姓名: 答题时间: 1.新安装MYSQL后怎样提升MYSQL的安全级别? A.修改mysql默认端口 B.linux下可以通过iptables来限制访问mysql端口的IP地址 C.对所有用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库 中user表中指定用户的访问可访问IP地址) D.root特权账号的处理(建议给root账号设置强密码,并指定只允许本地登录) E.开启二进制查询日志和慢查询日志 F.mysql安装目录及数据存储目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限 G.删除无用mysql账号和删除无用的数据库(安装好的mysql默认会有个 test库,可将其删除) 2.MYSQL的主从原理,怎么配置文件? 整体上来说,复制有3个步骤: A.master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日 志事件,binary log events); B.slave将master的binary log events拷贝到它的中继日志(relay log);

C.slave重做中继日志中的事件,将改变反映它自己的数据。 3.mysql主从复制的优点 <1> 如果主服务器出现问题,可以快速切换到从服务器提供的服务; <2> 可以在从服务器上执行查询操作,降低主服务器的访问压力; <3> 可以在从服务器上执行备份,以避免备份期间影响主服务器的服务。 4.Mysql复制的基本原理过程 (1)Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; (2)Master接收到来自Slave的IO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端binary log文件的名称以及在Binary log中的位置; (3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog 文件(mysql-relay-lin.xxxxx)的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我” (4)Slave的SQL线程检测到Relay Log中新增加了内容后,会马上解析该Log 文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,所以两端的数据是完全一样的。

MySQL常见面试题

1. 什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找。 2. 索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引。 3. Hash索引和B+树所有有什么区别或者说优劣呢? 首先要知道Hash索引和B+树索引的底层实现原理: hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据。B+树底层实现是多路平衡查找树。对于每一次的查询都是从根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回表查询数据。 那么可以看出他们有以下的不同: ?hash索引进行等值查询更快(一般情况下),但是却无法进行范围查询。 因为在hash索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持一致,不能支持范围查询。而B+树的的所有节点皆遵循(左节点小于父节点,右节点大于父节点,多叉树也类似),天然支持范围。 ?hash索引不支持使用索引进行排序,原理同上。 ?hash索引不支持模糊查询以及多列索引的最左前缀匹配。原理也是因为hash 函数的不可预测。AAAA和AAAAB的索引没有相关性。 ?hash索引任何时候都避免不了回表查询数据,而B+树在符合某些条件(聚簇索引,覆盖索引等)的时候可以只通过索引完成查询。 ?hash索引虽然在等值查询上较快,但是不稳定。性能不可预测,当某个键值存在大量重复的时候,发生hash碰撞,此时效率可能极差。而B+树的查询效率比较稳定,对于所有的查询都是从根节点到叶子节点,且树的高度较低。 因此,在大多数情况下,直接选择B+树索引可以获得稳定且较好的查询速度。而不需要使用hash索引。 4.上面提到了B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据, 什么是聚簇索引? 在B+树的索引中,叶子节点可能存储了当前的key值,也可能存储了当前的key值以及整行的数据,这就是聚簇索引和非聚簇索引。在InnoDB中,只有主键索引是聚簇索引,如果没有主键,则挑选一个唯一键建立聚簇索引。 如果没有唯一键,则隐式的生成一个键来建立聚簇索引。 当查询使用聚簇索引时,在对应的叶子节点,可以获取到整行数据,因此不用再次进行回表查询。 5.非聚簇索引一定会回表查询吗? 不一定,这涉及到查询语句所要求的字段是否全部命中了索引,如果全部命中了索引,那么就不必再进行回表查询。

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

前言 作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,MySQL并不难,今天这份最全的MySQL总结,助你向大厂“开炮”,面试不再被MySQL难倒。 注意:关于MySQL的内容整理,包括了面试题、学习笔记、使用文档以及Xmind思维图几个部分,需要高清完整版的请转发+关注,然后私信回复“666”获得免费领取方式 01、MySQL 面试题集合总结 1.1 MySQL 面试题(基础部分): ?drop、truncate、delete区别 ?数据库三范式是什么? ?union和union all有什么不同? ?char、varchar2、varchar有什么区别? ?合并查询有哪些? ?SQL语句执行顺序 ?null的含义 ?MySQL、SqlServer、oracle写出字符存储、字符串转时间 ?update语句可以修改结果集中的数据吗? ?B树和B+树的区别 ?你建过索引吗? 建索引的原则 ?索引的类型, 如主键索引 ?查看SQL执行计划

?有十万条数据, 写SQL语句查询其中某字段较大值的几条数据 ?子查询与关联查询的区别 ?MySQL InnoDB、Mysaim的特点? ?乐观锁和悲观锁的区别?? ?行锁和表锁的区别? ?数据库隔离级别是什么?有什么作用? ?MySQL主备同步的基本原理。 ?如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署) ?SQL什么情况下不会使用索引(不包含,不等于,函数) ?一般在什么字段上建索引(过滤数据最多的字段) ?MySQL,B+索引实现,行锁实现,SQL优化 ?如何解决高并发减库存问题 ?数据库事务的几种粒度 1.2 MySQL 面试题(实战部分): ?数据库三范式,根据秒杀场景设计数据表 ?数据库的主从复制 ?死锁怎么解决 ?mysql并发情况下怎么解决(通过事务、隔离级别、锁) ?触发器的作用? ?什么是存储过程?用什么来调用? ?存储过程的优缺点?

mysql笔试题

面试笔试常考的mysql 数据库操作group by 分类:数据库2014-08-06 16:38 773人阅读评论(0) 收藏举报面试数据库mysql IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql 语句也是经常考察的一个重要知识点。 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性。 首先,给出一个studnet学生表: [sql]view plaincopyprint? 1.CREATE TABLE `student` ( 2. `id` int(11) NOT NULL AUTO_INCREMENT, 3. `name` varchar(30) DEFAULT NULL, 4. `sex` tinyint(1) DEFAULT'0', 5. `score` int(10) NOT NULL, 6. `dept` varchar(10) DEFAULT NULL, 7.PRIMARY KEY (`id`) 8.) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8

添加一些测试数据: [sql]view plaincopyprint? 1.mysql> select * from student where id<10; 2.+----+------+------+-------+---------+ 3.| id | name | sex | score | dept | 4.+----+------+------+-------+---------+ 5.| 1 | a | 1 | 90 | dev | 6.| 2 | b | 1 | 90 | dev | 7.| 3 | b | 0 | 88 | design | 8.| 4 | c | 0 | 60 | sales | 9.| 5 | c | 0 | 89 | sales | 10.| 6 | d | 1 | 100 | product | 11.+----+------+------+-------+---------+ 给出需求,写出sql: 给出各个部门最高学生的分数。

企业面试题|最常问的MySQL面试题集合

企业面试题|最常问的MySQL面试题集合(一) 除了基础题部分,小编收集整理的MySQL面试题还包括如下知识点或题型: MySQL高性能索引 SQL语句 MySQL查询优化 MySQL高扩展高可用 MySQL安全性 为了避免收藏不看,让大家更有耐心看下去,印象更深刻些,民工哥将分几次分别发布这些内容,欢迎持续关注公众号后续文章分享。 问题1:char、varchar的区别是什么? varchar是变长而char的长度是固定的。如果你的内容是固定大小的,你会得到更好的性能。 问题2: TRUNCATE和DELETE的区别是什么? DELETE命令从一个表中删除某一行,或多行,TRUNCATE命令永久地从表中删除每一行。 问题3:什么是触发器,MySQL中都有哪些触发器? 触发器是指一段代码,当触发某个事件时,自动执行这些代码。在MySQL数据库中有如下六种触发器: 1、Before Insert 2、After Insert 3、Before Update 4、After Update 5、Before Delete 6、After Delete

问题4:FLOAT和DOUBLE的区别是什么? FLOAT类型数据可以存储至多8位十进制数,并在内存中占4字节。 DOUBLE类型数据可以存储至多18位十进制数,并在内存中占8字节。 问题5:如何在MySQL种获取当前日期? SELECT CURRENT_DATE(); 问题6:如何查询第n高的工资? SELECT DISTINCT(salary) from employee ORDER BY salary DESC LIMIT n-1,1 问题7:请写出下面MySQL数据类型表达的意义(int(0)、char(16)、varchar(16)、datetime、text) 知识点分析 此题考察的是MySQL数据类型。MySQL数据类型属于MySQL数据库基础,由此延伸出的知识点还包括如下内容: MySQL基础操作 MySQL存储引擎 MySQL锁机制 MySQL事务处理、存储过程、触发器 数据类型考点: 1、整数类型,包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,分别 表示1字节、2字节、3字节、4字节、8字节整数。任何整数类型都可以加上UNSIGNED属性,表示数据是无符号的,即非负整数。 长度:整数类型可以被指定长度,例如:INT(11)表示长度为11的INT类型。 长度在大多数场景是没有意义的,它不会限制值的合法范围,只会影响显 示字符的个数,而且需要和UNSIGNED ZEROFILL属性配合使用才有意义。 例子,假定类型设定为INT(5),属性为UNSIGNED ZEROFILL,如果用户插入的数据为12的话,那么数据库实际存储数据为00012。 2、实数类型,包括FLOAT、DOUBLE、DECIMAL。 DECIMAL可以用于存储比BIGINT还大的整型,能存储精确的小数。

mysql sql语句大全_mysql sql语句面试题_mysql的常用sql语句推荐

mysql sql语句大全_mysql sql语句面试题_mysql的常用sql 语句推荐 今天我们向大家整理了一些【mysql的常用sql语句】系列文章,希望大家对【mysql的常用sql语句】技术点有更深的了解。 小编下面整理一下mysql sql语句大全_mysql sql语句面试题_mysql的常用sql语句的资料给大家作为参考。mysql sql 语句大全_mysql sql语句面试题_mysql的常用sql语句推荐[05-25] MySQL常用SQL语句的介绍[05-25] MySQL 存储过程执行动态SQL语句详解[05-23] MySql 常用操作的SQL语句的介绍[05-22] mysql语句插入多条数据的方法[05-21] 远程用户访问mysql服务sql语句的心得体会[05-21] MySQL 存储过程执行动态SQL语句的介绍[05-20] MySQL 复制表结构、内容到另一张表的SQL语句的介绍[05-20] mysql 查询今天、昨天、近7天、近30天、本月、上一月的SQL语句的介绍[05-20] mysql 获取一天、一周、一月时间的sql语句的方法[05-19] mysql把一个表某字段复制到另一张表的某个字段的SQL语句的方法[05-17] MySQL SQL 语句优化的介绍[05-10] mysql通过查看跟踪日志跟踪执行 的sql语句的方法[05-10] mysql语句运行时间的查看方法[05-10] mysql建表常用sql语句的介绍[05-10] MySQL字段

自增自减的SQL语句的推荐[05-04] SQL语句行列转换的两种方法case...when与pivot函数的介绍[05-04] SQL语句语法汇总的推荐[05-04] sql语句like的用法的介绍[05-04] MySQL查询数据库占用磁盘大小、单个库所有表的大小的sql语句[05-02] sql语句left_join、inner_join中的on与where 的区别介绍[05-02] MySql 获取某字段存在哪个表的sql语句的介绍[04-29] SQL语句Replace INTO与INSERT INTO 不同的介绍[04-29] 数据库字段分组显示数据的sql语句的介绍[04-29] MySQL批量删除指定前缀表的sql语句的推荐[04-29] MySQL优化sql语句查询常用30种方法的推荐[04-25] MySQL 查询当前正在运行的SQL语句[04-19] sql 语句的常用语法[04-19] PHP+Mysql常用SQL语句[04-05] 将数字标识转为汉字展示的sql语句[04-05] 数据表字段删除、添加的SQL语句[04-05] sql批量修改字段值的方法_sql 语句修改字段值[03-03] mysql 实现查看表结构的SQL语句[03-03] mysql 获取当前日期周一和周日的SQL语句[03-03] mysql 实现按年度、季度、月度、周、日查询的SQL语句[12-16] MySQL数据库操作实现的6条SQL语句[12-16] 将blob的char取出来并转成数字保存在其它字段的sql语句[12-16] mysql常用SQL语句小结[10-24] mySQL使用Explain检查测Sql语句执行效率[10-24] mysql查询当天,昨天,近7天,近30天,本月,上一月数据的SQL语句[10-18]

SQL优化面试专题及答案

1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ? (1)如果表的类型是MyISAM,那么是18 因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失 (2)如果表的类型是InnoDB,那么是15 InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失 2、Mysql的技术特点是什么? Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。 3、Heap表是什么? HEAP表存在于内存中,用于临时高速存储。 BLOB或TEXT字段是不允许的 只能使用比较运算符=,<,>,=>,= < HEAP表不支持AUTO_INCREMENT 索引不可为NULL 4、Mysql服务器默认端口是什么? Mysql服务器的默认端口是3306。 5、与Oracle相比,Mysql有什么优势? Mysql是开源软件,随时可用,无需付费。 Mysql是便携式的 带有命令提示符的GUI。 使用Mysql查询浏览器支持管理 6、如何区分FLOAT和DOUBLE? 以下是FLOAT和DOUBLE的区别: 浮点数以8位精度存储在FLOAT中,并且有四个字节。 浮点数存储在DOUBLE中,精度为18位,有八个字节。 7、区分CHAR_LENGTH和LENGTH? CHAR_LENGTH是字符数,而LENGTH是字节数。Latin字符的这两个数据是相同的,但是对于Unicode和其他编码,它们是不同的。 8、请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

数据库面试题

1.1.数据库 1.1.1.数据库 员工表的定义如下: Last_name VARCHAR2(25) First_name VARCHAR2(25) Salary NUMBER(7,2) 现查询显示未达到平均工资的员工姓名.请考察下面的SQL语句: SELECT last_name, first_name FROM employee WHERE salary < avg(salary); 对这条SQL做以下哪项修改能够达到目的? A.改变WHERE子句 B.把聚合函数移到SELECT列表中,并增加GROUP子句 C.通过子查询得出平均工资水平并在父查询的WHERE子句中比较 D.把聚合函数移到SELECT列表中,并增加GROUP BY子句和HAVING子句 注:SELECT last_name, first_name FROM employee where sal<(Select avg(salary) from employee); 1.1. 2.数据库 要从员工表中查询所有姓Smith的人,但是并不能确定所有Smith的大小写,以下哪条语句能解决问题? A.SELECT last_name, first_name FROM emp WHERE last_name=’smith’ B.SELECT last_name, first_name FROM emp WHERE UPPER(last_name)=’smith’ C.SELECT last_name, first_name FROM emp WHERE last_name=UPPER(‘smith’) D.SELECT last_name, first_name FROM emp WHERE LOWER(last_name)=’smith’ 1.1.3.delete from tablea & truncate table tablea的区别( ) A.没有区别 B.速度相同 C.速度不同 D.日志记录不同 1.1.4.下列哪些(或哪个)不是PL/SQL的组成部分() A.DECLARE B.CATCH C.THROW D.EXCEPTION 1.1.5.SQL语句中修改表结构的命令是______。 A.MODIFY TABLE

MySQL面试题 40道

1、MySQL 中有哪几种锁? 1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM 3、简述在MySQL 数据库中 MyISAM 和InnoDB 的区别 MyISAM: 不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作是对整个表加锁;存储表的总行数; 一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。 InnoDb: 支持 ACID 的事务,支持事务的四种隔离级别;支持行级锁及外键约束:因此可以支持写并发;不存储总行数: 一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制, 一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制;

主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持 B+树结构,文件的大调整。 4、MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐 级之间的区别?SQL 标准定义的四个隔离级别为: 1、read uncommited :读到未提交数据 2、read committed:脏读,不可重复读 3、repeatable read:可重读 4、serializable :串行事物 5、CHAR 和VARCHAR 的区别? 1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同 2、CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255 当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。 6、主键和候选键有什么区别? 表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。 7、myisamchk 是用来做什么的? 它用来压缩 MyISAM 表,这减少了磁盘或内存使用。 MyISAM Static 和 MyISAM Dynamic 有什么区别? 在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT, BLOB 等字段,以适应不同长度的数据类型。 MyISAM Static 在受损情况下更容易恢复。 8、如果一个表有一列定义为TIMESTAMP,将发生什么? 每当行被更改时,时间戳字段将获取当前时间戳。列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。怎样才能找出最后一次插入时分配了哪个自动增量?LAST_INSERT_ID 将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。 9、你怎么看到为表格定义的所有索引? 索引是通过以下方式为表格定义的: SHOW INDEX FROM ; 10、LIKE 声明中的%和是什么意思?%对应于 0 个或更多字符,只是 LIKE 语句中的一个字符。 如何在 Unix 和 MySQL 时间戳之间进行转换?UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令 11、列对比运算符是什么?

mysql索引优化面试题

曾经偷偷的面试了两个单位,都提到了Mysql的优化问题,所以以后要多多学习数据库的优化知识了。建设数据库的优化大概主要就是索引的优化了吧,因为我们不可能修改数据结构的情况下,提高数据库的查询效率似乎也只能用索引了。当然这也是建立在你sql语句写的比较科学的情况下,如果你的sql语句本身就写的比较垃圾,神仙也救不了你! 下边是在网上找到的一些资料,保留下来备用吧 1,创建索引 对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。 2,复合索引 比如有一条语句是这样的:select * from users where area=’beijing’ and age=22; 如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。 3,索引不会包含有NULL值的列 只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。 4,使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。5,排序的索引问题 mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。 6,like语句操作 一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。 7,不要在列上进行运算 select * from users where YEAR(adddate)<2007; 将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成select * from users where adddate<‘2007-01-01’; 8,不使用NOT IN和<>操作

数据库面试题

1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的 2.数据库隔离级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看来,明明修改了数据,咋不一样 3.MYSQL的两种存储引擎区别(事务、锁级别等等),各自的适用场景 4.索引有B+索引和hash索引 5.聚集索引和非聚集索引

6.索引的优缺点,什么时候使用索引,什么时候不能使用索引 索引最大的好处是提高查询速度, 缺点是更新数据时效率低,因为要同时更新索引 对数据进行频繁查询进建立索引,如果要频繁更改数据不建议使用索引。 7.InnoDB索引和MyISAM索引的区别 一是主索引的区别,InnoDB的数据文件本身就是索引文件。而MyISAM的索引和数据是分开的。二是辅助索引的区别:InnoDB的辅助索引data域存储相应记录主 8.索引的底层实现(B+树,为何不采用红黑树,B树)重点 树区别 红黑树增加,删除,红黑树会进行频繁的调整,来保证红黑树的性质,浪费时间 B树也就是B-树B树,查询性能不稳定,查询结果高度不致,每个结点保存指向真实数据的指针,相比B+树每一层每屋存储的元素更多,显得更高一点。 B+树B+树相比较于另外两种树,显得更矮更宽,查询层次更浅 9.B+树的实现 一个m阶的B+树具有如下几个特征: 1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。 2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素10.为什么使用B+Tree 索引查找过程中就要产生磁盘I/O消耗,主要看IO次数,和磁盘存取原理有关。根据B-Tree的定义,可知检索一次最多需要访问h个节点。数据库系统的设计者巧妙利用了磁

MySQL DBA面试题

1.请用图框的方式大致地描绘出MySQL架构体系. 第一层: client Connector ODBC、jdbc、api(C/JAVA/PERL/PYTHON/PHP) 第二层:MYSQL server 模块 thread connection pool/cache sql interface(DDL/ DML/ TRIGGER/ VIEW /STORE PROCEDURE/ EVENT等) sql parse & check privileges sql optimize(explian) server 统计/buffer:query cache server admin manager command: backup restore security replicate 等 第三层:存储引擎 myisam/innodb/blackhole/archive/memory/merge/NDB 存储引擎是基于表 第四层:存储引擎相应的文件 logs file:binlog/err/general/slow.server 层维护 myisam: frm/myi/myd innodb: frm/ibd(index&data)/redo log/Undo log(5.7) 2.限定MySQL5.5及以下为例,InnoDB存储引擎与MyISAM存储引擎的区别,至少写四点. MYISAM(5.5.8前) INNODB 锁: 表锁行锁 存储限制256TB 64TB 文件类型FRM/MYD/MYI FRM/ibdata 数据保存堆表索引组织表 外键NO YES 事务: NO YES.4种隔离级别 MVCC(实现一致性非锁定读) NO YES

mysql数据库笔试练习题复习(一).doc

精品文档 数据库笔试题(一) 一、选择题 1.数据库系统的核心是_B___。 A.数据库 B.数据库管理系统 C.数据模型 D.软件工具 2.SQL语言具有__B__的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 3.SQL语言的数据操纵语句包括 SELECT,INSERT,UPDATE和 DELETE,最重要的,也是使用最频繁的语句是__A__。 A.SELECT B.INSERT C.UPDATE D.DELETE 4.在关系数据库设计中,设计关系模式是__C__的任务。 A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段5.__C__是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 A.程序 B.命令 C.事务 D.文件 6.在数据库中,产生数据不一致的根本原因是__D__。 A.数据存储量太大 B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余

7.下列SQL语句中,创建关系表的是__B__。 A.ALTER B.CREATE C.UPDATE D.INSERT 8.数据库的__B__是为了保证由授权用户对数据库所做的修改不会影响数据一致性的损失。 A.安全性 B.完整性 C.并发控制 D.恢复 9.事务是数据库进行的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于_____B___状态。 A.安全性 B.一致性 C.完整性 D.可靠性 10.对并发操作若不加以控制,可能会带来数据的___D_问题。 A.不安全 B.死锁 C.死机 D.不一致 二、填空题 1.数据冗余可能导致的问题有____________________和 _____________________。 答案:①浪费存储空间及修改麻烦②潜在的数据不一致性 2.数据库在运行过程中可能产生的故障有____________、_______________、 ___________。 答案:①Transaction failure ②System crash ③Disk failure 3.视图是一个虚表,它是从_________中导出的表。在数据库中,只存放视图的 ________,不存放视图的_____________。 答案:一个或几个基本表、定义、视图对应的数据 4.关系操作的特点是____________操作。 答案:集合 三、简答题

相关文档
相关文档 最新文档