数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案

【一】初级

【二】中级

执行过程

【1】客户端向MySQL服务器发送一条查询请求

【2】服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段

【3】服务器进行SQL解析、预处理、再由优化器生成对应的执行计划

【4】MySQL根据执行计划,调用存储引擎的API来执行查询

【5】将结果返回给客户端,同时缓存查询结果

多种Join

交集:

select * from A inner join B on A.key = B.key

并集:

select * from A full outer join B on A.key = B.key

差集:

select * from A left outer join B on A.key = B.key where B.key IS NULL

select * from A right outer join B on A.key = B.key where A.key IS NULL

以A表为主表,A表数据全部取到

select * from A left outer join B on A.key = B.key

以B表为主表,B表数据全部取到

select * from A right outer join B on A.key = B.key

取A,B全集,并去掉A,B的交集

select * from A full outer join B on A.key = B.key where A.key IS NULL or B.key IS NULL

数据库设计

表结构设计:遵循三范式 NF(Normal Form)

(1)简单归纳:

第一范式(1NF):字段不可分

第二范式(2NF):有主键,非主键字段依赖主键

第三范式(3NF):非主键字段不能相互依赖

(2)本质解释:

1NF:原子性。 字段不可再分,否则就不是关系数据库

2NF:唯一性 。一个表只说明一个事物

3NF:每列都与主键有直接关系,不存在传递依赖

字段设计

1.字段类型选择:尽量小

--变长字段使用varchar,定长使用char

--冗余字段,合理参考范式,以空间换时间

--int类型详解:https://www.jb51.net/article/93777.htm

Q:int(3)中数字3的含义是什么?

答:这里的3代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字.不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度。加上zerofill后,,才能看出3代表的效果,比如 int(3) zerofill,当你插入到数据库里的是10,则实际插入为010,插入的数字超过3位,定义的3不再起作用。

Q:不同int型后的默认位数M分别是多少?

答: TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M默认为4

SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

INT[(M)] [UNSIGNED] [ZEROFILL]   M默认为11

BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

2.命名规则

-多个单词以 "_" 连接

-重要数据表模型加上create_user,create_time,last_modify_user,last_modify_time字段

3.主键

-每张表必须建立一个自增id作为主键

4.索引

-where限定条件后查询字段加索引

SQL优化

【三】高级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iframe高度自适应(IE6+、FF、Opera、Chrome等测试通过)

