SQL Server基础知识三十三问 (1-7)
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的区别是什么?
答: 区别如下.
- Clustered index是一种特殊类型的index, 特殊在表中的记录的重新排序的存储是物理的. 所以, 表只能有一份clustered index. clustered index的叶节点包含数据页面.
- Non clustered index中, index的逻辑顺序和存储在磁盘上的物理顺序是不匹配的. 非clustered index的叶节点不包含数据页面, 取而代之的是index rows.
3. 一张表可以有多少种不同的索引配置?
答:
- 没有索引.
- a clustered index
- a clustered index and many non clustered index
- a non clustered index
- many non clustered index
4. SQL Server 有哪几种collation sensitivity?
答:
- Case sensitivity-字母大小写敏感. 举例: 如果A和a, B和b被认为是一样的, 那么就是大小写不敏感.
- Accent sensitivity- 重音敏感. 举例: 如果 a 和 á, o a和 ó 被认为是一样的, 那么就是重音不敏感.
- Kana sensitivity- 日文假名敏感. 举例: 如果假名字符Hiragana 和Katakana 被认为是一样的, 那么就是假名不敏感.
- 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)的更多相关文章
- SQL Server基础知识三十三问 (15-21)
15. 存储过程可以调用自己么, 或者说可能有递归的存储过程么? SP nesting最多可以到多少层? 答: 可以的. 因为Transact-SQL 支持递归, 你可以编写可以调用自己的存储过程. ...
- SQL Server基础知识三十三问 (7-14)
8. 一般什么时候使用update_statistics命令? 答: 这个命令基本上是在很多数据被处理过了之后才使用的. 如果大量的删除, 修改, 或这大量的数据插入已经发生了, 那么index就需 ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- Sql Server 基础知识
Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...
- SQL Server基础知识
1.SQL Server表名为什么要加方括号? 这个不是必须要加,但表名或字段名如果引用了sqlserver中的关键字,数据库会不识别这到底是关键字还是表名(或字段名)时就必须要加. 比如,一个表名叫 ...
- SQL Server 基础知识/数据类型/数值类型
数据库设计简单地来讲,也就是设计表格的过程. 表格存储的数据是可以理解为一个二维表,由行和列组成. 原则上来讲,一个数据库只需要一个字段,一个数据类型就可以解决所有的问题,但是这样做并不明智,所以一般 ...
- MS sql server 基础知识回顾(二)-表连接和子查询
五.表连接 当数据表中存在许多重复的冗余信息时,就要考虑将这些信息建在另一张新表中,在新表中为原表设置好外键,在进行数据查询的时候,就要使用到连接了,表连接就好像两根线,线的两端分别连接两张表的不同字 ...
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
- 数据库开发基础-SQl Server 基础
SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language 结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...
随机推荐
- 选项卡栏控制器(UITabBarController)
选项卡栏控制器管理的每个场景都包含一个UITabBarItem,它包含标题.图像和徽章. 在场景里可以通过tabBarItem属性来获得UITabBarItem的引用.例如:[self.tabBarI ...
- React Native 系列(二)
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- css去除chrome下select元素默认border-radius
在mac下的chrome,对于select元素会默认有一个border-radius,当然有些情况下并不需要圆角,所以就要去掉. 比较常用的方法是: .select { -webkit-appeara ...
- FastReport.Net使用:[29]调用存储过程1
1.创建存储过程sp_querycourse,用于查询学生成绩. 2.在FastReport.Net报表设计器中,通过 数据-->添加数据源 来打开数据向导. 选择数据源,添加数据连接. 3.在 ...
- BZOJ1087【状压DP】
题目链接[http://www.lydsy.com/JudgeOnline/problem.php?id=1087] 题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击 ...
- 压测工具Webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,安装使用也特别方便,并且非常小. 1.系统:Linux 2.编译安装: [root@~]$wget http://blog.s135.c ...
- [TC6194]AllWoundUp
[TC6194]AllWoundUp 题目大意: 有\(A\)和\(B\)两个人.\(A\)在平面上游走,\(B\)会一直盯着\(A\)看,站在\(x\)轴某个位置上不动,并随着\(A\)的运动旋转身 ...
- 《深入理解Spark-核心思想与源码分析》(五)第五章任务提交与执行
即欲捭之贵周,即欲阖之贵密.周密之贵,微而与道相随.---<鬼谷子> 解释:译文:如果要分析问题,关键在于周详,如果要综合归纳问题,关键在于严密.周详严密的关键在于精深而与道相随. 解词: ...
- PHP -- 配置Apache遇到的问题
在本地电脑用XAMPP+php+mysql配置项目的时候,能够正常运行. 但是通过远程进入VPN配置的时候,配置方式一样,但是老是无法显示. 后来看了错误日志后,发现之前在没完全配置完的时候运行,生成 ...
- Linux知识(5)----LINUX下GDB调试
命令 解释 示例 file 加载被调试的可执行程序文件.因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径. (gdb) file gdb-sample r c Run的简 ...