数据的插入(INSERT语句)
INSERT基本语句
INSERT INTO <表名> (列名1,列名2,......) VALUES (数据1,数据2,.....);
列清单必须和数据清单的位置和数量保持一致。列清单的省略
1.插入NULL:为了保持列数和数据数相等,在数据为空时,可以用NULL代替(前提是该列限定不是NOT NULL)。
2.插入默认值:默认值可以在建立表格时设置。
<列1> <数据类型>(最大长度) DEFAULT 0,
<列2> <数据类型>(最大长度) <约束设置>,
......
PRIMARY KEY (列名)
)
以上将列1的默认值设为0。
默认值的显示通常有显示与隐示两种。
显示方法
INSERT INTO <表名> (列名1,列名2,......) VALUES (数据1,DEFAULT,.....);
隐示方法
INSERT INTO <表名> (列名1,列名3,......) VALUES (数据1,数据3,.....);
同时省略设置了默认值的列名和它对应的数据以达到设置默认值的作用,以上省略了列2。
- 从其他表中复制数据
``INSERT INTO <表1>(列1,列2,.......)SELECT 列1,列2,......
FROM <表2>;```
表1与表2的列必须相同,复制完成后,原表(表1)原有的数据不会变化。
INSERT INTO....SELECT的其他用法(通过GROUP BY复制表数据)
INSERT INTO <表1>(列1,列2,.......)
SELECT 列1,SUM(列2),MAX(列2).....*
FROM <表2>
GROUP BY <列1>;
可以通过各种聚合函数丰富使用GROUP BY的复制方法。
数据的删除(DELETE语句)
DROP和DELETE的区别
1.DROP TABLE 可以把表完全删除;
2.DELETE会留下表,删除表内的所有数据;DELETE基本语法
DELETE FROM <表名>;
指定删除对象的DELETE语句(搜索型DELETE)
想要删除部分数据时,可以使用WHERE指定条件。搜索型DELETE语句语法如下:
DELETE FROM <表名>
WHERE <条件语句>;
与SELETE不同,DELETE语句不能使用GROUP BY、HAVING、ORDER BY三类子句,只能使用WHERE。
数据的更新(UPDATA语句)
UPDATE 语句基本语法
UPDATE <表名>
SET <列名>=<表达式>;
指定条件的UPDATE语句(搜索型UPDATE)
UPDATE <表名>
SET <列名>=<表达式>
WHERE <条件>;
使用NULL进行更新
使用UPDATE可以将列更新为NULL(俗称NULL清空)。
UPDATE <表名>
SET <列名>=NULL
WHERE <条件>;
多列更新
UPDATE的SET子句可以支持对个列的更新。
方法1:
UPDATE <表名>
SET <列1>=<表达式>
SET <列2>=<表达式>
......
WHERE <条件>;
方法2:
UPDATE <表名>
SET (<列1>,<列2>,.....)=(<表达式1>,<表达式2>,.....)
WHERE <条件>;
事务
事务即为在同一处理单元中执行一系列更新处理的集合。
事务的语法:
START TRANSACTION;
DML语句1;
DML语句2;
......
事务结束语句(COMMIT或者ROLLBACK);
COMMIT ——提交处理
COMMIT是提交事务包含的全部更新处理的结束指令。相当于文件处理中的覆盖保存。一旦提交,就无法恢复到事务开始前的状态。因此,在提交之前一定要确认是否真的需要进行这些更新。ROLLBACK——取消处理
ROLLBACK是取消事务包含的全部更新处理的结束指令。相当于文件处理中的放弃保存。一旦回滚,数据库将会回到事务开始前的状态。通常回滚并不会造成像提交那样的大规模数据损失。