mysql自定义函数

mysql基础学习二

帅比萌擦擦* 提交于 2019-12-24 04:00:39
视图 视图概念 视图是存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色。其实视图可以理解为一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全,如果原表改名或者删除则视图也失效。 视图操作 创建视图 语法结构: CREATE [ OR REPLACE ] VIEW [ view_name ] AS [ SELECT_STATEMENT ] ; 释义: CREATE VIEW : 创建视图 OR REPLACE : 可选,如果添加原来有同名视图的情况下会覆盖掉原有视图 view_name : 视图名称 SELECT_STATEMENT : SELECT 语句 e . g . create view c1 as select name , age from class_1 ; 视图表的增删改查操作 视图的增删改查操作与一般表的操作相同,使用insert update delete select即可,但是原数据表的约束条件仍然对视图产生作用。 删除视图 drop view [IF EXISTS] 视图名; IF EXISTS 表示如果存在,这样即使没有指定视图也不会报错。 drop view c1 ;

转载:Mysql安装、配置、优化

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-21 01:47:49
Mysq安装 一、安装Mysql5.5为例。 1、运行 mysql 安装文件;   2、按 Next,然后选择安装方式,有 “Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”,选择第二个选项 “Custom”,下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;   3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5",也可以修改为:“E:\Program Files\MySQL Server 5.5”。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql instance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;   4、选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源

mysql面试题狂刷(四)

丶灬走出姿态 提交于 2019-12-20 18:21:43
1.数据库完整性约束 实体完整性、参照完整性、用户自定义完整性 2.存储过程、触发器、函数的区别 触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。 本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少 1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 2)对于存储过程来说可以返回参数,而函数只能返回值或者表对象。 3

Mysql安装、配置、优化

空扰寡人 提交于 2019-12-20 01:04:13
Mysql安装、配置、优化 大家都知道MySQL是一款中、小型关系型数据库管理系统,很具有实用性,对于我们学习很多技术都有帮助,前几天我分别装了SQL Server 2008和Oracle 10g数据库,也用了JDBC去连接他们,都没有出现乱码。昨天看同学用Java连接MySQL数据库的时候,出现了乱码,这是我不知道的,我马上上网去查JDBC连接MySQL的操作,发现在用JDBC方式连接MySQL数据库的时候要传递一个能解决乱码的参数,才能将不是乱码的数据插入到数据库中.这是我要安装MySQL数据库的其中一个原因,想去体验以下它一下,再加上上课的机器配置比较低,装MySQL数据库做实验是最好的选择,正是由于这两个原因我安装了MySQL,在安装的过程中有些问题让我很注意,在安装的过程中我将步骤截了图,希望对有需要的人有所帮助,我的数据库是5.5.21这个版本的。以下是我的安装步骤: Mysql安装、配置 1、首先单击MySQL5.5.21的安装文件,出现该数据库的安装向导界面,单击“next”继续安装。 2、在打开的窗口中,选择接受安装协议,单击“next”继续安装。 3、在出现选择安装类型的窗口中,有“typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,因为通过自定义可以更加的让我们去熟悉它的安装过程,单击

MySQL 慢查询优化

喜欢而已 提交于 2019-12-19 07:52:17
为什么查询速度会慢    1.慢是指一个查询的响应时间长。一个查询的过程: 客户端发送一条查询给服务器 服务器端先检查查询缓存,如果命中了缓存,则立可返回存储在缓存中的结果。否则进入下一个阶段 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划。 MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询。 将结果返回给客户端    2.数据访问 是否向数据库请求了不需要的数据 是否扫描额外的记录    3.查询的方式 一个复杂的查询还是多个简单的查询 切分查询(将大查询切分成小查询,循环完成小查询) 分解关联查询 慢查询分析   问题SQL     把复杂的SQL分成多个简单SQL并执行,查看具体那个字段会慢,区分度不高。   EXPLAIN     显示SQL如何使用索引的执行计划。     执行计划的参数: table 显示这一行的数据是关于哪张表的 type 显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL possible_keys 显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句 key 实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE

