MySQL-19插入数据-必知必会

本文详细介绍了MySQL中的INSERT语句,包括插入完整行、指定NULL值的风险、使用LOW_PRIORITY进行性能优化、插入部分列的数据以及高效地插入多行数据的方法。通过这些技巧,可以提升数据库操作的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增删改查的查之前18章已经讲过了,本章将学习增操作,INSERT,插入行到数据库表中。

  • 插入完整的行

    INSERT INTO Customer
    VALUE(NULL,#id没有值是因为该列由MySQL自动增量
          'Pep E.Lapew',
          '100 STREET',
          'Los ANG',
          'CA',
          '123445',
          'CN',
          NULL,
          NULL);
    #INSERT语句一般不会产生输出
    

    不想给一个值可以指定NULL值,这种语法简单但是有安全风险,依赖表中列的定义次序,不能保证表结构变动后各个列还能保持完全相同的次序。不提供列名时,每个列都必须给出一个值

    #更加安全的方法,但是繁琐,表名和值一一对应,即使表结构变化也能继续发挥作用
    INSERT INTO Customer(cust_name,
          cust_address,
          cust_city,
          cust_state,
          cust_zip,
          cust_country,
          cust_contact,
          cust_email)
    VALUES('Pep E.Lapew',
          '100 STREET',
          'Los ANG',
          'CA',
          '123445',
          'CN',
          NULL,
          NULL)
    

    INSERT操作可能很耗时,可以在INSERT和INTO之间添加关键词LOW_PRIORITY降低语句的优先性。

  • 插入行的一部分:如上,有些列不指定即可

  • 插入多行

    • 使用多条INSERT语句用分号分隔,最后提交一次。

      或者每次插入的列名次序相同的话,使用逗号分隔多个VALUE的括号即可

      INSERT INTO 表名(
      	列名
      )
      VALUE(
          列的具体名1
      ),
      (
          列的具体名2
      );
      

    此技术可以调高数据库处理的性能,比多个单条插入在一起执行快得多

  • 插入检索出的数据

INSERT INTO 表名(
	xxx,
	yyy
)SELECT xxx,
		yyy,
 FROM 表名;	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值