zoukankan      html  css  js  c++  java
  • MySQL基础之插入数据

    数据插入

    INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:

    • 插入完整的行
    • 插入行的一部分
    • 插入多行
    • 插入某些查询的结果

    插入完整的行

    把数据插入表中的最简单的方法是使用基本的INSERT语法, 它要求指定表名和被插入到新行中的值。

    MariaDB [crashcourse]> INSERT INTO Customers 
        -> VALUES(NULL,
        -> 'Pep E. LaPew',
        -> '100 Main Street',
        -> 'Los Angeles',
        -> 'CA',
        -> '90046',
        -> 'USA',
        -> NULL,
        -> NULL);

    如果你不想给出一个值, 又不能省略此列的时候, 可以指定该列为NULL值

    虽然这种方法很简单, 但并不安全, 应该避免使用。上面的SQL语句高度依赖于表中列的定义次序, 并且还依赖于其次序容易获得的信息。

    INSERT INTO Customers(cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)  VALUES('Pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL);

    使用这种语法, 还可以省略列。这表示可以只给某些列提供值。给其他列不提供值。

    INSERT INTO操作可能很耗时(特别是有很多索引需要更新的时候), 而且它可能降低等待处理的SELECT语句的性能。

    如果数据检索是最重要的, 可以通过在INSERT INTO之间添加关键字LOW_PRIORITY, 指示MySQL降低INSERT语句的优先级, 如下所示

    INSERT LOW_PRIOPITY INTO

    插入多行

    如果想要插入多行, 那么可以使用多条INSERT语句, 甚至一次提交它们, 每条语句用一个分号结束

    INSERT INTO Customers(cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)  VALUES('Pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL);INSERT INTO Customers(cust_address, cust_city, cust_state, cust_zip, cust_country) VALUES('M. Martian', '42 Galaxy way', 'New York', 'NY', '11213', 'USA');

    或者, 只要每天INSERT语句中的列名(和次序)相同, 可以如下组合个语句

    INSERT INTO Customers(cust_address, cust_city, cust_state, cust_zip, cust_country)  VALUES('Pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA'),
    'M. Martian', '42 Galaxy way', 'New York', 'NY', '11213', 'USA'

    此技术可以提高数据库处理的性能, 因为MySQL用单条INSERT语句处理多个插入比使用多条INSERT语句快

    插入检索出的数据

    INSERT可以将一条SELECT语句的结果插入表中。这就是所谓的INSERT SELECT。

    INSERT INTO customers(cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country)SELECT cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country FROM custnew;

    INSERT SELECT语句中SELECT语句可包含WHERE子句以过滤插入的数据

  • 相关阅读:
    laravel 多对多 belonsToMany
    C语言union关键字
    FW:程序在内存的划分(转)
    操作系统:进程/线程同步的方式和机制,进程间通信
    FW:考查嵌入式C开发人员的最好的16道题(转)
    操作系统死锁产生、条件、和解锁
    100层高楼摔2个鸡蛋的问题?
    【转】看完这个你的位运算学得就差不多了
    函数递归的几个例子
    如何查看服务器(linux系统)当前的负载信息(转)
  • 原文地址:https://www.cnblogs.com/featherwit/p/13406415.html
Copyright © 2011-2022 走看看