[前言]
开始学习数据库了,按照MS的四本书系列的分类方法,分为T-SQL和develop两部分。
[正文]
1, 确定性函数和不确定性函数
2,关于聚合函数,注意:count(*)和count(a)不一样,前者计算NULL行,后者不计算NULL行;min/max/avg/sum(*)和(a)一样:都忽略NULL行。
聚合函数 (Transact-SQL)
AVG
MIN
CHECKSUM_AGG :某一个字段(主要是字符串类型)的checksum(校验和),主要是为了将来作为index而提高效率使用;
SUM
COUNT
STDEV :标准偏差
COUNT_BIG
STDEVP 总体标准偏差
GROUPING
VAR
MAX
VARP :总体偏差。这三个偏差是什么区别呢?不知道,过后再研究一下。
3,了解having和where的区别
having用于和group by连用(不连也行),以聚合作为having的条件;对象是一组row;对选择结果数据进行再次筛选;
where以单个row做对象;在数据选择之前进行条件限制;
4,字符串函数
ASCII
NCHAR
SOUNDEX
CHAR
PATINDEX
SPACE
CHARINDEX
QUOTENAME
STR
DIFFERENCE
REPLACE
STUFF
LEFT
REPLICATE
SUBSTRING
LEN
REVERSE
UNICODE
LOWER
RIGHT
UPPER
LTRIM
RTRIM
5,表的基本数据类型
Decimal和decimal :确定值的小数,表示长度比较小;
float和real:近似值的小数,表示范围比较大;
nchar和char区别:national char
ntext、text 和 image 以后会基本废弃。
6,数据类型转换
cast( @var as datatype) -- SQL92的标准
convert( datatype, @var [,option])
7,关于timestamp类型,一个表里面只能有一个timestamp列,它是8byte的、全数据库唯一的一个数据。所谓的时间戳,和time、date根本没有任何的关系,只是为了控制同时访问、更新而做的一个简单的锁,没更新该表的一个数据后,这个字段的值都会相应的修改。
[后记]
“为什么顺序、分支与循环是基本逻辑呢”?“作为基本逻辑,它们充备吗?”
Dijkstra说,他基本证明了完备性。