日期:2014-05-16  浏览次数:20533 次

关系型数据库基础之:使用DML语言更改数据

4、使用DML语言更改数据:

 

       添加新数据:
       不管插入是否成功,自动编号都越过去了。
       插入单行记录语句是:
insert into 表名 (列表列名) values(列表值);
       into是insert和目标之间可以使用的关键字。
       表名是插入记录的目标表的名称。
       列名列表指定插入记录目标表的列名,是一个以逗号分隔的列名列表。
       插入多行记录语句是:
insert into 表名 (列名列表) select select语句;
       在insert into语句中,列的数目必须等于从select语句返回的列的数据。
       在insert into语句中,列的数据类型必须与从select语句返回的列的数据类型相同。
       表数据的复制语句是:
       select 列名 into 新表名 form 表名
       能复制名称、数据类型,约束只有非空能复制其他的不能。

 

       更改已有数据:
       更新还可以把某个列的值变为空。列=null简接删除数据。
update 表名 set 新列值列表 where 过滤条件;
update 表名 set 列1=新值1,列2=新值2 where 过滤条件;  
       在使用update语句时需要注意——忽略where子句将会改变表中所有行。
       更新和删除:就算数据没有删除也不报错,语法错误和内容与原有数据产生了影响才报错。

 

       删除数据:
       使用delete删除行:
       delete是把数据表里的记录一行一行的删除。
delete form 表名 where 过滤条件;
       如果不指定where子句,列表所有的行将被删除。
       从列表删除记录时,必须注意维护如引用完整性等关系。如果其他表中有记录连接到了准备删除的记录,为了维护引用完整性,这些记录将
不会被删除。
       使用truncate语句:
       truncate属于DDL,作用是无条件清空,还原到初始状态,后面不能跟其他语句。
truncate table  表名;
       使用delete语句系统将一次一次的处理要删除的表中的记录,从表中删除行之前,在事物处理日志中记录相关的删除操作和删除行中的列值
,以防止删除失败时,可以和使用事物处理日志来恢复数据。
       truncate table则一次性完成删除与表有关的所有数据业操作。另外,truncate table语句并不更新事物处理日志,因此也无法通过事物处

理日志来回滚数据。
       虽然truncate table能够删除表中的所有行,但是表的结构、列、约束、索引等不会被改动。
       truncate table不能用于有外键约束的表,这种情况下需要使用不带where子句的delete语句。