上一篇讲述了 SQL 关于查询的知识点,此篇继续讲述 SQL 的一些常见知识点。
文章目录
插入数据
INSERT 用来将行插入到数据库表中,插入的方式有如下:
- 插入完整的行
- 插入行的一部分
- 插入某些查询结果
插入完整的行
比如将一条顾客信息插入到 Customers 表中
INSERT INTO
Customers
VALUES(
'100000006',
'Toy Land',
'123 Any Street',
'New York',
'NY',
'12345',
'USA',
'NULL',
'NULL');
向表中插入完整的行,在 VALUES 后将每一列的数据给出,并且必须给每一列一个值。
另外可以在表名后明确给出列名,在插入数据时,只需要在 VALUE 列表中的相应值填入列表中的对应列。VALUES 中的第一个值对应第一个指定的列名,以此类推。
INSERT INTO Customers (cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES('100000006',
'Toy Land',
'123 Any Street',
'New York',
'NY',
'12345',
'USA',
'NULL',
'NULL');
Tips: 最好不要使用没有明确给出列的 INSERT 语句。
插入部分行
使用 INSERT 推荐的方法是明确的给出表的列名,这样做的另一个好处是可以省略列,即可以只给某些列提供值。
INSERT INTO Customers(cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
VALUES('100000006',
'Toy Land',
'123 Any Street',
'New York',
'NY',
'12345',
'USA');
如果表的定义允许,则可以在 INSERT 操作中省略某些列,省略列需要满足以下条件:
- 该列定义为 NULL 值 (无值或空值)
- 在表的定义中给出默认值
插入检索出的值
INSERT SELECT 将查询到的结果插入到另一个表中。
INSERT SELECT 支持根据 SELECT 查询情况进行插入,即使 SELECT 查询出多行数据也会一并插入。
例如:新建一张 CusNew 的表 并添加数据
mysql> SELECT cust_id, cust_name,cust_address