trssc 发表于 2017-12-7 23:33:16

SQL Server插入数据和删除数据

  首先在我的Student表中插入几条数据,由于我的表已经创建完成了,所以就没有创建表的 sql 语句了,不过可以看我的上一篇文章:
  http://www.cnblogs.com/Brambling/p/6649350.html
  插入数据sql语句:



 insert into Student(S_StuNo,S_Name,S_Sex,S_Height)
   select '001','项羽','男','190' union
   select '002','刘邦','男','170' union
   select '003','貂蝉','女','180' union
   select '004','天明','男','155' union
   select '005','少司命','女','175'
  当然,也可以像下面这样写,不过我个人习惯用上面这种方法。



   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('001','项羽','男','190')
   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('002','刘邦','男','170')
   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('003','貂蝉','女','180')
   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('004','天明','男','155')
   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('005','少司命','女','175')

  SQL Server语句把一个表的数据插入到另一个表,有以下两种方法:
  第一种,当要插入的表(Student_back)不存在时




   select * into Student_back from Student where S_Sex='男'

  未指定具体列,就会自动创建一个跟(Student)一样的表并把数据插入

  指定具体要插入的列就会根据指定的列创建一个表,并把数据插入
  第二种,当要插入的表本身便存在时




   insert into Student_back(S_StuNo,S_Name,S_Sex,S_Height)
   select S_StuNo,S_Name,S_Sex,S_Heightfrom Student
   where S_Sex='女'

  因为字段 S_Id 是标识列,不能有显示插入的值,所以这里必须指定要插入的列。
  前面说了创建表的sql语句,下面说说删除表的sql语句:
  确切的说删除表的方式有 drop:



drop table Student_back
  这样就删除表了,这样的删除不仅会删除表中的数据,还包括表结构、字段、视图、索引、触发器和依赖的约束等等。此方法慎用!!!
  truncate:



truncate table Student_back
  这样只是删除表中的所有数据,会保留表结构、字段、约束、索引等等,但是不能加 where 条件限制。
  如果表存在 FOREIGN   KEY (外键约束),则不能使用此方法,应使用不带 where 条件的 delete 语句,但 truncate 语句比 delete 语句执行要快。
  delete:



delete from Student_back where S_StuNo='001'
  这样的删除同样是删除表中的数据,并且可以添加 where 条件限制,还可以激活 trigger (触发器)。
页: [1]
查看完整版本: SQL Server插入数据和删除数据