mysql基础小结三

INSERT语句基本语法
INSERT INTO <表名> (列,列,列) VALUES(值,值,值)
原则上,执行一次INSERT INTO 语句会插入一行数据
但是它也仅仅只是原则,其实很多RDBMS都支持一次插入多行数据,多行插入每个括号之间用逗号隔开!
对表进行全列INSERT时,可以省略表名后的列清单,这个时候VALUES子句的值会默认按照从左到右的顺序赋给每一列!
INSERT 语句中想给某一列赋予NULL值时,可以直接在VALUES子句的值清单里面写入NULL,但是要插入NULL的话不能设置约束NOT NULL!
我们可以向表中插入默认值(初始值),可以在创建表的CREATE TABLE语句中设置DEFAULT 约束来设定默认值!
插入默认值有显式插入,还有隐式插入!显式插入就是在值表单当中,直接填写DEFAULT,这样一来RFBMS就会在插入记录时自动把默认值付给对应的列!
隐式插入就直接省略他的列还有值,这样他就会自动给一个默认0,
省略INSERT语句中的列名,就会自动设定为该列的默认值(如果没有默认值时会设定为NULL)因此如果省略的是设置了NOT NULL约束的列,INSERT语句就会报错!

从其他表中复制数据可以使用INSERT....SELECT,可以用在需要进行数据备份时使用!
语法格式:INSTART INTO <表名>(列名)SELECT <列名>FROM<表名>
INSERT语句的SELECT语句中,可以使用WHERE子句或者GROUP BY 子句等任何SQL语法(但使用ORDER BY 子句并不会产生任何效果)!

DROP TABLE语句和DELETE语句
1.DROP TABLE 语句可以将表完全删除
2.DELETE语句会留下表(容器),而删除表中全部数据!
DELETE基本语法
保留数据表,删除全部数据,DELETE语句删除对象并不是表或者列,而是记录(行)
DELETE FROM <表名>
当然了我们也可以使用WHERE指定删除条件,这种叫做搜索型DELETE语法格式
DELETE FROM <表名> WHERE <条件>
注意!DELETE不能使用GROUP BY , HAVING和ORDER BY 三类子句,只能使用WHERE子句,因为GROUP BY 和HAVING是从表中选取数据时用来改变抽取数据形式的,
而ORDER BY 是用来指定取得结果显示数据顺序的,因此,在删除表中数据时候它们不能起到任何作用!
标准的SQL中用从表中删除数据的只有DELETE语句,但是,很多数据库产品中还存在另外一种TRUNCATE(舍弃)的语句!它和DELETE不同的是,它只能删除表中全部数据,而不能通过
WHERE子句指定条件来删除!可能就是因为它不能具体的控制删除对象,所以处理速度要比DELETE快的很多!

UPDATE的语句使用方法可以改变(更新)表中的数据,更新部分数据行时可以使用WHERE来指定更新对象的条件,
通过WHERE子句指定更新对象的UPDATE语句成为搜索型UPDATE语句!UPDATE可以将列的值更新为NULL,
可以同时更新多列,只要在UPDATE语句的SET子句中,使用逗号分离更新对象的多个列!
UPDATE语句 UPDATE<表名> SET <列名>=<表达式(更新后的数据还有表达式)>;
指定条件的UPDATE语句 UPDATE<表名>SET<列名> = <表达式> WHERE<条件>;

使用UPDATE 也可以将列更新为NULL(俗称NULL清空),将复制表达式右边的值直接写为NULL就可以了!(只能用在约束为设置NOT NULL中!)


事务是需要在同一个处理单元中执行的一系列更新处理的集合,通过使用事务,可以对数据库中的数据更新处理的提交和取消进行管理!
事务处理的终止指令包括COMMIT(提交处理)和ROLLBACK(取消处理)两种!
DBMS的事务具有ACID特性,原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durability)四种特性
COMMIT--提交事务
COMMIT是提交事务包含的全部更新处理的结束指令!相当于覆盖,一旦提交了就无法恢复到事务开始前的状态!
我们不清楚事务的开始的时间点,但是在事务结束时一定要仔细确认!
ROLLBACK--取消处理
ROLLBACK是取消事务包含的全部更新处理的结果指令,相当于文件处理中的放弃保存,一旦回滚,数据库就会恢复到事务开始之前的状态通常回滚不会像提交那样造成大规模的损失!

其实事务并没有标准的开始指令!几乎所有的数据库产品的事务都无需开始指令,这是因为大部分情况下,事务在数据库建立时候就已经悄悄开始了!
并不需要用户再发出明确开始指令!像不使用指令而悄悄开始事务的情况下,每一条SQL语句就是一个事务(自动提交模式)
直到用户执行COMMIT或者ROLLBACK为止算作一个事务!
START TRANSACTION;开始(mysql)
ROLLBACK;回滚事务
COMMIT;提交事务

ACID特性
原子性指的是事务结束时,其包含的更新处理要么全部执行,要么完全不执行!
一致性指的是事务包含的处理要满足数据库提前设置的约束!一致性也称为完整性!
隔离性指的是保证不同事务之间互不干扰的特性,该特性保证了事务之间不会互相嵌套,此外,在某个事务中进行更改,在该事务结束之前,
对其他事务而言是不可见的!
持久性也成为耐久性,指的是事务(不论是提交还是回滚)结束后,DBMS能够能够保证改时间点的数据状态会被保存的特性,即使由于系统故障导致数据丢失,数据库也一定能够用某种手段恢复!
如果不能保证持久性,即使是正常提交结束的事务,一旦发生了系统故障,也会导致数据丢失,一切都需要从头再来,保证持久性的方法根据实现的不同而不同,其中最常见的就是将事务的执行记录保存到硬盘等储存介质中
(该执行记录称为日志!,当发生故障时,可以通过日志恢复到故障发生之前的状态!)

猜你喜欢

转载自www.cnblogs.com/yeapy/p/11580036.html