今天学完了sql视频,又学到了不少的新知识,笔记又写了不少:
1、 Nvarchar、char和char(n)的区别:char(n)不足长度n的部分用空格填充。Var:variable,可变的。
2、 创建一个guid类型的数据:Guid id=Guid.NewGuid();
3、 在定义表的时候主键设置成uniqueidentifier类型,添加数据的时候要用newuid()方法添加。给Guid类型为主键的列设定默认值:在设默认值的地方填newid(),就会自动生成,但是在向表中插入数据的时候,默认值列不会立即显示出来,需要刷新(很少这么干)。
4、 删除表中的全部数据:delete from t_person
5、 把两个查询结果结合到一个表中用union:select fname from t_Employee union select fname from t_TempEmployee(会自动取消重复的记录,如果不想取消重复的记录用union all)
6、 Sql中也有substring用法:selectsubstring(‘qwew’,2,3)从第二个字符开始,截取长度为3的字符串,注意,开始是从1开始的,和c#中不一样,c#中是从0开始
7、 Dateadd(day,3,getdate())在原来的基础上加3天
8、 DateDiff(year,,FInDate,getdate())计算两个时间差,单位是年
9、 Select Datepart(year,cast(‘2008-11-23’ as datetime)),结果是2008,其中cast是类型转换,datepart是取一部分
10、 Select isnull(FName,’佚名’)as 姓名 from t_employee,其中isnull的意思是如果记录不为空,就返回结果中的姓名,如果为空就返回“佚名”
11、 Case的用法:和c#中的switch一样
Select FName
(
Case FLeval
When 1 then ‘普通用户’
When 2 then ‘会员’
When 3 then ‘VIP’
Else ‘未知客户类型’
end
) as 客户类型
From T_Customer
12、 高效分页方法:在强类型DataSet中增加取得所有数据条数的方法QueryCount,增加取得指定行数范围数据的方法GetPageData:select * from (select…Row_Number() over(order by….) rownum from T_Links) t where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows。红色的部分不能改;代码部分:先按照正常的流程配置ObjectDataSource,让ListView自动生成Template,再修改ObjectDataSource的EnablePageing=”true”,SelectCountMethod设置为取得的方法。
13、 如何建立外键:在另一个表设一个与主表中的主键(或有唯一索引)有联系的字段,再建立关系,此字段就是外键了。
设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact sql语句,过程如下:
--增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:
begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
foreign key (authorid)
references dbo.author([id]) on update cascade on delete cascade
--删除外键约束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction
上面on update cascade,on delete cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。
14、 建立一对一关系:A和B一对一时,假设A是主表,B是从表。A的主键是B外键。最关键的是,B中的外键,也做主键。这样就实现一对一了。
15、 建立一对多关系:例如有课程表(一)(cource)和教师表(多)(teacer),cource表中cId为主键,则teacher表中必须有cId字段,此字段不能为该表的主键,然后再建立外键关系,主键表为cource(cId),外键表为teacher(cId),这样就建立了一对多关系了。
16、 建立多对多关系:例如,a表和c表要建立多对多关系,a表中的主键为A,c表中的主键为C。需要在a和c之间建立另一张b表,b表中的字段必须包括A和C,并且A和C必须也是b表中的主键,这样就建立了a表和c表的多对多关系了。
17、 如何为一张表的多个字段设置主键:单击“管理索引和键”à列右边的按钮,选择要设置主键的字段。
浙公网安备 33010602011771号