mysql函数

存储例程

徘徊边缘 提交于 2020-04-04 17:59:57
存储例程 存储例程是存储程序的一种类型,本质上也是封装了一些可执行的语句,只不过它的调用方式是:需要手动去调用!存储例程又可以分为存储函数和存储过程。 存储函数 创建存储函数 存储函数其实就是一种函数,只不过在这个函数里可以执行命令语句而已。函数它可以把处理某个问题的过程封装起来,之后直接调用函数就可以去解决同样的问题了。MySQL 中定义存储函数的语句如下: CREATE FUNCTION 存储函数名称([参数列表]) RETURNS 返回值类型 BEGIN 函数体内容 END 从这里可以看出,定义一个存储函数需要指定函数名称、参数列表、返回值类型以及函数体内容,如果该函数不需要参数,那参数列表可以被省略,函数体内容可以包括一条或多条语句,每条语句都要以分号 ; 结尾。里边的制表符和换行仅仅是为了好看,完全可以用空格代替。 mysql> delimiter $ mysql> create function avg_score(s varchar(100)) -> returns double -> begin -> return (select avg(score) from student_score where subject = s); -> end $ Query OK, 0 rows affected (0.01 sec) 定义了一个名叫 avg_score 的函数

Delphi 7连接MySql 5.5.15

给你一囗甜甜゛ 提交于 2020-04-04 08:05:30
原文:http://blog.csdn.net/akof1314/article/details/6822902/ 网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需。 系统环境:Windows XP SP3 软件环境:Delphi 7 、mysql-installer-5.5.15.0 1.ODBC方式 必须要先有MySql的ODBC驱动,我下载的是全安装版,包括MySql服务器、各种所支持的连接、工作台、示例数据库、文档,若是无ODBC驱动,可以到官网 http://dev.mysql.com/downloads/connector/odbc/ 下载。 ①数据源方式 首先,确认安装了MySql的ODBC驱动,打开“控制面板”→“管理工具”→“数据源”,切换到“驱动程序”页,查看“MySql ODBC 5.1 Driver",如下图所示: 切换到"系统DSN"→"添加"→"MySql ODBC 5.1 Driver",如下图所示: 弹出MySql数据源配置,数据源名称随意,TCP/IP Server为数据库地址,User用户名,Password密码,Database连接的数据库,点"Test"进行测试连接,如下图所示: 点击"OK"后,即可看到新增加了一个数据源。打开Delphi 7,在窗体上放置TADOConnection

Mysql数据库基本操作

笑着哭i 提交于 2020-04-04 01:50:43
(进入 mysql\bin 目录下) 注意在 mysql 控制台操作每句后要加分号 ; 初级篇 1、 进入数据库 mysql -u 用户名 -p 密码 2、 导出数据库 mysqldump -u 用户名 -p 密码 数据库名(表名)> 路径 备份.sql 3、 导入数据库 mysql -u 用户名 -p 密码 数据库名< 路径 备份.sql 或者进入mysql,使用source 路径 备份 此方法可以单独导入表 4、 显示所有数据库 show databases; 5、 使用数据库 use 数据库名; 6、 显示所有表 show tables; 7、 创建数据库 create database 数据库名; 8、 创建表 create table 表名(变量名 变量类型(大小)约束条件,变量名 变量类型(变量大小)约束条件,primary key(主键) ); 9、 描述表 describe 表名; 10、向表中输入数据 insert into 表名 values( ); 11、select 列 from 表 order by 列 desc/asc select count(*) from 表名 统计表中记录总数 descending 降序排列的意思 ascending 升序排列 12、删除表内容 delete from 表名 truncate table 表名 13、更新表内容

Mysql实战45讲学习详情----一条SQL查询语句是如何执行的?

