1. SQL Server运行在什么端口上? 可以被修改么?

答: 1433端口. 可以修改的, 在SQL Server Configuration Manager的SQL Server Network Configuration的TCP/IP中.

Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager)

http://msdn.microsoft.com/en-us/library/ms177440.aspx

 

2. Clustered index和non-clustered index的区别是什么?

答: 区别如下.

  1. Clustered index是一种特殊类型的index, 特殊在表中的记录的重新排序的存储是物理的. 所以, 表只能有一份clustered index. clustered index的叶节点包含数据页面.
  2. Non clustered index中, index的逻辑顺序和存储在磁盘上的物理顺序是不匹配的. 非clustered index的叶节点不包含数据页面, 取而代之的是index rows.

 

3. 一张表可以有多少种不同的索引配置?

答:

  1. 没有索引.
  2. a clustered index
  3. a clustered index and many non clustered index
  4. a non clustered index
  5. many non clustered index

 

4. SQL Server 有哪几种collation sensitivity?

答:

  1. Case sensitivity-字母大小写敏感. 举例: 如果A和a, B和b被认为是一样的, 那么就是大小写不敏感.
  2. Accent sensitivity- 重音敏感. 举例: 如果 aá, o a和 ó 被认为是一样的, 那么就是重音不敏感.
  3. Kana sensitivity- 日文假名敏感. 举例: 如果假名字符Hiragana 和Katakana 被认为是一样的, 那么就是假名不敏感.
  4. Width sensitivity- 字符宽度敏感. 举例:如果a 和a被认为是一样的, 那么就是字符宽度不敏感.

SQL Server and Collation

http://www.databasejournal.com/features/mssql/article.php/3302341/SQL-Server-and-Collation.htm

 

5. 什么是OLTP (Online Transaction Processing)? 那OLAP呢?

答:

On-Line Transaction Processing联机事务处理系统(OLTP),也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。

最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由数据库引擎负责完成的。
OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。

特征:

  • 支持大量并发用户定期添加和修改数据。
  • 反映随时变化的单位状态,但不保存其历史记录。
  • 包含大量数据,其中包括用于验证事务的大量数据。
  • 具有复杂的结构。
  • 可以进行优化以对事务活动做出响应。
  • 提供用于支持单位日常运营的技术基础结构。
  • 个别事务能够很快地完成,并且只需访问相对较少的数据。OLTP 系统旨在处理同时输入的成百上千的事务
  • 实时性要求高。
  • 数据量不是很大。
  • 交易一般是确定的,所以OLTP是对确定性的数据进行存取。(比如存取款都有一个特定的金额)
  • 并发性要求高并且严格的要求事务的完整、安全性。(比如这种情况:有可能你和你的家人同时在不同的银行取同一个帐号的款)。

当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。

“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。

OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。

OLTP

http://baike.baidu.com/view/277075.htm

 

6. primary key和unique key的区别是什么?

答: 这两种键都在他们定义的列上强制唯一性. 但是默认的, primary key会在列上创建一个clustered index, 而默认unique key会在列上创建一个non clustered index. 另一个主要的区别就是, primary key不允许空值(NULL), 而unique key只允许一个NULL.

 

7. Delete命令和Truncate命令的区别是什么?

答: Delete命令会从table中移除满足我们提供了where子句的条件的特定的行. Truncate命令会从table中删除所有的行, 命令运行结束之后, 表中不会有任何数据留下.

其他区别如下:

Truncate

  • Truncate运行更快, 会比Delete命令使用更少的系统资源和transaction log资源.
  • Truncate通过释放用来存储table中数据的data page来移除数据, 并且在transaction log中只有释放页面的信息.
  • Truncate从表中移除所有的行, 但是表结构, 列, constraints, index等等都保留. 被Identity使用的指向新row的counter被重置到列的seed上.
  • 你不能在被Foreign Key引用了的表上执行Truncate table操作.
  • Trancate 是不能被roll back的.
  • Trancate是DDL command.
  • Truncate会重置表的identity.

 

Delete

  • Delete一次删除一行, 并且在transaction log中为删掉的每一行添加一条记录.
  • 如果你想要保留identity counter, 你需要使用delete命令. 如果你想要删除表的定义以及表中的数据, 你需要使用drop table命令.
  • Delete可以被用在一个没有where子句的语句里.
  • Delete可以激活trigger.
  • Delete可以被roll back.
  • Delete是一个DML command.
  • Delete不会reset table的identity.

 

什么是Identity属性?

Identity columns可以被用来生成Key value. 列的Identity属性会保证:

  • 任何新的value都会基于当前的seed和increment来生成.
  • 某transaction的任何一个新value都与该表上并发的其他transaction的value不同.

IDENTITY (Property) (Transact-SQL)

http://msdn.microsoft.com/en-us/library/ms186775.aspx

 

什么是DDL command?

SQL command是用在database上的执行某数据处理任务的指令. SQL command不光能被用来搜索数据库, 还可以被用于执行许多其他的功能, 比如说, 创建表, 向表中添加数据, 修改数据, 删除表, 对用户设置权限. SQL command被根据他们的功能分为4个主要的类别:

  • Data Definition Language (DDL) - 这类命令允许你:
    • 创建,修改,删除schema objects
    • 赋予,激活privileges和roles
    • 为data dictionary添加comments

