您的位置:首页 > 职场人生

黑马程序员笔记——数据库sql杂碎

2012-08-04 16:29 225 查看
 

Windows Phone 7手机开发、.Net培训、期待与您交流!

数据sql杂碎

   一个项目也许可以有多个数据库,把数据库按业务分类的话,就可以实现简单的分布式存储

primarykey 主键 数据行的唯一标示

主键有两种选用策略:业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,如身份证,银行账户等;这种就需要手工增加;逻辑主键是使用没有任何业务意义的字段做主键,而且他是自动生成的 。业务主键很难保证不会变化,所以推荐使用逻辑主键

每为表插入一条数据的,数据库会首先在数据库的系统表中增加一个记录。所以在删除一条数据后,主键id还是会从删除id+1开始.而不是从删除id开始。

Foreignkey 外键 记录表与表的关系。

char 类型会用空格将数据补满到定义的字符长度

varchar 则会是实际的长度,不会补满。一个字符占用一个字节

nvarchar 是将一个字符占用两个字节,存储除了英文和数字外的复杂字体。

不使用列名的插入时必须对除标示列的其他有默认值的列使用default

Truncate 关键字删除表中的数据,并将标示列还原,而使用delete删除数据时标示列是不会还原的

级联删除,设置级联关系以后,当删除外键列时,主键表中的相应数据也会被删掉。

级联更新。也是可以自动更新

count()中的列如果有空值的话,是不会计算的。

[^0]在sql中标示非O

据说子类的构造函数隐式的调用了父类的构造函数,所以说,是子类的构造函数先执行,但是确实是父类的构造函数先执行完,然后子类的构造函数才能执行完。父类在子类构造函数之中

between X and Y 表示 包括X和Y之间的数据,含X和Y

分了组的结果集可以用having()去做筛选,但是普通的结果集就应该用where去筛选。

distinct 后边可以跟多个列 ,用列的组合去除重复值,也就是说

distinct 后边可以跟多个条件。

union all 合并结果集时不会去除重复的数据,如果没有all就会去掉重复的数据 如果在实际中并不要考虑去掉重复数据的话,最好用all,这样效率会高,因为没有all的话需要扫描重复数据。效率低

select DatePart(year,FInDate),count(*) from T_Employee

group by DatePart(year,FInDate) 说明group by 可以和函数一起用,只要函数中的参数包括相应的分组列。

类型转换函数

CAST ( expression AS data_type) 使用as 转换

CONVERT ( data_type, expression) CONVERT 在做时间转换时要用到第三个参数,用来确定输出的时间格式。

join 中 应该是大表在前,小表在后,尽量不要使用别名,最好用前缀区分。

transaction

首先定义

begion transaction

然后判断是否有错误,使用@@error(系统级错误号)

if(无错误)

commit transaction

else

rollback transaction

存储过程 proc

可以带有输出参数

row_number() over(order by 列) 这一个函数在利用存储过程来分页很有用的,主要使用页吗 和页容量两个参数来实现分页功能

Windows Phone 7手机开发、.Net培训、期待与您交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息