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)模式访问.使 ...
随机推荐
- Codeforces Round #371 (Div. 1) D - Animals and Puzzle 二维ST表 + 二分
D - Animals and Puzzle #include<bits/stdc++.h> #define LL long long #define fi first #define s ...
- Oracle 子查询和组函数练习
SELECT * FROM emp; SELECT * FROM dept; 1.查询公司员工工资的最大值,最小值,平均值和总和. SELECT MAX(sal) AS 工资最大值, MIN(sal) ...
- 【SpringBoot】关闭HttpClient无用日志
环境: SpringBoot pom依赖了apache.commons.HttpClient: <!--httpclient--> <dependency> <group ...
- Spring JDBC主从数据库访问配置
通过昨天学习的自定义配置注释的知识,探索了解一下web主从数据库的配置: 背景:主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器 ...
- 欧拉路小结 JZYZOJ1210 骑马修栅栏
现在写到欧拉路,理解起来并不算特别困难...吧... 但是非常恶心的是每次都要调试半天,做不到一遍两遍就能ac 每次写程序都对于程序的整体构架没有清晰的思路,想到哪里写到哪里真的是个非常差的习惯[尽管 ...
- VK Cup 2016 - Round 1 (Div. 2 Edition) A. Bear and Reverse Radewoosh 水题
A. Bear and Reverse Radewoosh 题目连接: http://www.codeforces.com/contest/658/problem/A Description Lima ...
- zoj 1610 Count the Colors 线段树区间更新/暴力
Count the Colors Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/show ...
- linux基础命令学习(二)文件和目录操作
1.变换当前目录(change directory) cd /home 进入 '/ home' 目录' (change directory) cd .. 返回上一级目录 cd .. ...
- Android EditText 限制输入为ip类型
editText.setInputType(InputType.TYPE_CLASS_NUMBER); String digits = "0123456789."; editTex ...
- [前端]使用JQuery UI Layout Plug-in布局
引言 使用JQuery UI Layout Plug-in布局框架实现快速布局,用起来还是挺方便的,稍微研究了一下,就能上手,关于该布局框架的材料,网上也挺多的.在项目中也使用到了,不过那是前端的工作 ...