人走茶凉 提交于 2020-04-02 19:26:10
大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 select * from T where ID=10; 这条查询语句的执行过程: 外部层:   用户与server层交互的媒介     一.客户端【用于连接数据库,输入命令/语句】       界面化连接数据库       输入 select * from T where ID=10; server层:   Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。     二.连接器【连接器负责跟客户端建立连接、获取权限、维持和管理连接。】       输入连接命令认证身份--mysql -h$ip -P$port -u$user -p         认证通过:连接器会到权限表里查询帐号权限              P:之后所有的权限判断逻辑都会依赖此时读到的权限               这意味着,一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置。         认证失败:Access denied for user      

MySQL优化(四) 慢查询的定位及优化

╄→尐↘猪︶ㄣ 提交于 2020-04-01 21:21:42
一、SQL语句优化的一般步骤: (1)通过 show status 命令了解各种 SQL 的执行效率; (2)定位执行效率较低的 SQL 语句(重点是 Select); (3)通过 explain 分析低效率的 SQL 语句的执行情况; (4)确实问题并采取相应的优化措施; 二、优化 1、show status 命令   格式: show [session | global] status like ... 如果不写[session | global],默认的是session,即取出当前回话的执行情况;  如果想查询所有的(即MySql启动到现在的信息), 则增加 global 参数; show status like "uptime" //查询MySql启动的时间; show status like "com_select" //查询MySql的查询次数 show status like "com_insert" //查询MySql的插入次数 show status like "com_update" //查询MySql的更新次数 show status like "com_delete" //查询MySql的删除次数 show global status like "uptime" //查询MySql启动的时间; show global status like "com

PHP 性能分析第三篇: 性能调优实战

雨燕双飞 提交于 2020-04-01 05:40:44
性能调优 不用运行的代码才是绝好的代码。其他只是好的代码。所以,性能调优时,最好的选择是首先确保运行尽可能少的代码。 OpCode 缓存 首先,最快且最简单的选择是启用 OpCode 缓存。OpCode 缓存的更多信息可以在 这里 找到。 在上图,我们看到启用 Zend OpCache 后发生的情况。最后一行是我们的基准,也即没有启用缓存的情况。 在中间行,我们看到较小的性能提升,以及内存使用量的大幅减少。小的性能提升(很可能)来自 Zend OpCache 优化,而非 OpCode 缓存。 第一行是优化和 OpCode 缓存后结果,我们看到很大的性能提升。 现在,我们看看 APC 之前和之后的变化。如上图所示,跟 Zend OpCache 相比,随着缓存的建立,我们看到初始(中间行)请求的性能下降,在消耗时长与内存使用量方面的表现都明显下降。 接着,随之 opcode 缓存的建立,我们看到类似的性能提升。 内容缓存 第二件我们能做的事是缓存内容——这对 WordPress 而言小菜一碟。它提供了许多安装简便的插件来实现内容缓存,包括 WP Super Cache。WP Super Cache 会创建网站的静态版本。该版本会在出现诸如评论事件时依照网站设置自动过期。(例如,在非常高负载情况下,您可能会想禁止任何原因造成的缓存过期)。 内容缓存只能在几乎没有写操作时有效运行

深入研究mysql中group by与order by取分类最新时间内容——同理在android里也可用

女生的网名这么多〃 提交于 2020-04-01 01:19:14
鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里,(不知道是不是现在水平的限制,总之我还没找到在用ContentProvider时可以使用子查询),主要方法是用SQLiteDatabase 的 rawQuery,直接运行sql语句就可以了。 以下是转自网上的一篇文章 本文就和大家一起深入研究下mysql中group by与order by.下面是我模拟我的内容表 我现在需要取出每个分类中最新的内容 select * from test group by category_id order by `date` 结果如下 明显。这不是我想要的数据,原因是msyql已经的执行顺序是 引用 写的顺序:select ... from... where.... group by... having... order by.. 执行顺序:from... where...group by... having.... select ... order by... 所以在order by拿到的结果里已经是分组的完的最后结果。 由from到where的结果如下的内容。 到group by时就得到了根据category_id分出来的多个小组 到了select的时候,只从上面的每个组里取第一条信息结果会如下 即使order by也只是从上面的结果里进行排序

10分钟梳理MySQL核心知识点