在主页面中对于嵌入的iframe页面高度未知,而且iframe页面的高度也不定,故不能在主页面中通过DOM来控制高度。在iframe页面中加入以下脚本便可实现:/*iframe 高度自适应脚本(IE6、FF、Opera、Chrome等测试通过) 作者未知…

html选择器_css的9个常用选择器

1.类选择器&#xff08;通过类名进行选择&#xff09;<!DOCTYPE html> <html> <head><title></title> </head> <style type"text/css">.p1{color: #00ff00;}.p2{color: #0000ff;} </style> <body><p class…

dapperpoco mysql_.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

前言在以前的一篇文章中&#xff0c;为大家分享了《什么是ORM&#xff1f;为什么用ORM&#xff1f;浅析ORM的使用及利弊》。那么&#xff0c;在目前的.NET(C#)的世界里&#xff0c;有哪些主流的ORM&#xff0c;SqlSugar&#xff0c;Dapper&#xff0c;Entity Framework(EF)还是…

Resharper4.5:增强你的.net开发

Resharper4.5:增强你的.net开发 介绍 无庸置疑&#xff0c;ReSharper是最智能化的微软Visual Studio插件。它包括一系列丰富的能大大增加C#和Visual Basic.net开发者生产力的特征。使用ReSharper&#xff0c;你可以进行深度代码分析&#xff0c;智能代码协助&#xff0c;实时错…

mysql并发获取唯一数值_高并发分布式环境中获取全局唯一ID[分布式数据库全局唯一主键生成]...

需求说明在过去单机系统中&#xff0c;生成唯一ID比较简单&#xff0c;可以使用MySQL的自增主键或者Oracle中的sequence, 在现在的大型高并发分布式系统中&#xff0c;以上策略就会有问题了&#xff0c;因为不同的数据库会部署到不同的机器上&#xff0c;一般都是多主实例&…

mybatis collection_MyBatis之关联查询

前言我们进行数据库查询时往往需要的不止一张表的数据&#xff0c;需要将多张表的数据一起查询出来&#xff0c;大家学习过数据库的连接查询&#xff0c;那么在MyBatis中如何将有关系的多张表数据进行关联查询呢。表的结构商品和订单是典型的一对多关系&#xff0c;下面的案例我…

项目经理职责

一位在软件企业的朋友抱怨说公司的项目经常失控,客户意见非常大.由于我在一家软件外企负责PMO(项目管理办公室),他期望我能够推荐一些项目经理&#xff0c;职责要求是:1)领导项目团队&#xff0c;制定工作计划&#xff1b;2)需求分析;3)数据库设计4)系统设计&#xff1b;5)搭建…

mysql如何优化性能优化_如何优化性能?MySQL实现批量插入以优化性能的实例详解...

这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下对于一些数据量较大的系统&#xff0c;数据库面临的问题除了查询效率低下&#xff0c;还有就是数据入库时间长。特别像报表系统&#xff0c;每天花费在数据…

数组 参数传递

/************************作者:张平*创建日期:2009 04 07*功能:************************//*void main(){ char str1[30]{"Peoples Republic of "}; char str2[]{"China"}; int a[2][3]{{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n&quo…

不支持对系统目录进行即席更新_「目录」让你的文档结构一目了然

很多时候&#xff0c;要求文档要有目录&#xff0c;比如书籍/杂志/论文/标书等等。目录可以让文档结构一目了然。如果不了解 Word &#xff08;包括 Microsoft Office 和 WPS Office 下的Word&#xff09;操作&#xff0c;目录的各标题及对应页码可能是手动一个一个码上去。其实…

合成/聚合原则: 桥接模式

假想场景&#xff1a;hp和apple是全球知名的电脑生产厂家&#xff0c;起初他们各自的电脑操作系统分别是linux和macintosh&#xff0c;microsoft是软件行业的龙头。为了吸引更多客户购买电脑&#xff0c;hp和apple请ms为他们开发两款最常用的软件&#xff0c;办公软件和及时通讯…

java查看jdk源码_Java-如何查看JDK源码

一、引言学习Java和使用Java的小伙伴都必须要看的懂Java的开发文档&#xff0c;然而&#xff0c;开发文档只是开发者对Java代码的功能做出简略的说明&#xff0c;它只是告诉你这个类能干嘛&#xff0c;并没告诉你这个类怎么干&#xff0c;所以&#xff0c;阅读Java源码是每个开…

arrays中copyof复制两个数组_数据结构与算法(3)数组

前言数组(Array)是一种线性表数据结构&#xff0c;利用一组连续的内存空间&#xff0c;存储一组具有相同类型的数据。概念介绍首先我们说一下什么是线性表&#xff0c;线性表就是数据排成一条线的数据结构&#xff0c;每个线性表最多只有前和后两个方向&#xff0c;数组、链表、…

java做的一个将中文转换成Unicode码的工具类【转载】做个标记,明天研究下

这两天在使用RBManager&#xff08;一个开源工具&#xff0c;用于多国化字符转化&#xff09;工具的时候觉得很不方便&#xff0c;有的时候只需要知道中文对应的unicode码是多少&#xff0c;不需要这么麻烦的操作&#xff0c;所以就自己写了一个工具&#xff0c;专门用于将中文…

java lambda 实现_Java 8 Lambda实现原理分析

PDF文档已上传Github为了支持函数式编程&#xff0c;Java 8引入了Lambda表达式&#xff0c;那么在Java 8中到底是如何实现Lambda表达式的呢? Lambda表达式经过编译之后&#xff0c;到底会生成什么东西呢?在没有深入分析前&#xff0c;让我们先想一想&#xff0c;Java 8中每一…

unity game和scene效果不一样_KTV装修设计:如何让消费者体验到不一样的KTV娱乐效果...

现代KTV装修设计要尽显奢华与高贵,但起到吸引消费者的却是浓烈的欢快氛围和愉悦的歌唱体验.KTV想要有一个好的装修效果,需要了解各方面的细节问题.下面怡元小编讲述如何设计能让消费者体验到不一样的KTV娱乐效果?1、氛围设计在KTV装修设计中,氛围设计非常考究,尤其是消费者进入…

SQL學習

1.模糊表名的联合查询..create table tz2008_1_1(id int,name varchar(50))insert into tz2008_1_1 select 1,acreate table tz2008_1_2(id int,name varchar(50))insert into tz2008_1_2 select 2,bcreate table tz2008_1_3(id int,name varchar(50))insert into tz2008_1_3 s…

feather 设置坐标刻度_Matlab中将坐标轴放在原点位置

转载一篇文章&#xff0c;原文链接&#xff1a;https://blog.csdn.net/xiaobiyin9140/article/details/84519419​blog.csdn.net需求使用matlab画图&#xff1a;设置y轴位置&#xff0c;使y轴在x轴的中间示例画一个sigmoid函数MATLAB代码x-10:0.1:10; ysigmf(x,[1 0]); plot(…

hana数据库导入mysql_【SAP HANA】新建表以及操作数据(3)

账号和数据库都创建好之后&#xff0c;接下来就可以创建表了。来见识一下这个所谓“列式”存储方式的表是长啥样的&#xff01;一、可视化新建表然后输入所需栏位&#xff0c;设置好类型和长度&#xff1a;上图右上角可以看到类型是Column Store&#xff0c;代表列式存储&#…

(转)Asp.net 中 Get和Post 的用法

单form的提交有两种方式&#xff0c;一种是get的方法&#xff0c;一种是post 的方法.看下面代码,理解两种提交的区别: <form id"form1" method"get" runat"server"> <div> 你的名字<asp:TextBox ID"name" ru…