zoukankan      html  css  js  c++  java
  • SQL基本语句(2)

    使用Insert语句插入新数据

    语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),…

    INSERT [INTO] tbl_name SET col_name=expression, ...

    可指定所有列值

    insert into worker values(‘tom’,’tom@yahoo.com’);

    使用多个值表,可以一次提供多行数据

    insert into worker values(‘tom‘,‘tom@yahoo.com‘),(‘paul‘,‘paul@yahoo.com‘);

    可以给出要赋值的那个列,然后再列出值

    insert into worker (name) values (‘tom‘);

    insert into worker (name) values (‘tom‘), (‘paul‘);

    可以 col_name = value 的形式给出列和值

    insert into worker set name=‘tom‘;

    insert into worker set name=‘tom‘, email = ‘tom@yahoo.com’;

    在 SET 子句中未命名的行都赋予一个缺省值。

    使用这种形式的 INSERT 语句不能插入多行。

    使用INSERTSELECT语句插入从其他表选择的行

    insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;

    你也可以略去目的表的列列表,如果你每一列都有数据录入。

    mysql>insert into tbl_name1 select col3,col4 from tbl_name2;

    INSERT INTO ... SELECT语句满足下列条件:

    查询不能包含一个ORDER BY子句。

    INSERT语句的目的表不能出现在SELECT查询部分的FROM子句,因为这在ANSI SQL中被禁止让从你正在插入的表中SELECT。(问题是SELECT将可能发现在同一个运行期间内先前被插入的记录。当使用子选择子句时,情况能很容易混淆)

    使用replacereplace…select语句插入

    REPLACE功能与INSERT完全一样,除了如果在表中的一个老记录具有在一个唯一索引上的新记录有相同的值,在新记录被插入之前,老记录被删除。对于这种情况,insert语句的表现是产生一个错误。

    REPLACE语句也可以和SELECT相配合。

    REPLACE [LOW_PRIORITY | DELAYED]

        [INTO] tbl_name [(col_name,...)]

        {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

    Or:

    REPLACE [LOW_PRIORITY | DELAYED]

        [INTO] tbl_name

        SET col_name={expr | DEFAULT}, ...

    Or:

    REPLACE [LOW_PRIORITY | DELAYED]

        [INTO] tbl_name [(col_name,...)]

        SELECT ...

  • 相关阅读:
    C#ActiveX控件开发学习
    SPFA最短路算法
    用宏实现C/C++从非零整数开始的数组
    mysql学习笔记
    python学习笔记(多进程并发)
    python学习笔记(socket模块)
    jQuery学习笔记
    python学习笔记(IO模型)
    Django学习笔记
    导入Excel时启动Excel.exe进程出错
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/4224135.html
Copyright © 2011-2022 走看看