SELECT必知必会_引擎,PROCEDURE,事务处理

news/2023/6/6 23:31:10

书接上文,之前说了Mysql的SELECT部分,本片文章会重点介绍关于MySql的其他一些知识,也会是MySql必知必会的最后一篇。

首先,是Mysql中的增删改操作,对于测试岗来说,这部分知识相对来说不是那么重要,我一次性把一些基础部分贴一下。

1.INSERT
INSERT into table(id,name,small_name,age,sex)
values(1,'aa','bb',NULL.NULL)      插入一整行数据
values(......)                     插入多行,多个values,只需要一个INSERTINSERT INTO table(a,b,c)
SELECT  (a,b,c)
FROM table_01      将所选数据导入table表2.UPDATE
UPDATE table
SET  name='aa',age=24
WHERE id ='1';3.DELETE
DELETE FROM table
WHERE id =1;4.CREATE
CREATE TABLE table_name(
id         int            NOT NULL  AUTO_INCREMENT,   代表本列每新增一行,自动增加1
name  char(10)   NOT NULL ,     char是定长,varchar是不定长
sex     char(4)    NOT NULL,
PRIMARY KEY (id)  主键值必须唯一,如果使用多个列,则这些列的组合必须唯一
)
ENGINE = XXX引擎;
如果id不设置AUTO_INCREMENT的话,那就是用SLEECT COUNT然后再加以,这样浪费时间和资源。
同时,若有多个用户同时对表进行增加操作可能会出问题。5.修改表
ALTER TABLE table_01          ALTER TABLE常用来定义外键
ADD name VARCHAR(50)
FOREIGN KEY (aaa) REFERENCE  xxx(aaa)
一个表创建好之后最好轻易不要改动,除非增加外键6.删除/重命名   表
DROP  TABLE aaa;
RENAME TABLE aaa to bbb;

引擎

使用CREATE的时候,调用引擎创建表,在执行SELECT等操作时,该引擎会帮忙处理请求
不同的引擎有不同的特性

三种引擎:
InnoDB 可靠事务处理引擎,不支持全文本搜索 (事务处理:成批量的操作删除等等)
MEMORY 数据存在内存里,速度快,适用于临时表
MyISAM 性能高,支持全文本搜索,不支持事务处理

存储过程(PROCEDURE)

很多时候,实际中的处理过程,一条SQL语句完全无法满足要求,比如一个订单,要能正确处理,首先要保证库存中有货,其次有货的话要预定,确保这个物品不会重复售卖,订单成功后商品数量要减少,库存中没有物品要及时订货。
以上的情况是需要多条SQL语句来完成整个步骤的。多条SQL语句的组合,这就是存储过程。
存储过程一半是要比一条一条的执行其中的每条sql语句更快的。
创建存储过程:
CREATE  PROCEDURE aa   创建一个叫aa的存储过程
BEGIN
SELECT  **
WHERE ...;
END;
调用存储过程:
CALL aa();          调用存储过程aa
删除存储过程:
DROP PROCEDURE aa;

存储过程也可以传参:
在这里插入图片描述

游标

在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。

CREATE PROCEDURE aa()
BEGIN
DECLARE ordernum CURSOR
FOR                    为下面的SELECT定义一个游标,游标是被该SELECT检索出来的结果集
SELECT....
END;OPEN/CLOSE  ordernum;         //打开,关闭游标

触发器

触发器是响应INSERT/DELETE/UPDATE后而自动触发的一条SQL语句,可以与PROCEDURE结合在一起
CREATE TRIGGER XXX AFTER/BEFORE INSERT ON product
FOR EACH ROW SELECT…   每一行都要执行操作

触发器不能更新或者覆盖,要更新,必须删了重新创建
DROP TRIGGER

事务处理

事务处理是一种机制。用来管理必须成批执行的SQL操作,确保不会在所有的操作执行完成前有中断操作。若整组sql无问题那就执行到底,若中间出错则会执行相应的回退。
前面说过两个引擎,MYISAM不支持事务处理,InnoDB支持

