数据的插入(INSERT语句的使用方法)
用来装入数据的SQL就是INSERT
INSERT语句的基本语法:
INSERT INTO 表名 (列名1,列名2,列名3,...) VALUES (值1,值2,值3,...);
注意:1.插入的数据要用单引号括起来;2.多个列名与值用逗号隔开;3.表名后面的列清单与VALUES后的值清单数量必须保持一致;4.原则上,执行一次INSERT只会插入一行数据(即,要插入多行数据就需要多条INSERT语句)
列清单的省略:
对表进行全列INSERT时,可以省略表名后的列清单。此时,VALUES子句的值会默认按照从左到右的顺序赋给每一列。
插入NULL:
INSERT语句中想给某一列赋予NULL值时,可以直接在VALUES子句的值清单中写入NULL。但是,想要插入NULL的列一定不能设置NOT NULL约束。
插入默认值:通过CREATE TABLE语句中设置DEFAULT约束来实现对默认值的设定。
1.通过显示方法插入默认值:在VALUES子句中指定DEFAULT关键字;
2.通过隐示方法插入默认值:在列清单与值清单中都省略设定了默认值的列。
P.S:若省略了没有设定默认值的列的话,该列的值就会被设定为NULL。(如果此时该列设定为NOT NULL,INSERT语句就会出错)
从其它表中复制数据:使用INSERT...SELECT语句,原有数据不会发生改变,可以在需要数据备份时使用
--将一个表的数据复制到另外一个表中
INSERT INTO 复制目的表名 (列名1,列名2,列名3, ...)
SELECT 列名1,列名2,列名3, ...
FROM 复制源表名;
INSERT语句的SELECT语句中, 可以使用WHERE子句或者GROUP子句等任何SQL语法,但使用 ORDER BY子句并不会产生任何效果。
数据的删除(DELETE语句的使用方法)
DROP TABLE语句和DELETE语句:一旦删除,不可恢复
DROP TABLE语句会将表完全删除;DELETE语句会留下表(容器),而删除表中的全部数据
DELETE语句的基本语法:
DELETE FROM 表名;
解释:删除表名中的全部数据
P.S:1.不能漏写FROM;2.DELETE删除的对象是行,不是列或表
指定删除对象的DELETE语句:(搜索型DELETE:使用WHERE子句指定删除条件)
DELETE FROM 表名
WHERE 条件;
解释:删除表名指定条件下的行数据
P.S:DELETE语句中不能使用GROUP BY、HAVING和ORDER BY三类子句,只能使用WHERE子句
数据更新(UPDATE语句的使用方法)
UPDATE语句的基本语法:
UPDATE 表名
SET 列名=表达式;
解释:1.在
SET子句中记录更新对象的列和更新后的值;2.该列名下的所有数据都会被更新为指定的值
指定条件的UPDATE语句:(搜索型UPDATE:使用WHERE子句指定更新条件)
UPDATE 表名
SET 列名=表达式
WHERE 条件;
解释:将表名中符合条件的列名设为表达式的值
使用NULL进行更新:亦称为NULL清空
只需将表达式右边的值直接写为NULL即可,但只限于未设置NOT NULL约束的列
UPDATE 表名
SET 列名=NULL
WHERE 条件;
多列更新:
1.使用逗号分隔排列(对所有的DBMS都适用)
UPDATE 表名
SET 列名1=表达式1,列名2=表达式2, ...
WHERE 条件;
2.使用 列清单化(只对部分DBMS适用)
UPDATE 表名
SET (列名1,列名2, ...)=(表达式1,表达式2, ...)
WHERE 条件;
创建事务:
事物开始语句;
DML语句1;
DML语句2;
DML语句3;
...
事物结束语句(COMMIT或者ROLLBACK);
解释:1.在标准SQL中并没有定义事务的开始语句,而是
由各个DBMS自已来定义的。比较有代表性的语法有SQL Server、PostgreSQL(BEGIN TRANSACTION),MySQL(START TRANSACTION),Oracle、DB2(无)
2.事务的结束需要用户明确地给出指示。(COMMIT是提交事务包含的全部更新处理的结束指令,一旦提交就无法恢复到事务开始前的状态;ROLLBACK是取消事务包含的全部更新处理的结束指令,一旦回滚就会回复到事务开始之前的状态)
ACID特性:
DBMS的事务都遵循四种标准规格的约定,即ACID特性
1.原子性(Atomicity):事务结束时,其中所包含的更新处理要么全部执行,要么完全不执行的特性;
2.一致性(Consistency)(也称为完整性):事务中包含的处理,要满足数据库提前设置的约束;
3.隔离性(Isolation):保证不同事务之间互不干扰的特性,即事务中间不会相互嵌套;
4.持久性(Durability):事务一旦结束,DBMS会保证该时点的数据状态得以保存的特性