MySQL基础知识

霸气de小男生 提交于 2019-12-17 18:09:55
一、MySQL安装 MySQL的下载 http://dev.mysql.com/downloads/mysql/ MySQL版本选择 MySQL功能自定义选择安装 1.功能自定义选择 2.路径自定义选择 3.设置root用户密码 4.安装完成,点击MySQL Workbench 6.3 CE进入MySQL客户端 二、SQL基础 SQL语句分类 1.DDL(Data Definition Languages)语句: 数据定义语言 ,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create/drop/alter 2.DML(Data Manipulation Language)语句: 数据操纵语句 ,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 insert/delete/update/select等 3.DCL(Data Control Language)语句: 数据控制语句 ,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant/revoke等 DDL语句(涉及表的定义、结构的修改) 一、create语句 Query Ok代表语句执行成功 1 row affected代表数据库一行收到影响 0.01 sec代表操作执行的时间

MySQL学习之SQL自定义函数

时光总嘲笑我的痴心妄想 提交于 2019-12-17 05:57:46
目录 自定义函数 自定义函数 ################################################################## # 自定义函数,不能进行select 等操作 # !!!注意!!! # 函数中不要写sql语句(否则会报错),函数仅仅只是一个功能,是一个在sql中被应用的功能 # 若要想在begin...end...中写sql,请用存储过程 # # 在v8中: # you *might* want to use the less safe log_bin_trust_function_creators variable # 解决: # SET GLOBAL log_bin_trust_function_creators = 1; 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(100, 200); # 删除函数 # drop function [if exists] f1; ############################

高性能MySQL--总览篇

有些话、适合烂在心里 提交于 2019-12-13 01:00:42
文章为转载: MySQL逻辑架构及性能优化原理   说起MySQL的查询优化,相信所有人都了解一些最简单的技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要。 MySQL逻辑架构   如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。   MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。   MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存储过程、触发器、视图等。   最下层为存储引擎,其负责MySQL中的数据存储和提取。和Linux下的文件系统类似,每种存储引擎都有其优势和劣势。中间的服务层通过API与存储引擎通信,这些API接口屏蔽了不同存储引擎间的差异。       每一个客户端发起一个新的请求都由服务器端的连接/线程处理工具负责接收客户端的请求并开辟一个新的内存空间,在服务器端的内存中生成一个新的线程

Mysql安装、配置、优化

一笑奈何 提交于 2019-12-11 20:59:11
Mysq安装 一、安装Mysql5.5为例。 1、运行 mysql 安装文件;   2、按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;   3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Program Files\MySQL Server 5.5\"。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql instance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;   4、选择服务器类型,"Developer Machine(开发测试类,mysql占用很少资源)"、"Server Machine(服务器类型

SOL自定义函数

喜欢而已 提交于 2019-12-10 06:28:31
先介绍下MySQL自带的一些函数: 结构:sql --> 结果 #作用 以下都是运行结果 : 字符串相关函数 select concat ( 'zhou' , 'yi' ) ; -- > zhouyi #字符串链接 select concat_ws ( '&' , zhou '' , 'yi' ) ; -- > zhou & yi #指定分割符号进行字符串链接 # FOMRAT ( N , D , locale ) ; N对象,D小数位数,locale可选 select format ( 2019.011 , 1 ) ; -- > 2019.0 #数字格式化 select lower ( 'ZY' ) ; -- > zy # 转小写 ; upper 转大写 select replace ( 'zhouyibaba' , 'zhouyi' , '' ) ; -- > baba# 替换 SELECT left ( 'chinese' , 4 ) ; -- > chin # 左截取 ; right ( str , len ) 右截取 ; substring指定截取 select length ( 'zhouyi' ) ; -- > 6 # 返回长度 select char_length ( "周毅" ) ; -- > 2 # 如果是length返回 6 select ltrim ( '