Microsoft SQL Server
Common issues:
named pipes provider, error 40- could not open a connection to SQL Server:
http://stackoverflow.com/questions/20798032/provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server
SQLserver 是否区分大小写的设置
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。 如: Chinese_PRC_CS_AI_WS 前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。 排序规则的后半部份即后缀 含义: _BIN 二进制排序 _CI(CS) 是否区分大小写,CI不区分,CS区分 _AI(AS) 是否区分重音,AI不区分,AS区分 _KI(KS) 是否区分假名类型,KI不区分,KS区分 _WI(WS) 是否区分宽度 WI不区分,WS区分
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。 区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项, 比较还将重音不同的字母视为不等。 区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。 区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。
1. create table
1) use keyword "create table"
create table Student(id int, name varchar(20))
2) create table which has same structure based on existing table
select * into table2 from table1
3) insert data to table2 by using existing table's columns, this method should create table table2 firstly, then insert data
create table table2(id int,name varchar(20),age int)
insert into table2 select id ,name,18 from table1
2. Alter table
3. Drop table
4. the execution order about sql scripts
5 store procedure: 已预编译为一个可执行过程的一个或多个sql语句
advantages:
a: SQL语句在创建时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析,优化,并给出最终被存在系统表中的存储计划,这样,执行时便可以节省开销
b:降低网络开销
存储过程调用时只需要提供存储过程名和必要的参数信息,从而降低网络流量
c: 便于进行代码移植
可以随时对存储过程进行修改,但应用程序代码却不受影响,从而极大提高了程序的可移植性
d:
6 function
7 trigger
8 view
9 temp table and table variable
10 聚合函数
11 transaction
12 performance
13 index 聚合索引和非聚合索引
14 constraint
15 keyword' use
16 execution plan
17 with cte as
18 data convert
19 分页
20 查询区分大小写
21 openrowset
22.三范式
http://blog.csdn.net/famousdt/article/details/6921622
性能优化:
1. select 子句中避免使用" * ",
2. 用exists 代替IN, 用not exists代替Not in
3. is null 或 is not null。判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的。即使索引有多列的情况下,只要这些列中有一列还有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。
4. >以及 <操作符
大于或小于操作符一般情况下是不用调整的,因为它有索引就会采用索引查找,但有的情况下可以对它进行优化,如一个表有100万记录,一个数值型字段A,30万记录的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3。那么执行A>2与A>=3的效果就有很大的区别了,因为A>2时ORACLE会先找出为2的记录索引再进行比较,而A>=3时ORACLE则直接找到=3的记录索引。
5. Like操作符
LIKE操作符可以应用通配符查询,里面的通配符组合可能达到几乎是任意的查询,但是如果用得不好则会产生性能上的问题,如LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引。
6. Union操作符
Union在进行表链接后悔筛选掉重 复的记录,所以在表连接之后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。推荐使用Union all代替union,因为union all操作只是简单的将两个结果合并后就返回。
7.