INSERT_in _MySQL

Mac安装使用Mysql教程(从零开始)

第六章 MySQL基本操作之插入

       本章将继续以第五章所示五个表格为例总结介绍MySQL的插入(Insert)操作。

6.1 插入整行数据

INSERT INTO Customers
VALUES('1000000006',
         'Toy Land',
         '123 Any Street',
         'New York',
         'NY',
         '11111',
         'USA',
          NULL,
          NULL);   

       由于无法保证表结构改变后,各列次序依然保持不变,所以上述方式并不安全,采取以下方式虽然麻烦但更加安全:

INSERT INTO Customers(cust_id,
                        cust_name,
                        cust_address,
                        cust_city,
                        cust_state,
                        cust_zip,
                        cust_country,
                        cust_contact,
                        cust_email)
VALUES('1000000006',
         'Toy Land',
         '123 Any Street',           
         'New York',
         'NY',
         '11111',
         'USA',
          NULL,
          NULL);

6.2 插入行的一部分

       插入行的一部分和插入完整行的用法其实差不多,只不过在插入行一部分时未插入值的列名不会写出。

```
INSERT INTO Customers(cust_id,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country)  
VALUES('1000000008',
       'CF Land',
       '321 Tic Avenue',
       'Shanghai',
       'SH',
       '18484',
       'CCP');
```

注意:

  1. 省略列时列定义要允许NULL值(空值或无值)
  2. 表定义有默认值,表示若不给处值时将使用默认值。

6.3 插入查询结果

       如果希望将另一个表中的顾客列插入Customer表中就需要使用 INSERT SELECT 语句,即一条 INSERT 语句再加一条 SELECT 语句。

INSERT INTO Customers(cust_id,
                       cust_name,
                       cust_address,
                       cust_city,
                       cust_state,
                       cust_zip,
                       cust_country)
SELECT cust_id,
        cust_call,
        cust_place,
        cust_town,
        cust_province,
        cust_code,
        cust_nation
FROM CustNew;

6.4 从一个表复制到另一个表

       有一种数据插入不使用 INSERT,即将一个表的内容复制到另一个全新的表中,此时使用 SELECT INTO 语句。不同 DBMS 对 SELECT INTO 的支持度也不同,DB2不支持 SELECT INTO,SQL Server 使用 SELECT INTO 的语法为:

SELECT *
INTO CustCopy
FROM Customers;

而 MariaDB、MySQL、Oracle、PostgreSQL和SQLite 使用的语法如下:

CREATE TABLE CUstCopy AS
SELECT * FROM Customers;

6.5 参考

[1] Ben Forta.SQL必知必会-中文-第4版
[2] .MySQL 8.0参考手册(pdf)
[3] .MySQL 8.0参考手册(web)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值