暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MYSQL-第四章

EGG IXD 2021-06-22
536


4-1 数据的插入(INSERT语句的使用方法)


INSERT语句:

INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);

注:

将列名和值用逗号隔开,分别括在() 内,这种形式称为清单。包括:列清单、值清单。

原则上,执行一次INSERT语句会插入一行数据。


多行INSERT:

INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……)(值1, 值2, 值3, ……)(值1, 值2, 值3, ……).....;

注:

多行INSERT减少了书写语句的数量,但如出现插入错误的情况,查找较为困难。

多行 INSERT 的语法并不适用于所有的 RDBMS。该语法适用于 DB2、SQL、SQL Server、 PostgreSQL 和 MySQL,但不适用于 Oracle。

插入NULL 的列一定不能设置 NOT NULL 约束。


插入默认值:

可以通过在创建表的CREATE TABLE 语句中设置DEFAULT < 默认值 >的形式来设定默认值。(case:DEFAULT 0,默认值设定为0)

注:

默认值的使用方法通常有显式和隐式两种。

显式:在 VALUES 子句中指定 DEFAULT 关键字。(建议用显式)

隐式:在列清单和VALUES 中省略设定了默认值的列。(没有默认值时会设定为NULL)。


从其他表中复制数据(需要进行数据备份时使用):

  • 创建ProductCopy表的CREATE TABLE语句

  • INSERT INTO <表名copy> (列1, 列2, 列3, ……)

SELECT 列1, 列2, 列3, ……

FROM<表名>;

注:INSERT语句的SELECT语句中,可以使用WHERE子句或者GROUP BY子句等任何SQL语法(但使用ORDER BY子句并不会产生任何效果)。



4-2 数据的删除( DELETE语句的使用方法)


删除数据的方法大体可以分为以下两种:

  • DROP TABLE 语句可以将表完全删除。

  • DELETE 语句会留下表(容器),而删除表中的全部数据。DELETE FROM <表名>;

注:DELETE语句的删除对象并不是表或者列,而是记录(行)。


指定删除对象的DELETE语句(搜索型DELETE):

DELETE FROM <表名>

WHERE <条件>;

注:DELETE 语句中不能使用 GROUP BY、HAVING 和ORDER BY 三类子句,而只能使用WHERE 子句。


删除表中全部数据的TRUNCATE语句:

TRUNCATE <表名>;

注:

可用于Oracle、 SQLServer、PostgreSQL、MySQL 和 DB2,产品不同需要注意的地方有区别,具体查询使用手册。

只能删除表中的全部数据,而不能通过WHERE 子句指定条件来删除部分数据。(删除全部数据时使用,执行时间比 DELETE短



4-3 数据的更新( UPDATE语句的使用方法)


UPDATE语句的基本语法:

UPDATE <表名>

SET <列名> = <表达式>;


指定条件的UPDATE语句(搜索型UPDATE):

UPDATE <表名>

SET <列名> = <表达式>

WHERE <条件>;


使用NULL进行更新:(NULL 清空)

UPDATE <表名>

SET <列名> = NULL

WHERE <条件>;

注:使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)。


多列更新:

UPDATE <表名>

SET <列名> = <表达式> <列名> = <表达式>,...

WHERE <条件>;

注:第二种多列更新方式在某些 DBMS 中是无法使用的(暂不展示),实际应用中通常都会使用上述方法。



4-4 事务


事务:是需要在同一个处理单元中执行的一系列更新处理的集合。

注:一个事务中包含多少个更新处理或者包含哪些处理,是根据用户的要求决定的。


创建事务:

事务开始语句(MYSQL中为START TRANSACTION);

DML语句①;

DML语句②;

DML语句③;

.

.

.

事务结束语句( COMMIT或者ROLLBACK) ;


注:

各个 DBMS 事务的开始语句都不尽相同。

COMMIT(提交) 是提交事务包含的全部更新处理的结束指令。(一旦更新无法恢复,事务结束时一定要仔细进行确认。)

ROLLBACK(回滚) 是取消事务包含的全部更新处理的结束指令。(一旦回滚,数据库就会恢复到事务开始之前的状态。)

   

事务处理有两种情况:每条SQL语句就是一个事务( 自动提交模式);直到用户执行COMMIT或者ROLLBACK为止算作一个事务。


ACID特性:DBMS 的事务都遵循四种特性,四种特性的首字母结合起来统称为ACID 特性。

  • 原子性(Atomicity):指在事务结束时,其中所包含的更新处理要么全部执行(COMMIT),要么完全不执行(ROLLBACK),也就是要么占有一切要么一无所有。

  • 一致性(Consistency):一致性指的是事务中包含的处理要满足数据库提前设置的约束,如主键约束或者 NOT NULL 约束等。

  • 隔离性(Isolation):隔离性指的是保证不同事务之间互不干扰的特性。该特性保证了事务之间不会互相嵌套。

  • 持久性(Durability):持久性也可以称为耐久性,指的是在事务(不论是提交还是回滚)结束后, DBMS 能够保证该时间点的数据状态会被保存的特性。




end




文章转载自EGG IXD,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论