Web大前端面试题-Day11
86.如何获得高效的数据库逻辑结构?
从关系数据库的表中
删除冗余信息的过程
称为数据规范化,
是得到高效的关系型数据库表的逻辑结构
最好和最容易的方法。
规范化数据时应执行以下操作:
1.将数据库的结构精简为最简单的形式
2.从表中删除冗余值
3.标识所有依赖与其他数据的数据
规范化过程有几个阶段,
分别称作第一范式(1NF)、
第二范式(2NF)、
第三范式(3NF)、
第四范式(4NF)
以及第五范式(5NF)。
对于所有的实际应用,
3NF已经足够了。
87.数据库三范式是什么?
第一范式(1NF):
字段具有原子性,不可再分。
所有关系型数据库系统
都满足第一范式)
数据库表中的字段都是单一属性的,
不可再分。
例如,姓名字段,
其中的姓和名必须作为一个整体,
无法区分哪部分是姓,
哪部分是名,
如果要区分出姓和名,
必须设计成两个独立的字段。
第二范式(2NF):
第二范式(2NF)是在第一范式(1NF)的基础上
建立起来的,即满足第二范式(2NF)
必须先满足第一范式(1NF)。
要求数据库表中的每个实例
或行必须可以被惟一地区分。
通常需要为表加上一个列,
以存储各个实例的惟一标识。
这个惟一属性列被
称为主关键字或主键。
第二范式(2NF)要求实体的属性
完全依赖于主关键字。
所谓完全依赖是指不能存在
仅依赖主关键字一部分的属性,
如果存在,
那么这个属性和主关键字的这一部分
应该分离出来形成一个新的实体,
新实体与原实体之间是一对多的关系。
为实现区分通常需要为表加上一个列,
以存储各个实例的惟一标识。
简而言之,
第二范式就是非主属性
非部分依赖于主关键字。
第三范式(3NF)
是在第二范式的基础上建立起来的,
即满足第三范式(3NF)
必须先满足第二范式(2NF)。
第三范式(3NF)要求
非主关键字不能依赖于
其他非主关键字。
即非主关键字之间
不能有函数(传递)依赖关系.
即不能从一个表的某个字段
推出该表的另一个字段。
满足三范式的设计,
基本可以解决数据冗余、
插入异常、
更新异常、
删除异常等数据存储问题。
88.SQL语句分为哪几种?
SQL语句主要可以划分为以下几类:
DDL(Data Definition Language):
数据定义语言,
定义对数据库对象(库、表、列、索引)的操作。
包括:
CREATE、
DROP、
ALTER、
RENAME、
TRUNCATE等
DML(Data Manipulation Language):
数据操作语言,
定义对数据库记录的操作。
包括:
INSERT、
DELETE、
UPDATE、
SELECT等
DCL(Data Control Language):
数据控制语言,
定义对数据库、表、字段、
用户的访问权限和安全级别。
包括:
GRANT、
REVOKE等
Transaction Control:
事务控制
包括:
COMMIT、
ROLLBACK、
SAVEPOINT等
89. Delete、truncaate、drop都是删除语句,它们有什么分别?
delete 属于DML语句,
删除数据,
保留表结构,
需要commit,
可以回滚,
如果数据量大,
很慢。
truncate 属于DDL语句,
删除所有数据,
保留表结构,
自动commit,
不可以回滚,
一次全部删除所有数据,
速度相对较快。
Drop属于 DDL语句,
删除数据和表结构,
不需要commit,
删除速度最快。
90.Where和having都是条件筛选关键字,它们有什么分别?
1.Where语句是一条一条从磁盘读取的,
然后进行判断,
满足条件的存放到内存,
不满足忽略,
而having是将所有的数据读入内存中,
然后在内存内部逐条判断,
不满足直接删除where是判断数据从磁盘
读入内存的时候,having是判断分组
统计之前的所有条件
2.having子句中可以使用字段别名,
而where不能使用
3.having能够使用统计函数,
但是where不能使用
4.where 后不能跟聚合函数,
因为where执行顺序大于聚合函数。
5.having 是筛选组
而where是筛选记录
注意:HAVING用于应被用于WHERE子句的条目,
从我们开头的2条语句来看,
这样用并没有出错,
但是mysql不推荐。
而且也没有明确说明原因,
但是既然它要求,
我们遵循就可以了
Web大前端面试题-Day11的更多相关文章
- Web大前端面试题-Day12
1.前端需要注意哪些SEO? 合理的title.description.keywords: 搜索对着三项的权重逐个减小, title值强调重点即可, 重要关键词出现不要超过2次, 而且要靠前, 不同页 ...
- Web大前端面试题-Day7
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...
- Web大前端面试题-Day6
1.请说明ECMAScript, JavaScript, Jscript之间的关系? ECMAScript提供脚本语言必须遵守的规则. 细节和准则,是脚本语言的规范. 比如:ES5,ES6就是具体的一 ...
- Web大前端面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数, 里面的值 ...
- Web大前端面试题-Day10
1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...
- Web大前端面试题-Day8
1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...
- Web大前端面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量:2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到代码 ...
- Web大前端面试题-Day9
1. 请用至少3中方式实现数组去重? 方法一: indexOfvar arr1=[1,2,3,4,5,4,3,2,1]; function repeat1(arr){ for(var i=0, ...
- Web大前端面试题-Day5
1.写一个深度克隆方法(es5)? /** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */ function ...
随机推荐
- PLSQL_day01
declare begin dbms_output.put_line('Hello world') end;
- np.mat()和np.transpose
例子: import numpy as np dataSet = [] with open('/home/lai/下载/20081023025304.plt') as fr: for line in ...
- Dubbo监控中心
(1).dubbo-admin(管理控制台) 1).从https://github.com/apache/incubator-dubbo-ops下载解压 2).修改dubbo-admin配置文件中zo ...
- 使用SpringSecurity保护方法应用
(1)pom添加依赖 <dependency> <groupId>org.springframework.security</groupId> <artifa ...
- 【逆向工具】IDA使用4-控制台逆向分析 Reverse004.exe 获取密码
工具 吾爱破解版本OD.IDA6.8 OD使用-动态分析 OD快捷方式 F2 下断点,也就是指定断点的地址F3加载一个可执行程序,进行调试分析F4程序执行到光标处 F5 缩小.还原当前窗口 F7 单步 ...
- caffe添加自己编写的Python层
由于Python的灵活性,我们在caffe中添加自己定义的层时使用python层会更加方便,开发速速也会比C++更快,现在我就在这儿简单说一下如何在caffe中添加自定义的python层(使用的原网络 ...
- STM32F103X datasheet学习笔记---Interrupts and events
1.前言 本章主要介绍STM32中断和事件相关的内容 2.NVIC NVIC管理着包括内核异常等中断 主要特性 68个外部中断源(不包含16个内部中断线) 可编程优先级为16级 低延迟异常和中断处理 ...
- Makefile经典教程(一个很棒很清晰的讲解)【转】
转自:https://blog.csdn.net/seven_amber/article/details/70216216 该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神 ...
- TCP template 代码
服务端 from socket import * server= socket(AF_INET,SOCK_STREAM) server.bind(('127.0.0.1',8080)) server. ...
- Java基础98 gson插件的使用
1.要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-21 * */ public class P ...