SQL扩展之T-SQL中的数据操纵语言

来源:互联网 发布:黄静案 知乎 编辑:程序博客网 时间:2024/05/28 15:39

   数据操纵语言在DML包括向表中插入记录,修改记录,删除记录的语句

   1,插入语句

  Inset 语句用于向数据表或者视图中插入由VALUES 指定的各列值的行,其语法格式如下:

INSERT [ TOP ( expression ) [ PERCENT ] ]       [ INTO ]  {   table_name                                     /*表名*/      | view_name                               /*视图名*/      | rowset_function_limited  /*可OPENQUERY 或OPENROWSET 函数*/      [WITH (<table_hint_limited>[…n])] /*指定表提示,可省略*/  }  {       [ ( column_list ) ] /*列名表*/       { VALUES ( ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ] )       /*指定列值的value子句*/            | derived_table    /*结果集*/            | execute_statement      /*有效的EXECTUTE语句*/            | DEFAULT VALUES /*强制新行包含为每个列定义的默认值*/         }   } 
    说明:

●  table_name:被操作的表名。
●  view_name:视图名。
●  column_list:列名表,包含了新插入数据行的各列的名称。如果只给出表的部分列插入数据时,需要用column_list指出这些列。
●  VALUES子句:包含各列需要插入的数据,数据的顺序要与列的顺序相对应。若省略colume_list,则VALUES子句给出每一列(除IDENTITY属性和timestamp类型以外的列)的值。VALUES子句中的值有三种:
DEFAULT:指定为该列的默认值,这要求定义表时必须指定该列的默认值。
 NULL:指定该列为空值。
 expression:可以是一个常量、变量或一个表达式,其值的数据类型要与列的数据类型一致。注意表达式中不能有SELECT及EXECUTE语句。

     例如:向clients表中插入一个客户记录(1,‘晓帅歌’, ‘女’,‘春熙路1号’)。

USE testINSERT INTO clients values(1,'晓帅歌','女','春熙路1号')
    由于掺入的数据包各列值并按表中各列的顺序列出这些值,所以省略列明表(colunm_list).

    2,修改语句

   UPDATE 语句用于修改数据表或视图中特定记录或列的数据,其语法格式如下:

 UPDATE { table_name | view_name } SET column_name = {expression | DEFAULT | NULL } [,…n] [WHERE <search_condition>]
     说明:

     该语句的功能是,将table_name 指定的表或者view_name 指定的视图中满足<search_condition>条件的记录中由SET指定的各列的列值设置为SET指定的新值,如果不实用WHERE子句,则更新所有记录的指定列值。

     例如,在clients表中将cid 为1 的客户端的address修改为“上海路88号”:

USE test  UPDATE clients  SET address='上海路88号'  WHERE cid=1
    3,删除语句

    DELETE 语句用于删除表或者视图中的每一行或者多行记录,其语法格式如下:

 DELETE [FROM] { table_name | view_name } [WHERE <search_condition>]
     该语句的功能是,从table_name 指定的表或者view_name指定的视图中删除满足<search_condition>条件的行, 若省略该条件,则删除所有行。

例如,删除id为“2015”的学生的记录:

USE stsc  DELETE student  WHERE stno='2015'

1 0