Sqlserver面试题

  1. SQL数据库的三大范式是什么?

①第一范式:所有的字段不能有冗余信息,所有的字段都是必不可少的。

②第二范式:满足第一范式并且表必须有主键。

③第三范式:满足第二范式并且表引用其他的表必须通过主键引用。

2.事务、视图、索引都是有什么作用

①事务:就是被绑定在一起的作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败,那么整个操作就失败,回滚到操作前状态。

②视图:视图是一种虚拟表,具有和物理表相同的功能,可以对视图进行增、改、查操作,对视图的修改不影响基本表,相比于多表查询,它使得我们获取数据更容易。

③索引:就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索,类似于生活中书的目录。

3.存储过程的作用是什么

①存储过程是一种预编译的SQL语句

②允许模块化的设计,可以多次使用

③防止SQL注入

4.如何处理几十万条并发数据?

答:1.使用存储过程 -- 哪些处理一次请求需要多次访问数据库的操作,可以把操作整合到存储过程,这样只要一次数据库访问就可以了。

2.批量读取 -- 高并发情况下,可以把多个请求的查询合并到一次进行,以减少数据库的访问次数。

3.使用索引 -- 索引可以看作hi特殊的缓存,使用索引就要求where字句中精确的给出索引列的值。

4.分表 -- 把本来同一张表的内容,可以按照地区、类别等分成多张表,很简单的一个思路,但是要尽量避免分出来的多表关联查询。

5.分离活跃数据 -- 例如登录用户业务,注册用户很多,但是活跃的登录用户很少,可以把活跃用户专门保存一张表,查询是先查询活跃表,没有的话再查总表,这也类似于缓存啦。

6.分块 -- 数据库层面的优化,对程序是透明的,查询大数据只用找到相应块就行啦。

7.集群 -- 将兵法请求分配到不同的服务器上,可以是业务服务器,也可以是数据库服务器。

5.SQL之连接查询

外连接:

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

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

全外连接:可以通过左外和右外求合集来获取全外连接

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

你可能感兴趣的:(sqlserver,数据库,java)