7 月 2021

MySQL游标的简单实践

Q:为什么要使用游标? A:   在存储过程(或函数)中,如果某条select语句返回的结果集中只有1行,可以使用select into语句(上几篇博客有介绍到用法)来得到该行进行处理;如果结果集中有多行,简单的select语句成批地进行处理,需要在检索出来的行中前进或后退一行或多行……若是想得到其中的每一行进行处理,就必须使用游标。 Q:什么是游标? A:   游标(cursor),是一个存储在MySQL服务器上的数据库查询,游标不是一条 SELECT语句,而是被该语句检索出来的结果集;可以看做是指向查询结果集的指针;通过cursor,就可以一次一行的从结果集中把行拿出来处理。...

存储过程的查、改、删

一、存储过程的查询 1、通过数据字典表查询   存储过程的定义信息保存在数据字典表information_schema.routines中: 2、使用show语句查询 SHOW PROCEDURE STATUS WHERE db=’数据库名’; 3、查看存储过程详细的定义信息 SHOW CREATE PROCEDURE 数据库.存储过程名; 二、存储过程的修改 注意:   ALTER {PROCEDURE | FUNCTION}……语句只能改变存储过程的特征,不能修改过程的参数以及过程体...

MySQL触发器trigger的使用

阅读目录:触发器trigger的使用 创建触发器     单一执行语句、多执行语句     new、old详解 查看触发器 删除触发器:慎用触发器,不用就删除 Q:什么是触发器? A:   触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。 触发器的特性:   1、有begin end体,begin end;之间的语句可以写的简单或者复杂   2、什么条件会触发:I、D、U   3、什么时候触发:在增删改前或者后   4、触发频率:针对每一行执行   5、触发器定义在表上,附着在表上。 也就是由事件来触发某个操作,事件包括INSERT语句,UPDA...

MySQL事件调度器event的使用

Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下;十分钟以后执行一下begin end。亦或有一个需求,每个多长时间周期性执行begin end。那么这个时候该怎么办呢? A:   在Linux里面可以使用at、crontab来实现上面的需求;MySQL里面也有这样的方法,就是event对象。   也被称为MySQL事件调度器(Event Scheduler),可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN … END);或者每隔固定间隔重复执行。类似于Linux下的at、crontab或Windows下的Task Sched...

Linux目录结构及作用

/:根目录 /bin:存放基础系统所需的最基础的命令(程序) binary   比如:ls、cp、mkdir等   功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令 /boot:存放系统的引导文件(类似于windows的C盘) /dev:存放必要的设备文件 device   比如:声卡、磁盘、/dev/null,/dev/zero /etc:系统程序和大部分应用程序的全局配置文件   比如:用户帐号及密码配置文件     /etc/opt:/opt对应的配置文件     /etc/X11:Xwindows系统配置文件     /etc...

如何在Linux实现自动运行程序

1、开机启动时   Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。   init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d ( /etc/rc?.d) 目录下的脚本文件,可以使init自动启动其它程序。 /etc/rc:This file is responsible for starting/stopping services when the runlevel changes 例如:   编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行”xinit&#822...

MySQL开发总结

一、理解MySQL基本概念   1、MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件   2、MySQL数据库:就是按照数据结构来组织、存储和管理数据的仓库   3、MySQL数据库实例:     ①MySQL是单进程多线程(而oracle是多进程),也就是说MySQL实例在系统上表现就是一个服务进程,即进程;     ②MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的;   一般情况下一个实例操作一个或多个数据库;集群情况下多个实例操作一个或多个数据库。 二、MySQL数据库启动以及启动的判断   1、启动MySQL数据实例:...

MySQL自增长的bug

MySQL自增长的bug 实验环境: mysql> status ————– mysql Ver 14.14 Distrib 5.7.14, for Linux (x86_64) using EditLine wrapper …… (截图取材于标准MySQL5.7官方文档–没有盗版) 1、修改自增长变量值 [crayon-...

MySQL开发面试题

……继上一篇MySQL的开发总结之后,适当的练习还是很有必要的……   SQL语法多变,不敢保证唯一,也不敢保证全对,如果错误欢迎指出,即刻修改。 一、现有表结构如下图 TABLENAME:afinfo Id name age birth sex memo 1 徐洪国 37 1979-03-23 男 高中 2 王芳 26 1988-02-06 女 本科 3 李达康 24 1990-04-02 男 硕士 4 侯亮平 30 1984-09-12 女 博士 5 徐夫子 27 1987-12-30 男 大专 6 …… …… …… …… …… 1)请编写sql语句对年龄进行升序排列 [cr...

使用expect的自动化交互

Q:利用shell脚本实现ssh自动登录远程服务器? A:expect命令 #!/usr/bin/expect  //告诉操作系统,此脚本里的代码用expect这个shell来执行(类似与bash) shell> expect 脚本  //执行expect脚本 1、使用expect -c的嵌套调用   如果需要在shell脚本中嵌套expect代码,就要使用expect -c “expect代码” 格式:spawn ss...