Create, alter, 和drop命令需要对被修改的对象的exclusive的访问. 比如说, 一个alter table命令会因为另一个用户有一个在同一张表上进行中的transaction而失败.

  • Data Manipulation Language (DML) - 这些command是用来存储, 取回, 修改, 和删除数据的. 这些命令是select, insert, update和delete.
  • Transaction Control Language (TCL) – tranaction control命令是用来管理DML 命令所作的changes的. 这些修改都是影响到data的. 这些命令是commit, rollback, 和savepoint.
  • Data Control Language (DCL) - 这些命令被用来船舰role, permission, 和referential integrity, 还被用来控制对数据库的访问. 这些命令提供对数据库object的安全控制. 这些命令是grant和revoke.

SQL COMMANDS: DDL,DML, TCL, DCL

http://www.sqlserverspecialists.com/2012/01/sql-commands-ddldml-tcl-dcl.html

 

资料来源

=======================

How to answer SQL Server Common Questions interview questions?

http://www.indiabix.com/technical/sql-server-common-questions/

500 Sql server interview questions and answers

http://www.careerride.com/SQLServer-Interview-Questions.aspx

SQL Server基础知识三十三问 (1-7)的更多相关文章

  1. SQL Server基础知识三十三问 (15-21)

    15. 存储过程可以调用自己么, 或者说可能有递归的存储过程么? SP nesting最多可以到多少层? 答: 可以的. 因为Transact-SQL 支持递归, 你可以编写可以调用自己的存储过程. ...

  2. SQL Server基础知识三十三问 (7-14)

    8. 一般什么时候使用update_statistics命令? 答:  这个命令基本上是在很多数据被处理过了之后才使用的. 如果大量的删除, 修改, 或这大量的数据插入已经发生了, 那么index就需 ...

  3. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  4. Sql Server 基础知识

    Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...

  5. SQL Server基础知识

    1.SQL Server表名为什么要加方括号? 这个不是必须要加,但表名或字段名如果引用了sqlserver中的关键字,数据库会不识别这到底是关键字还是表名(或字段名)时就必须要加. 比如,一个表名叫 ...

  6. SQL Server 基础知识/数据类型/数值类型

    数据库设计简单地来讲,也就是设计表格的过程. 表格存储的数据是可以理解为一个二维表,由行和列组成. 原则上来讲,一个数据库只需要一个字段,一个数据类型就可以解决所有的问题,但是这样做并不明智,所以一般 ...

  7. MS sql server 基础知识回顾(二)-表连接和子查询

    五.表连接 当数据表中存在许多重复的冗余信息时,就要考虑将这些信息建在另一张新表中,在新表中为原表设置好外键,在进行数据查询的时候,就要使用到连接了,表连接就好像两根线,线的两端分别连接两张表的不同字 ...

  8. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

  9. 数据库开发基础-SQl Server 基础

    SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language  结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...

随机推荐

  1. Python教程(一)Python简介

    Python就为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,被形象地称作“内置电池(batteries included)”.用Python开发,许多功能不必从零 ...

  2. DateFormat 线程安全

    SimpleDateformat 线程不安全 SimpleDateFormat 继承自 DateFormat, SimpleDateFormat中的parse方法override父类DateForma ...

  3. Java 8中你可能没听过的10个新特性

    lambda表达式,lambda表达式,还是lambda表达式.一提到Java 8就只能听到这个,但这不过是其中的一个新功能而已,Java 8还有许多新的特性——有一些功能强大的新类或者新的用法,还有 ...

  4. PlayMaker GUI跟随布局的使用

    PlayMaker GUI跟随布局的使用   PlayMaker提供一种的特殊的GUI布局方式GUI Layout (Begin) Area Follow Object.这种布局可以在特定游戏对象上显 ...

  5. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具

    开发Xamarin.Forms应用程序需要的工具 Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具,2014年5月8日在发布的Xamrin 3中引进了Xamarin.Fo ...

  6. RxSwift 系列(二)

    前言 Subject是一个代理,它既是Observer,也是Observable.因为它是一个Observer,它可以订阅一个或多个Observable;因为它是一个Observable,它又可以被其 ...

  7. 【BZOJ 2671】 2671: Calc (数论,莫比乌斯反演)

    2671: Calc Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 303  Solved: 157 Description 给出N,统计满足下面条件 ...

  8. bzoj4556: [Tjoi2016&Heoi2016]字符串 (后缀数组加主席树)

    题目是给出一个字符串,每次询问一个区间[a,b]中所有的子串和另一个区间[c,d]的lcp最大值,首先求出后缀数组,对于lcp的最大值肯定是rank[c]的前驱和后继,但是对于这个题会出现问题,就是题 ...

  9. 【最小路径覆盖】BZOJ2150-部落战争

    [题目大意] 给出一张图,'*'表示不能走的障碍.已知每只军队可以按照r*c的方向行军,且军队与军队之间路径不能交叉.问占据全部'.'最少要多少支军队? [思路] 首先注意题意中有说“军队只能往下走” ...

  10. Mac 配置几个环境变量

    终端    open -t ~/.bash_profile  打开.bash_profile export PATH=${PATH}:/Users/maxinliang/Android/sdk/pla ...