,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,课程引入,我们已经创建了数据库,建立了表。,我们在系统的应用程序中所作的添加、删除和修改等操作,如何真正向数据库表中添加数据、修改数据和删除数据呢?,答案:应用,T-SQL,语句完成数据的添加、删除和修改。,学习目标,知识目标:,掌握能够向表中插入数据的方法,掌握更新表中数据的方法,掌握删除表中数据的方法,能力目标:,能够按照给定的要求,正确向表中插入数据;,能够按照给定的要求,正确向表中更新数据;,能够按照给定的要求,正确从表中删除数据;,插入数据,1.,使用,INSERT,命令插入数据,INSERT,语句可向表中添加一个或多个新行。,INSERT,语句在简单的情况下有如下形式:,INSERT INTO table_or_view(column_list)VALUES(data_values),用,VALUES,子句为一行指定数据值。,Data_values,中的数据项要与,column_list,相对应;,注意:在插入记录时,如果某字段的值没有被指定,则这个字段应该是自动标示列,有默认值,或可以为空。,插入数据,向,Student,中插入一名新学生的信息。,Insert into student(sno,sn,sex,date,idcode)values(s7,wu,男,1990-1-1,111111111111111111),以下示例使用,column_list,显式指定插入到每个列的值。,INSERT INTO student(SNO,SN,date,SEX,idcode),VALUES(S8,JIANG,2000-1-1,女,,12222222222222);,插入数据,插入值少于列个数的数据,但前提是确认其他列允许空值。,INSERT INTO s(SNO,SN),VALUES(S9,ZHU);,insert into s values(s8,琳琳,default,20,计算机工程系,),插入数据,2.,将查询结果插入数据表,INSERT,语句中的,SELECT,子查询可用于将一个或多个表或视图中的值添加到另一个表中。使用,SELECT,子查询还可以同时插入多行。,下面用,SELECT,子查询为一行或多行指定数据值。,如何一次向表中插入多行数据(数据块),Insert into values:,每次向表中插入一行数据,Insert into Select:,一次插入的数据块都是从其他数据源获得的,这些数据源包括:,数据库中的另一个表,同一个服务器上其他不同的数据库,另一个,SQL Server,的不同查询或其他数据,同一个表,用,selectinto,插入数据块,SELECT,select_list,INTO,new_table,FROM,table_source,WHERE,search_condition,GROUP BY,group_by_expression,HAVING,search_condition,ORDER BY,order_expression,ASC|DESC,插入数据,将所有女学生的学号、姓名放入新表,F_student,中。,INSERT INTO F_student(SNO,SNAME),SELECT SNO,SN,FROM s,WHERE SEX=,女,;,插入数据,3.,使用图形工具插入数据,使用图形工具插入数据的步骤如下。,(1),在对象管理器中右击要插入数据的表名,出现如图,1,所示的快捷菜单。,(2),在出现的快捷菜单中选择,【,打开表,】,命令,出现如图,2,所示的输入数据窗口。,(3),输入数据后,单击工具栏上的,【,执行,SQL】,按钮,将数据写入数据库引擎中。,插入数据,图,1,快捷菜单,插入数据,图,2,输入数据窗口,插入数据时可能出现错误的原因,试图向非空列插入空值;,插入的数据类型不匹配;,违反了数据完整性约束;,更新数据,创建表并添加数据之后,更改或更新表中的数据就成为维护数据库的日常操作之一。,1.,使用,UPDATE,命令更新数据,语法:,Update,数据表或视图名称,Set,字段名称,=,新值表达式,,,n,From,数据表或视图名称,Where,查询条件,更新数据,使用简单,UPDATE,语句。,UPDATE s,SET AGE=AGE+1;,更新数据,带,WHERE,子句使用,UPDATE,语句,以下示例使用,WHERE,子句指定要更新的行。将选,C2,课程的学生的成绩提高,5%,。,UPDATE s_c,SET score=score*1.05,WHERE CNO=C2;,更新数据,带子查询的,UPDATE,语句。,下面的示例将选修数据库课程的学生的成绩增加,10,分。,UPDATE sc,SET score=score,+,10,WHERE CNO IN,(SELECT CNO FROM c WHERE cn like%,数据库,%),更新数据,2.,使用图形工具更新数据,使用图形工具进行数据更新的步骤如下。,(1),在对象管理器中右击要更新数据的表名,出现快捷菜单。,(2),在出现的快捷菜单中选择,【,打开表,】,命令,出现输入数据窗口。在该窗口中更新需要修改的数据,修改后,单击工具栏上的,【,执行,SQL】,按钮,将数据写入数据库引擎中。,删除数据,1.,使用,DELETE,命令删除数据,DELETE,语句可删除表或视图中的一行或多行。,DELETE,语法的简化形式为:,DELETE table_or_view,FROM table_sources,WHERE search_condition,从,s_c,表中删除所有行,因为该例未使用,WHERE,子句限制删除的行数。,DELETE FROM s_c;,删除满足条件的数据,DELETE FROM s_c where cno=c1;,TRUNCATE TABLE,功能:删除表中的所有行,而不记录单个行删除操作。,语法,TRUNCATE TABLE table_,name,例子:,TRUNCATE TABLE s,TRUNCATE TABLE,TRUNCATE TABLE,在功能上与不带,WHERE,子句的,DELETE,语句相同:二者均删除表中的全部行。但,TRUNCATE TABLE,比,DELETE,速度快,,且使用的系统和事务日志资源少。,DELETE,语句每次,删除一行,,并在事务日志中为所删除的每行记录一项。,TRUNCATE TABLE,通过释放存储表数据所用的数据,页,来删除数据,并且只在事务日志中记录页的释放。,对于由,FOREIGN KEY,约束引用的表,不能使用,TRUNCATE TABLE,,而应使用不带,WHERE,子句的,DELETE,语句,本节小结,可以向表中插入单条记录(,insert values,),也可以向表中批量添加数据,此时数据是从其他的表或对象中取得的(,select into,、,insert select,)。,Update,语句用于更新数据库中的数据。,Delete,语句删除数据库中的数据,删除时,如果没有,where,条件的限制,则会删除整个表中的数据。,