《SQL必知必会》学习笔记六——插入、更新、删除数据详细介绍

目录

一、插入数据(INSERT)

数据插入方式

(1)插入完整的行

(2)插入行的一部分

(3)插入某些查询的结果

(4)从其他表复制数据

二、更新数据(UPDATE)

1、UPDATE 语句的组成部分

2、数据更新方式

(1)更新表中的特定行

(2)更新表中的所有行

(3)使用子查询更新

3、使用UPDATE语句删除某个列的值

三、删除数据(DELETE)

数据删除方式

(1)从表中删除特定的行

(2)从表中删除所有行

(3)快速清空表(保留表结构)

(4)删除整个表(包括结构和数据)


一、插入数据(INSERT

数据插入方式

(1)插入完整的行
INSERT INTO Customers
VALUES(1000000006, 'Toy Land','123 Any Street',
 'New York','NY','11111','USA',NULL,NULL)
更安全的INSERT语句:
优点是即使表的结构改变,这条INSERT 语句仍然能正确工作
INSERT INTO Customers(cust_id,cust_name, cust_address,
 cust_city,cust_state, cust_zip,
 cust_country,cust_contact,cust_email)
VALUES(1000000007,'Toy Land','123 Any Street',
 'New York','NY', '11111','USA',NULL,NULL);
(2)插入行的一部分
INSERT INTO Customers(cust_id, cust_name, cust_address,
 cust_city,cust_state,cust_zip,cust_country)
VALUES(1000000006,'Toy Land','123 Any Street',
 'New York','NY','11111','USA');
前面的例子中,没有给 cust_contact cust_email 这两列提供值。 因此这里的 INSERT语句省略了这两列及其对应的值。
补充:
省略的列必须满足以下某个条件:
该列定义为允许 NULL 值(无值或空值);
在表定义中给出默认值。这表示如果不给出值,将使用默认值。
(3)插入某些查询的结果
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 从 CustNew 中将所有数据导入Customers。SELECT 语句从 CustNew 检索出要插入的值。SELECT 中列出的每一列对应于 Customers 表名后所跟的每一列。
(4)从其他表复制数据
INSERT INTO Customers name, email)
SELECT name, email FROM users;

二、更新数据(UPDATE)

1、UPDATE 语句的组成部分

(1)要更新的表;

(2)列名和它们的新值;

(3)  确定要更新哪些行的过滤条件。

2、数据更新方式

(1)更新表中的特定行
UPDATE Customers
SET cust_email = 'kim@thetoystore.com'
WHERE cust_id = 1000000005;
UPDATE Customers
SET cust_contact = 'Sam Roberts',
 cust_email = 'sam@toyland.com'
WHERE cust_id = 1000000006;
(2)更新表中的所有行
没有 WHERE子句,DBMS 将会用这个电子邮件地址更新 Customers 表中的所有行, 必须谨慎使用 WHERE 子句。
(3)使用子查询更新
UPDATE employees 
SET salary = (SELECT AVG(salary) FROM employees)
WHERE department = '市场部';

3、使用UPDATE语句删除某个列的值

customers表的字段及内容如下:

cust_id 为1000000006 的 cust_email 为 aaa@test

UPDATE Customers
SET cust_email = NULL
WHERE cust_id = 1000000006;
上述语句运行后的结果是:
cust_id 为1000000006 的 cust_email 为 NULL

三、删除数据(DELETE)

数据删除方式

(1)从表中删除特定的行
DELETE FROM Customers
WHERE cust_id = 1000000006;
(2)从表中删除所有行

如果省略 WHERE 子句,它将删除表中每个顾客。删除操作不可逆,需谨慎执行。

(3)快速清空表(保留表结构)

使用 TRUNCATE

(4)删除整个表(包括结构和数据)

使用 DROP

补充:

UPDATE DELETE 语句使用 WHERE 子句前,应该先用 SELECT 进行测试,保证它过滤的是正确的记录,以防编写的 WHERE 子句不正确。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值