mysql笔记(五)--其他操作

MySQL操作学习笔记 MySQL 安装及配置。 阅读详情

文章目录

(一) mysql笔记–基本概念
(二) mysql笔记–基本操作
(三) mysql笔记–事务
(四) mysql笔记–索引
(五) mysql笔记–其他操作
(六) mysql笔记–锁

1. 视图

    某个查询语句设置别名,方便日后使用,即创建一个临时表,是虚拟的表,因为保存的是语句(不常,不方便维护用)

  • 创建
    create view 视图名称 as SQL
  • 修改
    alter view 视图名称 as SQL
  • 删除
    drop view 视图名称;

2. 触发器

    当对某张表做:增删改操作时,可以使用触发器自定义关联行为

	delimiter //
	create trigger t1 BEFORE INSERT on student for EACH ROW
	BEGIN
	INSERT into teacher(tname) values(NEW.sname);
	END //
	delimiter ;
	-- 插入数据前则执行begin里面的内容
	-- delimiter,修改语句终结符
	-- NEW,代指新数据
	-- OLD,代指老数据

3. 函数

  1. 内置函数:

     	执行日期函数 select CURDATE();
     	获取年月日期:
     	select ctime,count(1) from blog group ctime
     	select DATE_FORMAT(ctime, "%Y-%m"),count(1) from blog group DATE_FORMAT(ctime, "%Y-%m")
    
  2. 自定义函数(有返回值):

	delimiter \\
		create function f1(
			i1 int,
			i2 int)
		returns int
		BEGIN
			declare num int default 0;
			set num = i1 + i2;
			return(num);
		END \\
	delimiter ;
		使用方式:
		SELECT f1(1,100);

4. 存储过程

MySQL: 存储过程方便了操作,功能比视图强大,但不常用
程序:调用存储过程,支持事务与游标操作,可用于防止sql注入

  1. 简单
	create procedure p1()
	BEGIN
		select * from student;
		INSERT into teacher(tname) values("ct");
	END
		调用方式:
		call p1()
		cursor.callproc('p1')
  1. 传参数(in,out,inout)
	delimiter //
	create procedure p2(
		in n1 int,
		in n2 int
	)
	BEGIN
		
		select * from student where sid > n1;
	END //
	delimiter ;
		调用:
		call p2(12,2)
		cursor.callproc('p2',(12,2))
  1. 参数 out
	delimiter //
	create procedure p3(
		in n1 int,
		inout n2 int
	)
	BEGIN
		set n2 = 123123;
		select * from student where sid > n1;
	END //
	delimiter ;
		参数获取与调用:
		set @v1 = 10;
		call p2(12,@v1)
		select @v1;
		
		set @_p3_0 = 12
		ser @_p3_1 = 2
		call p3(@_p3_0,@_p3_1)
		select @_p3_0,@_p3_1
  1. 动态执行SQL(防SQL注入)
	delimiter //
	create procedure p7(
		in tpl varchar(255),
		in arg int
	)
	begin 
		1. 预检测某个东西 SQL语句合法性
		2. SQL =格式化 tpl + arg 
		3. 执行SQL语句
		
		set @xo = arg;
		PREPARE xxx FROM 'select * from student where sid > ?';
		EXECUTE xxx USING @xo;
		DEALLOCATE prepare prod; 
	end  //
	delimter ;
		调用方式:
		call p7("select * from tb where id > ?",9)
	delimiter \\
	CREATE PROCEDURE p8 (
		in nid int
	)
	BEGIN
		set @nid = nid;
		PREPARE prod FROM 'select * from student where sid > ?';
		EXECUTE prod USING @nid;
		DEALLOCATE prepare prod; 
	END\\
	delimiter ;

5. 执行计划

    可使用explain加sql语句查看该语句执行时间等级,可用于查看是否命中索引
    执行计划作用:让mysql预估执行操作(一般正确)
    等级: all < index < range < index_merge < ref_or_null < ref < eq_ref < system/const

		慢:
			select * from userinfo3 where name='alex'
			
			explain select * from userinfo3 where name='alex'
			type: ALL(全表扫描)
				select * from userinfo3 limit 1;
		快:
			select * from userinfo3 where email='alex'
			type: const(走索引)

