zoukankan      html  css  js  c++  java
  • MySQL ------ 插入数据(INSERT)(二十)

     数据插入(INSERT): 用来插入(或添加)行到数据表中。也可利用mysql 的安全机制机制使用insert 语句

    可使用的四种方式:插入完整的行,插入行的一部分,插入多行和插入某些查询结果

     1、插入完整的行

     查看一下表中的字段,根据字段类型增加相应的字段,

    insert into 表名(表中字段) values (根据字段赋予相应的值)

     存储到每个表列中的数据在value 子句中给出,对每个列必须提供一个值。如果每个列没有值,应该使用null值(该列必须要允许为null),而第一列中不能为null 反而可以赋null 的原因是该列是自动增量的,所以可以。上述中虽然语法很简单,但是不安全,应该尽量避免使用,上面的sql语句高度依赖于表中的定义次序,并且还依赖于其次序容易获得的信息,即使可以得到这种次序信息,也不能保证下一次表结构变动后,各个列保持完全相同的次序。

    如果使编写insert 语句更安全,应该使用以下方式,在表中定义相关字段,根据定义的字段赋予相应的值。

    --  增加
     insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country,cust_contact,cust_email)
                   values('xiaoqiao','sanguo','jingdong','xq','2234','china','obge','www.obge.com');

     在插入行时,MySQL将用values 列表中的相应的值填入列表中对应的项,如values 中的第一个值对应于第一个指定的列名,第二个对应于第二个等等。

    2、插入行的一部分

     由于表中的列有的是可以为空的,所以在插入的时候可以,不用列出哪些可以为空的列,只给需要的进行赋值,形成一行

    其中列的次序可以不一样,但是值要与列对应

     insert into customers(cust_name,cust_email,cust_address) values('SunCe','wwww.wuguo,com','jiangdong');

     注意:

      1、一般不要使用没有明确给出列的列表的insert 语句,应总是使用列的列表,即使表结构发生了变化也能正确赋值。

      2、不管使用哪种insert语法,都必须给出values 的正确数目,保证列与列的值对应,且符合其设置的数据格式

      3、如果表的定义满足列定义为允许为null(无值、空值) 或在表的定义中给出默认值,可以在insert 操作中省略满足这些条件的列

      4、数据库经常被多个客户访问,对处理什么请求以及使用什么次序处理进行管理是MySQL的任务,由于 insert 的操作(特别是有很多个索引需要处理时)可能会很耗时,有可能会降低等待处理的select语句的性能。如果当数据检索是最重要的时候,想要提高性能,可以降低insert 语句的优先级来进行达到目的,(关键字 LOW_PRIORITY)

    -- 降低insert 语句的优先级
    insert low_priority into

    3、插入多行

    第一种,就是复制多条insert增加语句,粘贴执行

     这样的性能不高,一般对相同列结构的语句使用一条insert 语句

    -- insert into 表名(列名) values (列名对应值),(列名对应值);
     insert into customers(cust_name,cust_address,cust_city,cust_state,cust_country)
               values('Liubei','shuguo','sanguo','11','zhongguo'),
                     ('SunShangXiang','shuguo','sanguo','22','zhongguo');

     其中单条insert 语句有多组值,每组值使用一对括号括起来,各组之间使用逗号分隔,这样的语句可以提高数据库处理的性能。

    4、插入某些查询结果 (INSERT SELECT)

     insert 一般用来给表插入一个指定列值的行,也可以利用他将一条select语句的结果插入到表中

    insert select :将一条select语句的结果插入到表中

    --  insert into 表名1 (列名) select (列名) from 表名2 ;
     insert into customers(cust_name,cust_address,cust_email) 
         select prod_name,prod_price,prod_desc from products limit 11,2;

     注意:

      1、增加表中列的数目要与查询表中列的数目一致,列的类型也要相同

      2、查询的表可以通过where 子句进行过滤

      3、select的第一个列,对应着增加的第一个列,以此类推

  • 相关阅读:
    LeetCode Power of Three
    LeetCode Nim Game
    LeetCode,ugly number
    LeetCode Binary Tree Paths
    LeetCode Word Pattern
    LeetCode Bulls and Cows
    LeeCode Odd Even Linked List
    LeetCode twoSum
    549. Binary Tree Longest Consecutive Sequence II
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/obge/p/13041037.html
Copyright © 2011-2022 走看看