首页 > 代码库 > MySQL入门-11:数据的增、删、改

MySQL入门-11:数据的增、删、改

1、数据插入

2、数据更新

3、数据删除

4、更新和删除的指导原则


1、数据插入-INSERT

    插入数据可以使用以下几种方式:

  • 插入完整的行

  • 插入行的一部分

  • 插入多行

  • 插入某些查询的结果

Syntax:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

总是使用列的列表:

    一般不要使用没有明确给出列的列表的INSERT语句。使用列的列表能使SQL代码继续发挥作用,即使表结构发生了变化。


省略列:

    如果表的定义允许,则可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件。

  • 该列定义为允许NULL值

  • 在表定义中给出默认值。

    如果对表中不允许NULL值且没有默认值的列不给出值,则mysql将产生一条错误消息,并且相应的行插入不成功。


2、数据更新

Syntax:
Single-table syntax:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

在UPDATE语句中使用子查询:

    UPDATE语句中可以使用子查询,使得能用SELECT语句检索出的数据更新列数据。


3、数据删除

Syntax:
Single-table syntax:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

DELETE删除表的内容而不是表结构

    DELETE语句从表中删除行,甚至是删除表中的所有行。但是,DELETE不删除表本身。

更快的删除:

    如果想从表中删除所有行,不要使用DELETE。可使用TRUNATE TABLE语句,它完成相同的工作,但速度更快(TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的行)


4、更新和删除的指导原则

    UPDATE和DELETE语句一般都具有WHERE子句,如果省略了WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。

wKiom1O_sZCinCE4AAHCjrnxlug239.jpg


本文出自 “Share your knowledge” 博客,请务必保留此出处http://skypegnu1.blog.51cto.com/8991766/1437196