vue面试题和数据库面试题

1 简述 Vue 中的 MVVM 模型

MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。Model 层代表数据模型,也可以在 Model中定义数据修改和操作的业务逻辑

在 MVVM 架构下,View 和 Model 之间并没有直接的联系,而是通过 ViewModel进行交互,Model 和ViewModel 之间的交互是双向的, 因此 View 数据的变化会同步到 Model 中,而 Model 数据的变化也会立即反应到 View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而 View 和Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由MVVM 来统一管理。

2vue 的优点是什么?

低耦合

可重用性

独立开发

可测试

3请说出 vue 中生命周期函数(钩子函数)

1、beforeCreate():组件实例刚刚被创建

2、created():组件创建完成,属性已绑定,

3、beforeMount():模板编译/挂载之前

4、Mounted():模板编译/挂载之后

5、beforeUpdate():组件更新之前

6、updated():组件更新之后

7、beforedestroy():组件销毁之前

8、destroyed():组件销毁之后

4vue 的指令

v-if 指令 判断是否隐藏

v-show 指令

v-else 指令

v-for 指令 数据循环出来

v-bind:class 指令 绑定一个属性

v-on 指令

v-model 指令:实现双向绑定  

v-text 读取文本,不能读取 html 标签

v-html 能读取 html 标签

5MySQL 和 Oracle 的区别?

Oracle 是大型数据库而Oracle 市场占有率达 40%,Oracle 支持大并发,大访问量,是 OLTP 最好的工具,Oracle 没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM 框架是只要是 native 主键生成策略即可,ORACLE 里只可以用单引号包 起字符串。在插入和修改字符串前必须做单引号的替换,把所有出现的一个单引号替换成两个单引号,Oracle 的分页 rownum。

 

Mysql 是中小型数据库,Mysql只有 20%左右,同时 Mysql 是开源的而 Oracle 价格非常高主键 Mysql 一般使用自动增长类型,在创建表时只要指定表的主键为 autoincrement,插入记录时,不需要再指定该记录的主键值,Mysql 将自动增长,单引号的处理 MYSQL 里可以用双引号包起字符串,MySQL 的分页关键词 limit。

6Sql 之连接查询

外连接:

1左连接(左外连接)以左表为基准进行查询,左表数据会全部显示出来,右表 如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;

2右连接(右外连接)以右表为基准进行查询,右表数据会全部显示出来,右表 如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;

3全连接就是先以左表进行左外连接,然后以右表进行右外连接。

内连接:

显示表之间有连接匹配的所有行

7Sql 之聚合函数:

COUNT:(统计行数量)

SUM:(求和)

AVG:(求平均)

MAX:(最大值)

MIN:(最小值)

8Sql 之 SQL 注入

防止 SQL 注入,使用预编译语句是预防 SQL 注入的最佳方式,如select admin from user where username=?And password=?使用预编译的 SQL 语句语义不会发生改变,在 SQL 语句中,变量用问号?表示。像上面例子中,username 变量传递的'admin' or 'a'='a' 参数,也只会当 作username字符串来解释查询,从根本上杜绝了 SQL 注入攻击的发生。

注意:使用 mybaits 时 mapper 中#方式能够很大程度防止 sql 注入,$方式无法防止 sql 注入.

9SQL Select 语句完整的执行顺序:

from--->where--->group by--->having--->计算所有的表达式--->order by-- ->select 输出

10存储引擎

1、InnoDB 存储引擎

特点:行锁设计、支持外键、支持非锁定读

2、MyISAM 存储引擎

不支持事务、表锁设计,支持全文搜索,缓冲池只缓存索引文件,不缓存数据文件

3、NDB 存储引擎

数据全部放在内存中,因此主键查找速度极快

4、Memory 存储引擎

表中的数据存放在内存

5、Archive 存储引擎

只支持 INSERT 和 SELECT 操作

6、Federated 存储引擎

不存放数据,只是指向一台远程 MySQL 数据库服务器上的表

7、Maria 存储引擎

支持缓存数据和索引文件,行锁设计,提供 MVCC 功能,支持事务和非事务安全的选项

11索引

1.什么是索引?

索引是 MySQL 数据库中的重要对象之一,用于快速找出某个列中有某一特定值的

行。

2.为什么要使用索引

它是数据库性能调优技术的基础,常用于实现数据的快速检索。

索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实

质上是一张描述索引列的列值与原表中记录行之间一一对应关系的有序表。

3.索引的优点

创建唯一性索引,保证数据库表中每一行数据的唯一性大大加快数据的检索速度,这也是创建索引的最主要的原因,加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间,通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

5.索引的缺点

创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度

12数据库三范式

数据库三范式主要是为了设计出高效率、优雅的数据库,否则可能会设计出

错误的数据库.

第一范式(1NF),原子性,

第二范式(2NF),唯一性,不存在部分依赖

第三范式(3NF),直接性,不存在传递依赖

13 数据库事务

1. 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。

事物的四个属性:

1原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分,要么都执行,要么都不执行。

2一致性(Consistency):当事务完成时,数据必须处于一致状态

3隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,

这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。

4永久性(Durability):事务完成后,它对数据库的修改被永久保持,

事务日志能够保持事务的永久性。

14存储过程

为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数来执行它。存储过程是数据库中的一个重要对象。

存储过程优化思路:

1,尽量利用一些 sql 语句来替代一些小循环

2,中间结果存放于临时表,加索引。

3,少使用游标。sql 是个集合语言,对于集合运算具有较高性能。而 cursors 是过程

运算。

4,事务越短越好。sqlserver 支持并发操作。如果事务过多过长,或者隔离级别过高,都会造成并发操作的阻塞,死锁。导致查询极慢,cpu 占用率极地。

5,使用 try-catch 处理错误异常。

6,查找语句尽量不要放在循环内。

15 触发器

触发器是一段能自动执行的程序,是一种特殊的存储过程,触发器和普通的存储过

程的区别是: 触发器是当对某一个表进行操作时触发。

SQL Server 2005 中触发器可以分为两类:DML 触发器和 DDL 触发器,其中 DDL 触发器它们会影响多种数据定义语言语句而激发,这些语句有 create、 alter、drop 语句。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值