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)模式访问.使 ...
随机推荐
- thinkphp5.0 配置
ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配置.公共配置.模块配置.场景配置和动态配置. 对于有些简单的应用,你无需配置任何配置文件,而对于复杂的要求,你 ...
- 洛谷——P3376 【模板】网络最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- centos 6.5 安装mysql 5.6.35--libc.so.6(GLIBC_2.14)(64bit)
[参考] http://blog.csdn.net/cpplang/article/details/8462768 http://www.linuxidc.com/Linux/2015-04/1160 ...
- Unity Shader 之 uv动画
Unity 动画 Unity Shader 内置时间变量 引入时间变量 名称 类型 描述 _Time float4 t是自该场景加载开始所经过的时间,4个分量分别是(t/20, t, 2t, 3t) ...
- 【BZOJ 2039】 2039: [2009国家集训队]employ人员雇佣 (最小割)
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 1511 Solved: 728 Descri ...
- 【BZOJ 2460】线性基
2460: [BeiJing2011]元素 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力 ...
- android 网络
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android - async - http 安卓 异步 超文本传输协议 xUtil a ...
- noip2012疫情控制 题解
题目大意 给出一棵n个节点的树,根是1,要在除根节点以外的点建立检查点,使得从每条根到叶子的路径上都至少存在一个检查点.检查点由军队来建立.初始军队的位置是给定的,移动军队走一条边需要花费这条边的权值 ...
- [CF1043G]Speckled Band
题意:给定字符串$s_{1\cdots n}$,多次询问它的一个子串$s_{l\cdots r}$能否被切割成多个部分,使得至少有一个部分出现两次,且切出来的本质不同字符串数最少 做一道题学了两个算法 ...
- mof提权原理及实现
关于 mof 提权的原理其实很简单,就是利用了c:/windows/system32/wbem/mof/目录下的 nullevt.mof 文件,每分钟都会在一个特定的时间去执行一次的特性,来写入我们的 ...