被刻印的时光 ゝ 提交于 2020-03-31 04:09:29
今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总; 数据库事务特性和隔离级别; 详解关系型数据库、索引与锁机制; 数据库调优与最佳实践; 面试考察点及加分项。 一、数据库的不同类型 1.常用的关系型数据库 Oracle:功能强大,主要缺点就是贵 MySQL:互联网行业中最流行的数据库,这不仅仅是因为MySQL的免费。可以说关系数据库场景中你需要的功能,MySQL都能很好的满足,后面详解部分会详细介绍MySQL的一些知识点 MariaDB:是MySQL的分支,由开源社区维护,MariaDB虽然被看作MySQL的替代品,但它在扩展功能、存储引擎上都有非常好的改进 PostgreSQL:也叫PGSQL,PGSQL类似于Oracle的多进程框架,可以支持高并发的应用场景,PG几乎支持所有的SQL标准,支持类型相当丰富。PG更加适合严格的企业应用场景,而MySQL更适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。 2.NoSQL数据库(非关系型数据库) Redis:提供了持久化能力,支持多种数据类型。Redis适用于数据变化快且数据大小可预测的场景。 MongoDB:一个基于分布式文件存储的数据库,将数据存储为一个文档,数据结构由键值对组成。MongoDB比较适合表结构不明确,且数据结构可能不断变化的场景,不适合有事务和复杂查询的场景。 HBase:建立在HDFS

mysql入门(四)

左心房为你撑大大i 提交于 2020-03-28 18:15:22
数据库查询操作 关键字:select select 结果集 from 数据源 [where 条件] [group by(分组)] [having 条件] [order by(排序) asc|desc] [limit(限制) s,n] 结果集(字段,*代表所有字段);s start 从第几条开始,查询n条数据,s不写默认从第一条开始。 (1)字段表达式 select 除了可以做查询,还可以调用函数,也可以用来做计算。 select rand(); (2)from子句 from 子句后面跟的是数据源。 (3)dual表 dual不是一个真实的表,只是一个语法; ​ dual的主要作用是为了保证select语句的完整性而设计的。 (4)where子句 where子句的作用,筛选过滤数据; 一般跟在数据源的后面,位置不能乱放。 (5)is null | is not null 筛选数据是否为空或不为空; 放在where的后面,是where的判断条件之一。 (6)between | not between 筛选数据的范围,用在数字集上 select * from user where uid between 2 and 4; select * from user where uid>1 and uid<5; (7)MySQL中的运算符 a.算数运算符 + - * / % ++ -- b

一条SQL查询语句是如何执行的?

不想你离开。 提交于 2020-03-28 17:47:49
导读 Mysql在中小型企业中是个香饽饽,目前主流的数据库之一,几乎没有一个后端开发者不会使用的,但是作为一个老司机,仅仅会用真的不够。 今天陈某透过一个简单的查询语句来讲述在Mysql内部的执行过程。 select * from table where id=10;    撸它 首先通过一张图片来了解一下Mysql的基础架构,如下: 从上图可以看出,Mysql大致分为Server层和存储引擎层两部分。 Server层包括 连接器 、 查询缓存 、 分析器 、 优化器 等,其中包含了Mysql的大多数核心功能以及所有的内置函数(如日期,时间函数等),所有跨存储引擎的功能都在这一层实现,比如 存储过程 、 触发器 、 视图 等。 存储引擎层负责数据的存储和提取。它的架构是可插拔式的,支持 InnoDB 、 MyISAM 等多个存储引擎。Mysql中主流的存储引擎是InnoDB,由于它对事务的支持让它从Mysql5.5.5版本开始成为了默认的存储引擎。 大致了解了整体架构,现在说说每一个基础的模块都承担着怎样的责任。 1. 连接器 顾名思义,是客户端和Mysql之间连接的媒介, 负责登录、获取权限、维持连接和管理连接 。连接命令一般如下: mysql [-h] ip [- P] port -u [user] -p 在完成经典的TCP握手后,连接器会开始认证身份,要求输入密码。