无情小侠

创建SQL基本语句

1,创建数据库:Create  Database 数据库名称;

      例题:创建数据库:名称为B2C;

      解:create database B2C

     2,创建数据表:Create Table 表名;

      例题:创建学生表:表名为Student

       解:create table Student

     3,创建外键:alter table 外键表 add constraint 外键名称 foreign key (外键列名称) references 引用表名称(主键);

     4,创建索引:create [unique(唯一索引)][clustered(聚集索引)][nonclustered(非聚集索引)] index 索引名 表名(列名);

         例题:对学生表的姓名列建一个聚集索引:

          create clustered index Student (StuName);

     5,创建视图:create view 视图名称[字段] [with <属性(encryption对视图文本加密),schemabinding将视图绑定到构架上,>] as select ……查询语句;

        例题一:对Student表创建绑定到构架上的视图,名称为Loveing1;

        解:create view Loveing1 with schemabinding as select * from Student

        例题二:对Student表创建带with check option 的视图,名称为Loveing2;

        解:create view Loveing2 as select * from Student with check option ;

     6,创建存储过程;create proc 名称 [{@parameter data_type}]  as  begin SQL语句 end;

        例题:对学生表创建一存储过程名称为proc_Student ,查询性别为'女'的记录;

         解:create proc proc_Student @sex as begin select sex from Student @sex=sex;     创建

          执行:exec proc_Student '女';

      7,存储过程定义局部变量:declare @变量名 数据类型

         例题:定义局部变量@age查询学生编号为2的年龄;

         解:declare @age =age from Student where Id=2 select @age

      8,创建触发器:create trigger 名称on [table,view] {[for,after,instead of]}{[insert,update,deleted]}[not for replication] as 执行的T-SQL语句

        inserted 表临时保存因插入更新是所涉及到的副本,即用户在执行力或更新在执行下一个sql语句之前都会在inserted表中保存一个副本

        deleted:表临时存储在删除更新时从数据库表中所删除的数据副本;具体操作实例如下:     

        例题一:对学生表创建一个删除触发器,确保Id=3的数据不能为删除,名称为deleted_Student

        解: create trigger deleted_Student  on for deleted as begin if (select Id form deleted)=3 begin print '当前数据不能被删除' rollback end

        例题二:对学生表创建一个修改触发器,修改工资,修改值不能小于500,名称为update_mark

        解: create trigger update_mark on for update as  declare @MinNumber int begin select @MinNumber=Mark form Student if @MinNumber<500 begin print '修改的工资不能小于500' rollback tran end end   

       例题三:对学生表创建一个插入触发器,判断当前是否完成,完成则在学生工资表中添加当前的业务报酬

        解:create trigger insert_ on 报酬表 for insert as if(select 状态列  form inserted)='是' begin declare @sid varchar(10),@bid varchar(5),@pay int select @sid =sid,@bid=bid form inserted select @pay =业务报酬 form 报酬表 where 报酬表Id=@bid  update aset wage=wage+@pay where sid=@sid 

posted @ 2011-08-02 18:30  码农界的卧底  阅读(515)  评论(0编辑  收藏  举报