--select...from...where... 查询
--insert into...values() 插入
--update...set... 改
--delete from...where... 删
--drop table ..删除表
--top 查询前几行。跟在select后面
--distinct 去掉重复
--order by desc 降序 asc 升序 order by 后边跟多个排序,先排前面的,然后在不改变前面的基础上在排序后边的!
--分组 group by 后边跟列名,对那一列排序就显示那一列!!
-- + - * / 算数运算符 <= >= 比较用算符
-- 逻辑用算符 and or not
-- all any some in not
--in 在什么范围之类 in(,),not in(,)
--子查询 就是使用查询语句查询一列数据,作为其他查询语句的的条件的参数 .. 相关子查询--是同一个表的子查询
--外键 受约束的表叫外键表,约束的数据源叫主键表;要想加外键,必须有主键; 要想删外键表,必须删主键表;
--作为外键的数据源的列,必须要是唯一键。选一列必须是主键或unique。
--时间日期函数:year(时间日期列) , month(),day() ,datediff(year,csrq,getdate()) as age getdate()当前系统日期时间
--union all 纵链接
--isdate() 判断一个时间是否为datetime //msdn查找
--dateadd(day,5,''), print( datename(weekday,'2015-4-23')),
-- 表链接 union all。。。注意:列数对应,列的先后顺序对应。any, all 只能在比较运算符一起使用
--ltrim rtrim 去除空格
--substring('',1,2) 截取字符串
--replace('','','') 替换
--space() 空格
--patindex 索引
--stuff('', , ,'')插入
--cast(''as int) convert(int,'')类型转换
--abs() 绝对值 ceiling 上线 floor 下线
--存储过程 declare 定义变量 ,@开头,
/*declare @bianliang int
set @bianliang =10 变量赋值
select @bianliang
print @bianliang
eg: declare @bianliang1 int,@bianliang2 int
set @bianliang1 =1
set @bianliang2=2
select @bianliang1+bianliang2
*/
--create proc(procedure) 存储过程名 创建存储过程
--as 中间写存储过程内容
--select* from
--go
--存储过程创建之后,会存储到对应数据库的可编程性->存储过程文件夹
--exec 存储过程名 执行存储过程
/*
create proc(procedure) returncount
as
declare @a int
select @a=count (* )from Student
return @a
go
declare @jieshou int
exec @jieshou=returncount
print @jieshou
*/
--带参数的存储过程
/*
create proc(procedure) returncount
@a int, //输入参数 ,用逗号隔开
@b int
as
return @a+@b
go
declare @c int
exec @c=returncount 3,5 带参数的存储过程,需要存储过程名后输入参数,用空格隔开,参数之间用逗号隔开
print @c
*/
/*
create proc p
@a int //输入参数 ,用逗号隔开
as
if(@a>0 and @a<2)
begin
return @a
end
go
declare @c int
exec @c=p 3
print @c
*/
--视图 view 就是一个虚拟的表
--create view view_1 as 删除 drop 修改 alter
--子查询查询出的结果集可以作为一个表使用 ()as table名
--分页查询
--select top 2 * from Student where Sno not in (select top 4 Sno from Student )
/*create proc wannengfenye
@nowye int,--当前页
@numbers int, --一显示行数
@tablename varchar(50),--表名
@zhujian varchar(50)--表的主键
as
exec ('select top ('+@numbers+') *from '+@tablename+' where '+@zhujian+' not in
(select top (('+@nowye+'-1)*'+@numbers+') '+@zhujian+' from '+@tablename+' )')
go
exec wannengfenye 2,1,'student','sno'
*/
--约束 对列的数据值起一个约束作用,规定列支的范围; 主键 primary key,外键 reference key,非空 not null,自增长identity(),唯一 unique,check约束
--set 数据库给变量赋值用set
--数据库的备份 在不影响源数据库的运行情况下,将数据库备份到一个.bank结尾的文件下;备份还原 将 bank文件还原到数据库
--右键 任务 备份 数据库右键 还原数据库
--分离 将数据库与数据库服务分离,附加 将数据库mdf文件,附加到数据库上
--右键 任务 分离 mdf文件 数据库右键 附加
--触发器 trigger 就是一种特殊的存储过程 , 触发器是通过对数据库的操作,来引发。存储过程是通过认为的exec来执行。
--create trigger student_insert 触发器名 on student 触发器所在的表
--for(after)/(instead of) insert (update/delete) 在执行insert之后自动执行操作 as ......go
--deleted 是一个临时表,里边存着你有删除的数据 as select * from deleted go