MySQL面试题 | 附答案解析(十四)

接上篇!!!

5. 什么是子查询

(1)QL语句的查询结果做为另一条查询语句的条件或查询结果

(2)SQL语句嵌套使用,内部的SQL查询语句称为子查询。

6. 子查询的三种情况

(1)询是单行单列的情况:结果集是一个值,父查询使用:=、 <、 > 等运算符

-- 查询工资最高的员工是谁?

select  * from employee where salary=(select max(salary) from employee);

(2)询是多行单列的情况:结果集类似于一个数组,父查询使用:in 运算符

-- 查询工资最高的员工是谁?

select  * from employee where salary=(select max(salary) from employee);

(3)是多行多列的情况:结果集类似于一张虚拟表,不能用于where条件,用于select子句中做为子表

-- 1) 查询出2011年以后入职的员工信息

-- 2) 查询所有的部门信息,与上面的虚拟表中的信息比对,找出所有部门ID相等的员工。

select * from dept d,  (select * from employee where join_date > '2011-1-1') e where e.dept_id =  d.id;

– 使用表连接:

select d., e. from  dept d inner join employee e on d.id = e.dept_id where e.join_date >  ‘2011-1-1’

7. mysql中 in 和 exists 区别

mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的。这个是要区分环境的。

(1)果查询的两个表大小相当,那么用in和exists差别不大。

(2)如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。

(3)not in 和not exists:如果查询语句使用了not in,那么内外表都进行全表扫描,没有用到索引;而not extsts的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

8. varchar与char的区别

char的特点

(1)har表示定长字符串,长度是固定的;

(2)如果插入数据的长度小于char的固定长度时,则用空格填充;

(3)因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法;

(4)char来说,最多能存放的字符个数为255,和编码无关

varchar的特点

(1)varchar表示可变长字符串,长度是可变的;

(2)插入的数据是多长,就按照多长来存储;

(3)varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法;

(4)对于varchar来说,最多能存放的字符个数为65532

总之,结合性能角度(char更快)和节省磁盘空间角度(varchar更小),具体情况还需具体来设计数据库才是妥当的做法。

9. varchar(50)中50的涵义

最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)。在早期 MySQL 版本中, 50 代表字节数,现在代表字符数。

10. int(20)中20的涵义

是指显示字符的长度。20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;

不影响内部存储,只是影响带 zerofill 定义的 int 时,前面补多少个 0,易于报表展示

11. mysql为什么这么设计

对大多数应用没有意义,只是规定一些工具用来显示字符的个数;int(1)和int(20)存储和计算均一样;

12. mysql中int(10)和char(10)以及varchar(10)的区别

(1)(10)的10表示显示的数据的长度,不是存储数据的大小;chart(10)和varchar(10)的10表示存储数据的大小,即表示存储多少个字符。

int(10) 10位的数据长度 9999999999,占32个字节,int型4位

char(10) 10位固定字符串,不足补空格 最多10个字符

varchar(10) 10位可变字符串,不足补空格 最多10个字符

(2)char(10)表示存储定长的10个字符,不足10个就用空格补齐,占用更多的存储空间

(3)varchar(10)表示存储10个变长的字符,存储多少个就是多少个,空格也按一个字符存储,这一点是和char(10)的空格不同的,char(10)的空格表示占位不算一个字符

13. FLOAT和DOUBLE的区别是什么?

(1)FLOAT类型数据可以存储至多8位十进制数,并在内存中占4字节。

(2)DOUBLE类型数据可以存储至多18位十进制数,并在内存中占8字节。

14. drop、delete与truncate的区别

三者都表示删除,但是三者有一些差别:

15. UNION与UNION ALL的区别?

(1)用UNION ALL,不会合并重复的记录行

(2)效率 UNION 高于 UNION ALL

最后,小编分类整理了许多java进阶学习材料和BAT面试给热爱IT行业的你,如果需要资料的请转发此文章后再私聊小编回复【java】就能领取2019年java进阶学习资料和BAT面试题以及《Effective Java》(第3版)电子版书籍。也可以加群:712263501领取海量学习资料进行学习。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 1. 什么是子查询 条件:一条SQL语句的查询结果做为另一条查询语句的条件或查询结果 嵌套:多条SQL语句嵌套使用...
    newer大侠阅读 133评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 3,809评论 0 11
  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 1,659评论 0 8
  • 测试: http://blog.csdn.net/chenmengyi828/article/details/52...
    Miley_MOJIE阅读 873评论 0 1
  • 下面列出了最常见的 MySQL 面试问题和答案。 MySQL 是什么?MySQL 是一个多线程、多用户的 SQL ...
    nopain_5689阅读 2,546评论 1 0