6. 日志

	慢日志
		- 执行时间 > 10
		- 未命中索引
		- 日志文件路径
		
	配置:
		- 内存
			show variables like '%query%'
			set global 变量名 = 值
		- 配置文件
			mysqld --defaults-file='E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\my-default.ini'
			
			my.conf内容:
				slow_query_log = ON
				slow_query_log_file = D:/....
				
			注意:修改配置文件之后,需要重启服务

7.分页

    由于id不连续,所以无法直接使用id范围进行查找,所以一般使用limit,分页间接命中索引提高翻页速度

		- 索引表中扫:
			select * from userinfo3 where id in(select id from userinfo3 limit 200000,10)
		- 方案:
			记录当前页最大或最小ID
			1. 页面只有上一页,下一页
				# max_id
				# min_id
				下一页:
					select * from userinfo3 where id > max_id limit 10;
				上一页:
					select * from userinfo3 where id < min_id order by id desc limit 10;
			2. 上一页 192 193  [196]  197  198  199 下一页
				
				select * from userinfo3 where id in (
					select id from (select id from userinfo3 where id > max_id limit 30) as N order by N.id desc limit 10
				)
Vue3 - [兼容PC和手机H5] 详细监听浏览器刷新 / 关闭 / 前进后退事件,用户点击关闭和刷新页面前 “拦截“ 操作并弹出提示框(实时监听用户关闭或刷新网页,触发时文字提醒并执行自定义操作) vue3监听页面关闭和刷新,vue3中如何监听页面刷新和关闭事件,vue3中监听浏览器窗口关闭事件,并在窗口关闭进行操作,vue3怎么只在某个页面监听,其他页面不监听,vue3监听刷新和关闭怎么离开页面时注销释放,vue3怎么阻止浏览器前进和后退并提示,页面跳转离开后依旧可以监听到刷新和关闭,vue3怎么知道用户关闭了网页,vue3如何监听刷新网页操作并截断,vue3移动端手机h5网页手机网站监听浏览器刷新关闭,vue3当页面关闭或刷新时怎么提示用户离开不保存数据,vue3项目监听浏览器窗口或标签页关闭,并 阅读详情

相关推荐

STC8H DMA 串口1全双工中断方式收发通讯C语言

串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的内容后,通过串口1的DMA自动发送功能把存储空间的数据原样返回. 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。

czhaii的专栏 1466

Python如何执行存储过程,获取存储过程返回值

在Pathon中如何执行存储过程呢?可以使用如下方法:存储过程定义基本如下:ALTER  procedure [dbo].[mysp]         @Station varchar(50),         @SN varchar(50),        @Info va

andoring的专栏 2万+

BRep实战指南:从理论到文件格式的全面解析

本文全面解析BRep(边界表示法)从基础概念到文件格式的实战应用。详细介绍了BRep的数学定义、工业应用场景,以及STEP、IGES等主流文件格式的对比与使用技巧,帮助读者掌握三维建模核心技术并优化性能。

weixin_29235923的博客 407

Express学习笔记(五)——在项目中操作 MySQL

当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的 status 字段标记为删除即可。在 MySQL 8.0 版本之后,默认的认证插件从。认证方式,当客户端尝试连接使用新认证方式的 MySQL 服务器时,就会出现此错误。在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。使用 DELETE 语句,会把真正的把数据从表中删除掉。在使用 mysql 模块操作 MySQL 数据库之前,所谓的标记删除,就是在表中设置类似于。

weixin_56370772的博客 909

Seurat3.0小提琴图腰围的参数

