JAVA面试汇总(五)数据库(二)

写了好几天理财的,今天重回技术,写一写数据库,预计三篇,今天第二篇。

6.数据库范式

(1)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。例如,地址字段,实际上可以拆解成为省市区街道地址的,拆分完成后,无法再次拆分才是满足第一范式的。
(2)第二范式,首先要满足第一范式,每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。可以看下面的例子
订单信息表,其中会出现重复的两条订单数据,后边的客户,所属单位,联系方式都是重复的,需要拆解成子表

image

拆解后的表,可以看到订单信息表只有一条数据,而且没有重复的信息

image

(3)第三范式同样要先满足第一第二范式,另外需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。例如,学生表(学生编号,学生姓名,班级名称,学校名称,学校地址,学校电话),其中后边两个地址和电话和学生不是直接关联的,需要单独拆成学校表。拆解后学生表(学生编号,学生姓名,班级名称,学校编号),学校表(学校编号,学校地址,学校电话)。

7.存储过程与触发器的区别

(1)存储过程,是一段可以重复执行的SQL逻辑代码,通过指定的输入参数(可不输入),按照SQL语句执行具体操作,最终返回指定的输出结果,通过其他存储过程或者EXECUTE方式调用(Java代码中可以使用该方式调用)
(2)触发器,也是一段SQL逻辑代码,但是是由指定的表在特定的操作下触发(例如update,insert等操作时)的执行语句。比较常见的是多个表关联紧密,当删除了某个表的数据,需要同时删除其他关联表的数据,可以使用触发器来操作。

8.什么情况下设置了索引但无法使用

(1)表中数据较少,建立索引无意义,没有全表扫描速度快。
(2)该列数据重复度高,大量的重复数据,因此在该列上建立索引查询时,仍然需要通过全表扫描。
(3)like '%dfdfd'模糊匹配时,注意是前面模糊匹配,后边匹配dfdfd,需要匹配大量数据,无法走索引。当修改为like 'dfdfd%',有可能走索引也可能不走索引,主要看匹配的数据量超过30%则不走索引。
(4)使用OR时候,前后两部分中存在某一部分没有建立索引。
(5)字段存在索引,但条件中使用函数时,例如SUBSTR(COLUMN,2,5) = 'abcde',这种情况不走索引。如果需要走索引要单独建立函数索引。
(6)数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型)。

9.什么情况下不宜建立索引?

(1)字典表这种或者数据很少的,几十条数据,建立索引反而慢,因为要多一道手续。
(2)字段重复度极高,往往超过三分之一的重复数据的字段,即使建立索引,也是全表查询。
(3)没有查询意义的字段,不应该建立索引。
(4)另外一个表索引建议在三个以及以下,否则如果查询语句比较多的时候会造成索引冲突,反而不走最佳的索引。

10.解释MySQL外连接、内连接与自连接的区别

(1)内连接,最常用的,关联表直接通过where条件写出的

//第一种写法
select * from taba a INNER JOIN tabb b on a.key1 = b.key1;
//第二种写法,省去了INNER JOIN
select * from taba a,tabb b where a.key1 = b.key1;

(2)外连接,分为左连接(以左表数据为准,例如班级和学生,班级左表,学生右表,有的班级还没有分学生,这样能够把所有的班级的学生查询出来,有的班级即使没有学生也会展示,只是学生部分为null),右连接(以右表数据为准,和左连接反着,实际就是把班级表放右边,学生左表,结果和左连接类似,只是这次以右表为准),全外连接(这个特殊,班级左表,学生右表,存在没有学生的班级,也存在没有分班的学生,查询的结果展示有学生的班级,展示班级和学生;没有学生的班级,学生为null,只展示班级;没有学生的班级,班级为null,只展示学生,这样把所有的数据都展示出来)

//左连接
SELECT * FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key;
//右连接
SELECT * FROM Table_A A RIGHT JOIN Table_B B ON A.Key = B.Key;
//全外连接
SELECT * FROM Table_A A FULL OUTER JOIN Table_B B ON A.Key = B.Key;

(3)自连接,不太常用,就是有时候数据自己与自己关联,比如全班考试,想知道比张三分数高的学生,可以写成一条SQL

//复杂写两次
select a.score from student a where a.name='张三';
//上面SQL得到15分的结果
select a.* from student a where a.socre>15;
//直接捅过自连接写成一条SQL
select b.* from student a,student b 
where a.name = '张三' and b.socre>a.score;

谢各位的阅读,谢谢您动动手指点赞,万分感谢各位。另外以下是我之前写过的文章,感兴趣的可以点进去继续阅读。

历史文章

Hadoop系列-入门安装
Hadoop系列-HDFS命令
JAVA面试汇总(五)数据库(一)
JAVA面试汇总(五)数据库(二)
JAVA面试汇总(五)数据库(三)
JAVA面试汇总(四)JVM(一)
JAVA面试汇总(四)JVM(二)
JAVA面试汇总(四)JVM(三)
JAVA面试汇总(三)集合(一)
JAVA面试汇总(三)集合(二)
JAVA面试汇总(三)集合(三)
JAVA面试汇总(三)集合(四)
JAVA面试汇总(二)多线程(一)
JAVA面试汇总(二)多线程(二)
JAVA面试汇总(二)多线程(三)
JAVA面试汇总(二)多线程(四)
JAVA面试汇总(二)多线程(五)
JAVA面试汇总(二)多线程(六)
JAVA面试汇总(二)多线程(七)
JAVA面试汇总(一)Java基础知识

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

推荐阅读更多精彩内容