mysql编程题 请使用_练习题|MySQL

MySQL主要内容:

1、数据库介绍、类型、特性

2、MySQL数据库安装、连接、启动、停止

3、表字段类型介绍、主键约束、表创建语句

4、常用增删改查语句、分组、聚合

5、外键管理、unique字段、表结构修改语法

6、跨表查询,inner join、left join、right join、full join语法

7、复杂SQL语句如group by、子查询、函数的使用

8、索引原理及作用、普通索引、多列索引、唯一索引、全文索引等

9、基于hash&b+树索引的实现原理,索引的优缺点剖析

10、事务原理,ACID特性,应用场景讲解

11、事务回滚

12、触发器的特性,应用场景

13、触发器的增删改查方法

14、存储过程的作用及应用场景

15、创建存储过程,参数传递,流程控制语句if\while\repeat\loop等,动态SQL的创建

16、视图的作用及使用场景,视图的增删改查

17、数据库权限管理,用户管理

18、数据库备份命令及工具讲解

19、基于不同业务的数据库表结构设计、性能优化案例

20、pymysql模块介绍和使用

一、问答题

1、说说你所知道的MySQL数据库存储引擎,InnoDB存储引擎和MyISM存储引擎的区别?

48304ba5e6f9fe08f3fa1abda7d326ab.png

主要有

MyISM:MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有要求或者以select,insert为主的应用基本上可以用这个引擎来创建表

InnoDB:支持事务

Memory:Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。

memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉。

Merge:Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的。

MyISM和InnoDB的区别

InnoDB支持事务,而MyISM不支持事务

InnoDB支持行级锁,而MyISM支持表级锁

InnoDB支持外键,而MyISM不支持

InnoDB支持全文索引,而MyISM不支持

InnoDB是索引组织表,MyISM是堆表 (堆表的数据是随机插入的,索引组织表的数据是有序的)

48304ba5e6f9fe08f3fa1abda7d326ab.png

2、MySQL中char和varchar的区别,varchar(50)和char(50)分别代表什么意思?

char(50): 定长,字符的长度为50,浪费空间,存取速度快,数据不足时,会往右填充空格来满足长度。

varchar(50):变长,字符的长度为50,节省空间,存取速度慢,存储数据的真实内容,不会填充空格,

且会在真实数据前加1-2bytes,表示真实数据的bytes字节数。

3、MySQL中int类型存储多少个字节?

int存储4字节,最小值-2147483648,最大值21477483647

4、主键具有什么特征?

唯一且非空

5、简述你对inner join、left join、right join、full join的理解;

多表连接查询:

inner join: 内连接,只连接匹配的行,找两张表共有的部分;

left join: 外连接之左连接,优先显示左表全部记录,在内连接的基础上增加左表有右表没有的结果;

right join: 外连接之右连接,优先显示右表全部记录,在内连接的基础上增加右表有左表没有的结果;

full join:=left join on union right join on ... mysql 不支持full join 但是可以用 union ...

全外连接,显示左右两个表全部记录,在内连接的基础上增加左表有右表没有和右表有左表没有的结果;

6、concat, group_concat函数的作用是什么?

48304ba5e6f9fe08f3fa1abda7d326ab.png

定义显示格式:

concat() 用于连接字符串

eg:select concat('姓名:',name,'年薪:',salasy*12) as annual_salary fromemployee;

concat_ws() 第一个参数为分隔符

eg:select concat_ws(':',name,salary*12) as annual_salary fromemployee;

group by 与 group_concat() 函数一起使用select post,group_concat(name) as emp_members from employee group by post;

48304ba5e6f9fe08f3fa1abda7d326ab.png

7、请介绍事务的实现原理;

事务:用于将某些操作的多个sql作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据的完整性。

原子性:一堆sql语句,要么同时执行成功,要么同时失败!

8、索引的本质是什么?索引有什么优点,缺点是什么?

48304ba5e6f9fe08f3fa1abda7d326ab.png

索引是帮助MySQL高效获取数据的数据结构。因此,索引的本质是一种数据结构。

在数据之外,数据库系统还可以维护满足特定查找算法的数据结构,这些数据结构以某种方式指向真实数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

优点:1、提高数据检索效率,降低数据库的IO成本;2、通过索引对数据进行排序,降低了数据排序的成本,降低了CPU的利用率;

缺点:1、索引实际上也是一张表,索引会占用一定的存储空间;2、更新数据表的数据时,需要同时维护索引表,因此,会降低insert、update、delete的速度;

48304ba5e6f9fe08f3fa1abda7d326ab.png

9、哪些情况下需要创建索引,哪些情况下不需要创建索引?

1、主键自动创建唯一非空索引;2、频繁作为查询条件的字段应该创建索引;3、频繁更新的字段不适合简历索引,因为每次更新不仅仅更新数据表同时还会更新索引表;4、查询中经常排序的字段,可以考虑创建索引;5、如果某个字段的重复数据较多,不适合创建普通索引;

10、请分别介绍ACID代表的意思,什么业务场景需要支持事务,什么业务场景不需要支持事务?

48304ba5e6f9fe08f3fa1abda7d326ab.png

ACID,指数据库事务正确执行的四个基本要素的缩写。

包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性。

使用场景:

银行的交易系统

eg:

start transaction;

update userset balance = 900 where name = 'wsb'; #买支付100元

update userset balance = 1010 where name = 'egon'; #中介拿走10元

uppdate userset balance = 1090 where name = 'ysb'; #卖家拿到90元,出现异常没有拿到

rollback;

commit;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值