START TRANSACTION
SELECT...
DELETE..
UPDATE..
ROLLBACK;                      回退START到ROLLBACK之间的所有语句

可以把ROLLBACK换成COMMIT,如果语句都执行成功,COMMIT不生效,如果中间有句子执行报错,ROLLBACK会自动执行回滚功能

用户权限分配

CREATE USER shaoqiang;
GRANT SELECT ON database_aa TO shaoqiang;   给用户database_aa下所有表的查询权限
SHOW GRANTS FOR shaoqiang;            查询权限
REVOKE SELECT ON database_aa TO shaoqiang;     撤销权限

一些关于MySql性能提升的小细节

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4562010.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

跨域,反向代理解决跨域

控制台出现这些错误说明跨域了 解决跨域的方法&#xff0c;代码如下&#xff1a; html代码 <template><div class"twentyTwo"><ul><li v-for"(item,id) in List" :key"id">{{item.title}}</li></ul></d…

代理ip是怎么样使用的

ip是上网需要唯一的身份地址&#xff0c;而代理ip就是我们上网过程中的一个中间平台&#xff0c;是由你的电脑先访问代理ip&#xff0c;之后再由代理ip访问你点开的页面&#xff0c;所以在这个页面的访问记录里留下的是就是代理ip的地址&#xff0c;而不是你的电脑本机ip。 如…

动态IP代理-如何让文章获得高阅读量?

在互联网上写文章&#xff0c;不管是网络运营中的写文&#xff0c;还是新媒体行业中的文章发表&#xff0c;其实为的就是能够获得高阅读量&#xff0c;因为有了高阅读量&#xff0c;才有可能有关注、分享、转发&#xff0c;进而才能获得经济回报&#xff0c;这点是大部分文章创…

代理服务器中的HTTP代理与SOCKS代理有什么区别?

HTTP代理&#xff1a;www万网对于每一个上网的人都再熟悉不过了&#xff0c;www连接请求就是采用的http协议&#xff0c;所以我们在浏览网页&#xff0c;下载数据&#xff08;也可采用ftp协议&#xff09;是就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。 …

sql代理无法启动_渗透中快速搭建代理池

又是美好的一天&#xff0c;美好的一天从渗透中开始&#xff0c;每当渗透到了扫目录环节的时候总是小心又小心突然扫到了百分之5的时候 我们可能被WAF干掉了 这时候大家可能会想到使用TOR代理 可是我们渗透测试的是国内站点 站点加了审计规则 国外无法访问那么接下来我们就需要…

nginx代理应用sso跳转处理

nginx代理应用sso跳转处理场景说明CAS验证原理代码调整场景说明 由于用户需要使用https协议访问应用&#xff0c;https协议是由第三方网关进行代理&#xff0c;应用本身是http协议的&#xff0c;但是部门其他地方的用户由于硬件原因&#xff0c;只能通过http进行访问&#xff…

Python HTTP代理的优缺点?芝麻代理豌豆代理熊猫代理讯代理?

目前市场厂商提供的HTTP代理产品和服务差不多&#xff0c;使用下来还是有各自的优缺点&#xff0c;品质也是值得讨论的。如果不想和当大冤种&#xff0c;还是要仔细挑选厂商&#xff0c;不要被广告给迷惑了。 那咱们到底该怎么选&#xff1f;商家的可靠程度如何&#xff1f;我们…

代理ip/ip代理的含意 代理IP/IP代理有什么用?

代理IP即代理服务器&#xff08;Proxy Server&#xff09;也称网络代理&#xff0c;是一种特殊的网络服务&#xff0c;允许一个网络终端&#xff08;一般为客户端&#xff09;通过这个服务与另一个网络终端&#xff08;一般为服务器&#xff09;进行非直接的连接。一些网关、路…