INSERT)INSERTINSERT INTO <表名> (列1,列2,列3) VALUES (值1,值2,值2);
INSERTINSERT INTO <表名> (列1, 列2, 列3)
VALUES
(值1, 值2, 值3),
(值4, 值5, 值6),
(值7, 值8, 值9);
对表进行全列INSERT时,可以省略表名后的列清单。
INSERT INTO <表名>
VALUES (值1, 值2, 值3);
插入值的顺序需要与表的列顺序一致
NULL的处理INSERT INTO <表名> (列1, 列2, 列3)
VALUES (值1, NULL, 值3);
可以通过在创建表的CREATE TABLE语句中设置DEFAULT约束来设定默认值
CREATE TABLE <表名> (列1 数据类型,列2 数据类型 DEFAULT 默认值,列3 数据类型
);
显式插入默认值(推荐使用,可读性强)
INSERT INTO <表名> (列1, 列2, 列3)
VALUES (值1, DEFAULT, 值3);
隐式插入默认值
INSERT INTO <表名> (列1, 列3)
VALUES (值1, 值3);
若省略了没有设定默认值的列,该列的值就会设定为NULL
INSERT INTO <表名> (列1, 列2, 列3)
SELECT <列1, 列2, 列3>
FROM <表2>
WHERE <条件>
GROUP BY <聚合键>;
WHERE、GROUP BY子句等任何SQL语法,但使用ORDER BY子句并不会产生任何效果,因为无法保证表内部记录的排列顺序DROP TABLE <表名>;
DELETE FROM <表名> WHERE <某些条件>;
DELETE FROM 语句将删除表中的数据DELETE FROM 语句删除后数据将无法恢复DELETE语句不能使用GROUP BY、HAVING、ORDER BY三类子句,只能使用WHERE子句TRUNCATE <表名>;
TRUNCATE只能删除表中的全部数据TRUNCATE不能使用ROLLBACK。执行TRUNCATE的同时会默认执行COMMIT操作UPDATE基本语法:
UPDATE <表名>
SET <列名> = <表达式>, ...
WHERE <条件>;
使用NULL进行更新:
UPDATE <表名>
SET <列名> = NULL
WHERE <条件>;
NOT NULL约束的列才可将值清空为NULL多列更新:
UPDATE <表名>
SET <列名1> = <表达式1>,<列名2> = <表达式2>,<列名3> = <表达式3>
WHERE <条件>;
SET 子句中的列名和值必须一一对应WHERE 子句必须指定条件以确保只更新所需的记录行。事务是需要在同一处理单元中执行的一系列更新处理的集合
事务的开始语句:
-- SQLServer PostgreSQL
BEGIN TRANSACTION;-- MySQL
START TRANSACTION;-- Oracle DB2
无
COMMIT是提交事务包含的全部的更新处理的结束指令,相当于文件处理中的覆盖保存。一旦提交,就无法恢复到事务开始前的状态了。
ROLLBACK用于撤销上一次提交或保存点之后的所有更改,将事务回滚到之前的状态。
事务根据DBMS的不同而不同。
事务处理的两种模式:
COMMIT或者ROLLBACK为止算作一个事务采用模式A的数据库:MySQL、SQL Server、PostgreSQL
采用模式B的数据库:Oracle
注意:如果在自动提交模式下执行了DELETE操作,即使回滚也无济于事