小提琴图没有有些群没有出现小提琴只有点点,是由于0值比例太多, 一个关键的参数scale = "width"导致了这种局面,应加上上述参数 ggplot(p$data,aes(ident,CD4)) + geom_violin(scale = "width", adjust =1, trim = TRUE) + geom_jitter()+ theme_bw() adjust参数可以调整腰的粗细,eg: ggplot(p$data,aes(ident,CD4)) + geom_violin(scale

Demomwu的博客 1661

DeepSeek 在 PostgreSQL 中,执行 `DELETE` 操作后,数据占用的空间并不会立即释放给操作系统

操作后,数据占用的空间并不会立即释放给操作系统。这是 PostgreSQL 的 MVCC(多版本并发控制)机制决定的——删除的数据只是被标记为“死元组”,物理空间仍然被表占用。这是最彻底的释放方式,会将表重写为一个没有空洞的新文件,将空间返回给操作系统。如果你的表非常大(如几百GB),或者这是生产环境的核心表,建议优先考虑。你可以告诉我你的表大概多大、是否能接受锁表,我可以给你更精确的建议。要真正释放空间,需要根据你的实际需求,从以下三种方案中选择一种。如果你既想彻底释放空间,又无法接受锁表,

m0_37843156的博客 403

MYSQL学习笔记五(表操作)

一、创建表(CREATE TABLE语句) 1.1 创建表语法 使用 CREATE TABLE 语句的语法格式为: CREATE TABLE <表名> ([表定义选项])[表选项][分区选项]; 其中,[表定义选项]的格式为: <列名1> <类型1> [,…] <列名n> <类型n> CREATE TABLE 语句的主要语法及使用说明...

merciaMA的博客 450

你的Wi-Fi总断网?可能是DHCP租约到期惹的祸!手把手教你用Windows/路由器设置永久IP或延长租期

本文深入解析家庭Wi-Fi频繁断网的常见原因——DHCP租约到期问题,并提供Windows和路由器设置永久IP或延长租期的详细教程。通过对比静态IP配置与延长租期两种方案,帮助用户有效解决网络不稳定问题,特别适合游戏玩家和远程工作者优化家庭网络环境。

weixin_29305313的博客 1409

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义。

u013339851的专栏 1252

AI开发提效10倍:从需求到部署的全流程实战指南(附Prompt模板)

用AI开发不是“偷懒”,而是把时间花在更有价值的地方——原来花80%时间写重复代码,现在用AI搞定后,能把精力放在“优化用户体验”“提升系统性能”这些核心工作上,这才是AI给开发者的真正红利。如果你还没开始用AI做开发,建议从“写一个简单接口”“补一段注释”开始尝试,先用起来再优化方法。记住:AI是工具,不是对手,学会驾驭它,你会发现开发效率提升的同时,还能告别无效加班。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1526

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?此外,用户还可以选择将接收到的图片、视频和文件保存到指定的文件夹中。‌用户可以在微信设置中调整这一设置。

qq_15963745的博客 5082

MySQL笔记五 数据库创建与常用操作

insert into t_student values('钱多多',20,'女','南京',172.1,now(alter table 表名 add 列名 数据类型;insert into t_student(name,age,sex,birthday,height) values('张。insert into t_student(name,age,sex) values(null,22,'女');sex varchar(8) not null default '男', -- 指定默认值。

2502_90885631的博客 407

ShardingSphere 5.3 系列Spring 配置升级指南 | Spring Cloud 47

在 `5.3.0` 版本以前,`ShardingSphere-JDBC` 同时支持 `Java API`、`YAML`、`Spring Boot Starter` 和 `Spring Namespace` 等配置方式。 - 当新增或更新 API 时,需要调整多项配置文件,工作量大 - 社区需要维护多重配置文档和示例 - `Spring Bean` 生命周期管理容易受到项目其他依赖的影响,比如 `PostProcessor` 无法正常执行 - `Spring Boot Starter` 和 `Spring N

gmHappy 2万+

mysql笔记五 数据库表的约束、级联操作

数据库表的约束 文章目录数据库表的约束约束的作用约束种类primary key 约束的作用 对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。 约束种类 primary key # 主键 unique # 唯一 not null # 非空 foreign key # 外键 check # 检查约束 (mysql不支持) primary key 主键的作用 ...

qq_49723651的博客 1542

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【MySQL】学习笔记(五)—— java操作数据库

mysql-connector-java-5.1.47.jar(导入)mysql是5.0版本的就用5.0开头的,是8.0版本的就用8.0开头的。一个程序是不能直接连接数据库的,需要数据库驱动才行,这个数据库驱动由数据库厂商去提供。一个程序如何去连接不同厂商生产的不同驱动都要程序员去学习,学习成本很大的!java连接mysql数据库需要3个jar包。程序员只需要去学习JDBC的接口就好了!没有什么是加一层解决不了的!javax.sql (自带)java.sql (自带)Sun公司提供JDBC!

qq_44886213的博客 2064

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL基础笔记(五)DDL:操作表

操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。我们创建的数据库中没有任何表,因此进入mysql自带的mysql数据库,执行上述语句查看。注意:其他类型参考资料中的《MySQL数据类型].xlsx》注意:最后一行末尾,不能加逗号。DESC 表名称;

weixin_57111105的博客 175

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

mysql数据的添加-更新-删除及操作-笔记五

一、数据的添加|更新|删除 mysql使用INSERT语句想数据表中添加数据,并且根据添加方式的不同分为三种,分别是为表的所有字段添加数据、为表的指定字段添加数据、同时添加多条记录。 1、为表所有字段添加数据 1.1、INSERT语句中指定所有字段名 INSERT INTO 表名(字段名1,字段名2,....) VALUES(值1,值2,值3,....) 1.2、INSERT语句中不指定字段名 INSERT INTO 表名 VALUES(值1,值2,值3,....) 1.3、为表的指定字段添加数据 IN

qq_38891807的博客 266

MySql学习笔记(五):explain-数据读取操作的操作类型

explain命令如下:mysql>explainselect*fromt_blog; +----+-------------+--------+------+---------------+------+---------+------+------+-------+ |id|select_type|table|type|possible...

weixin_34113237的博客 234

五、mysql学习笔记——使用cmd进行基本数据库操作(二)

(一)使用cmd操作mysql 1、连接mysql (1)进入mysql\bin文件夹路径下, C:\Program Files (x86)\MySQL\mysql-8.0.19-winx64\bin (2)使用账号密码登陆到mysql服务器:mysql -u root -p yourpassword; 当出现以下界面,就说明已经登陆成功,接下来就可以在mysql环境下执行相关数据库操...

weixin_42678841的博客 216

mysql获取上条的id_MySql学习笔记(五):explain-数据读取操作的操作类型

explain命令如下:mysql>explainselect*fromt_blog;+----+-------------+--------+------+---------------+------+---------+------+------+-------+|id|select_type|table|type|possible_keys|key...

weixin_33117093的博客 325

MySQL笔记(五)使用python调用数据库进行操作

python 访问数据库流程 在pycharm中下载pymysql 打开数据库视图,相当去navicat 设置数据库 使用python对数据库进行操作 from pymysql import * def create_table(): # 创建表 conn = connect("127.0.0.1", "root", "123456", "zpcs",...

行者 161

MySQL学习笔记(五)、 数据操作语句(DML语句)

数据操作语句(DML语句) 增删改查 insert delete update select dml操作的对象是table里面的数据(记录)。 增删改查 1、增:insert 语句 insert into tbname(列名1,列名2,...)values(值1,值2...); 列名是表中对应的列,可以不按照顺序写出来;也可以只写出一部分,但省去的列必须可以为NULL,或有默认值。另外写出...

Three_dog的博客 383

MySQL操作笔记(五万字详解)

文章目录前言MySQL笔记1.sql、DB、DBMS分别及三者之间的关系2.什么是表(table)3.SQL语句分类4.如何导入数据(sql脚本文件)5.什么是sql脚本6.查看表结构7.查看表中的数据8.常用命令9.简单的查询语句(DQL)10.条件查询11.排序查询12.分组函数13.单行处理函数14.group by 和 having的使用15.总结DQL语句16.查询结果集的去重17.连接查询什么是连接查询连接查询的分类笛卡尔积现象如何避免笛卡尔积现象内连接之等值连接内连接之非等值连接自连接外连接三

保持学习 6810

MySQL笔记

前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,现在面试中,MySQL也成为了必问知识要点,但是MySQL要达到精通的程度,却并非那么容易,所以深度学习M有SQL真的非常重要。 本次分享阿里技术官手写的“MySQL笔记”一共分为上下两册: 上册主要是以大纲脑图为主,清晰的划分了知识点,每个细节都有涉及到,比较全面。 下册则更注重

fighting_tl的博客 2932

MySQL——五、库表操作(上篇)

本篇为MySQL的库表操作上篇:表的基本操作:详细内内容包含了:表的基本操作 创建表 数据类型 查看表 四、删除表 五、修改表的结构 六、复制表的结构 七、表的约束 八、数据库字典 九、存储引擎 十、表物理存储结构等等

钟言的博客 3924

五、MySQL之数据操作语言

新星计划第3季之第五篇

qq_43499848的博客 765
上一篇: mysql笔记(四)--索引
下一篇: Linux的奇怪错误记录
Rice__
博客等级 码龄8年 30粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值