--通过insert select 插入数据到已存在的表中
create table grade1 
(
id int ,
name varchar(50)
)

insert into grade1 select * from grade 

select * from grade1

--通过select into 语句将现有表中的数据添加到新表中,执行两边的话(数据库中已存在名为 'Adress' 的对象。
select gradeid,gradename into Adress from grade 

select * from Adress

--插入多行数据,通过union进行插入数据
--union all一次插入多行数据
--union 一次只插入一条数据
insert into grade (gradename)
select 'Y2'union all
select 'Y2'union all
select 'Y2'union all
select 'Y2'union all
select 'Y2'

-------5行受影响
insert into grade (gradename)
select 'Y21'union 
select 'Y22'union 
select 'Y23'union 
select 'Y24'union 
select 'Y25'

--一行受影响,因为值是重复的,union all直接进行插入,不管你是不是重复的
insert into grade (gradename)
select 'Y2'union all
select 'Y2'union all
select 'Y2'union all
select 'Y2'union all
select 'Y2'

select * from grade

--默认值的插入方法,邮箱、手机号、性别都是默认值
--注意,前面没有列名的话所对应的默认值必须要加default,否则会报错的
select * from student
insert into student values('12452','123456','于谦',1,default,'山东济南','1996-06-09',default,26)
--下面的这句话就可以
insert into student(studentno,loginpwd,studentname,gradeid,phone,address,borndate,email,age)  values('124521','123456','于谦',1,default,'山东济南','1996-06-09',default,26)

--修改数据
update grade set gradename = 'hs' where gradeid = 12
--无法更新标识列
update grade set  gradeid = 20, gradename = 'hs' where gradeid = 12

--删除数据
select * from student
--删除不了,DELETE 语句与 REFERENCE 约束"FK_result_student"冲突。该冲突发生于数据库"myschool",表"dbo.result", column 'studentno'。因为成绩表里面有该学生的成绩
delete from student where studentno = '3'
select * from result
--先删除字表的数据
delete from result where studentno = '3'

--使用truncate删除表中的数据,注意标识列会重新开始
--只能全表删除。这个不是简单的删除记录,这个命令叫删减表,内部机制与delete是不一样的。
--truncate table student

select * from grade

select * from student