首页 > 代码库 > Sql Sever语句 (续2)

Sql Sever语句 (续2)

日期时间

把日期类型的字段下默认值或绑定里的 设置成getdate()   ,新建字段时候不设置会自动获取当前服务器时间

在当前时间加上xx年xx月xx天

select datedd(yy,100,getdate())      在当前时间加上100年

select datedd(mm,5,getdate())    在当前时间加上5个月

select datedd(dd,34,getdate())    在当前时间加上34天

 

 

 

联合查询:将两个表的数据通过筛选出所用信息导出


select UI.UserId,UI.UserName,UI.QQ,UI.ReaName,SS.ScoreId,SS.Chinese   --查询内容

from UserInfo UI left join StuScore  SS on        --两个表的名称 起个别名

UI.UseId=SS.UserId  

    left join  和right join     以左/右边的表为主  不够补齐

    inner join 两边都有

三个以上表格思路:先将两个表格做联合查询,结果做成一个表 起个名字,在与第三个表格做联合查询

 

约束:

  控制字段在一定范围值内,避免脏数据;

设计》某字段右键》添加约束》修改表达式    如年龄表达式  Age>=0 and Age<=120

    修改后保存

 

添加;

方式一:

insert into parenet values (7,‘dsffs‘,‘吊死扶伤‘)      --添加字段   parenet表  字段按顺序加,主键不加  为空用空字段(但也必须加)

方式二:
insert into Parent (UserId,MMName) values (8,‘dsaf‘)  --如只加两个字段UserI和MMName  其他没加的为空; 

修改:

更新:

update Parent set MMName=‘ddd‘,FatherName=‘fdgs‘  where ParentId=6

删除:

delete Parent where ParentId=6

 

把一个表的数据复制到另一个表:

insert into A(UserId,AMMName,AFName) select UseId, MMname,FatherName from Parent

 

 

索引:

聚集索引:如id,连贯的(一个表只有一个聚集索引  一般是主键 一般不更改)

非聚集索引:不连贯的,多个...  ...

建立索引后可以加快查询速度,但是不一定全部建立,仅查询量达的字段,不然会产生大量索引碎片,需定期清理;

存储过程:

存储过程是写在数据库里面,好处:效率高、安全系数高(防止sql注入)

技术分享

1)基本语法

Eg:

create proc procCategorySelect

(

  @name varchar(200),

  @age  int

)

as 

select * from Category where [name]=@name and age=@age

1) 查看结果exec procCategorySelect ‘xudads‘,11

2) 更改/删除存储过程

ALTER proc

Drop proc 

 

 视图、

 

触发器、

 

数据库还原和备份

 

 

定时作业(备份)

 

Sql Sever语句 (续2)