mysql创建存储过程

Mysql /Oralce 50个区别

吃可爱长大的小学妹 提交于 2019-12-05 20:52:44
   1. 有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦.   2. Oracle不支持偏移(offset)语法. 3. Oracle的复制功能可能比MySQL更加健壮,不过也更加难以配置.   4. 对于多个Master类型的系统,大部分用户都希望你使用更加复杂也更加昂贵的Oracle RAC(虽然可能NDB更加健壮).   5. Oracle的分区功能非常健壮,但是它不是内置的,并需要专门为此付费(分区功能是在Enterprise Edition里面是内置的).   6. 在Linux/Unix上,Oracle并不象Mysql那么方便,很多Linux/Unix发行版默认就会自带Mysql.(我对这一点的理解与翻译可能都有偏差)   7. INSERT … ON DUPLICATE KEY UPDATE语法将不再可用,不过你需要学习更加复杂(但是符合SQL标准)的MERGE语法.   8. Oracle的ROLE架构与MySQL有很大差异,无法再使用root角色来完整所有工作.(不过Sys用户的权限仍然与root相差无几,只是为了安全着想,不建议这么使用了).   9. Role 帐户与特定的Schema联系在一起(反之也一样),类似于MySQL数据库中的Database概念.

MySQL--MySQL WorkBench--图形交互客户机的下载,安装与介绍

前提是你 提交于 2019-12-05 17:46:25
我们发现安装完以后的MySQL是通过cmd来控制的,这样的话就非常的不方便了. 因为我们不能方便地查询其他功能. 在<MySQL必知必会>这本书中介绍到了两种图形交互客户机,分别是MySQL Administrator和MySQL Query Browser, 这两种图形交互客户机已经停止更新了,甚至是被淘汰了. 因此,我们需要下载MySQL的图形交互客户机MySQL WorkBench,这款的话还在时刻更新当中. 下面我来介绍怎么下载与安装MySQL WorkBench. 一.下载 1.地址: https://dev.mysql.com/downloads/workbench/ (点击网址进去,直接下载就可以) 二.安装 因为这是客户端,所以直接安装就行,没有任何难度. 三.介绍 1.打开桌面,就进入了登陆界面 点击账号,就可以登陆MySQL进行操作了. 2.接着,打开主界面进行操作,主界面如下图: (按照图片中的序号一个一个看,大概了解界面的布局) 3.首先先介绍菜单栏的内容 Files Edit 1 New model 建立新的数据库 1.主要是编辑MySQL的一些操作 2.New Query Tab 建立新的查询选项卡 2.比较简单,就不细说了 3.Open modl 打开以前建立的数据库 4.Open SQL Script 打开SQL脚本文件 View Query 1

python27期尚哥讲数据库:

柔情痞子 提交于 2019-12-05 14:34:56
数据:描述事物的一种符号数据就是数值,是指对客观事件(客观事物)进行观察的结果是对客观事物的性质、状态以及相互关系等进行记载的符号或这些符号的组合它是可以进行记录并可以鉴别的符号,是对客观事物的逻辑归纳表现形式多样:文本、图形、音视频(都是二进制)数据有很多种,最简单的就是数字数据也可以是文字、图像、声音等数据库(DataBase,简称DB):存放数据的仓库(文件夹)数据按照一定的格式存放在计算机中,可为用户共享方便存储、快速查找数据库管理系统(DataBase Management System 简称DBMS)科学的组织和存储数据是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。有oracle、MySQL、SQL Server等等mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。(官网下载,有些大公司会做二次封装用自己的)oracle主要用于银行、铁路、飞机场等。该数据库功能强大(规避很多风险),软件费用高。也是甲骨文公司的产品。sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等(使用较少)数据库应用程序(DBAS

mysql定时任务(event事件)

痴心易碎 提交于 2019-12-05 11:59:23
1.event事件 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器” 事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的,事件也称为临时性触发器 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次 2.创建事件 事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action ),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者 benin...end语句块,这两种情况允许我们执行多条SQL sql语句创建事件: 每隔10秒往数据库插入一条数据 navicat创建事件: 右键新建事件: 编写需要执行的sql语句 设置计划任务 一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中

MySql学习笔记

吃可爱长大的小学妹 提交于 2019-12-05 11:07:44
show命令 show status用于显示服务器状态信息 show grants显示授予用户的安全权限。 show errors和show warnings用来显示服务器错误或者警告信息。 limit语句的替换信息 为了区别limit 3,4的含义是从行4开始的3行还是从行3开始的4行,这个容易把人搞糊涂,出于这个原因,MySql 5支持如下的语法: limit 4 offset 3 等价于 limit 3,4 like语句的注意点 在like语句中,是不区分大小写的。 如果要搜索的字符后面含有空格,使用like ‘%keyword’ 是匹配不到 keyword 的。 like ‘%’也不能匹配null mysql中的正则表达式 至3.23.4后,正则表达式不区分大小写,如果要区分大小写,可使用BINARY关键字 如: where pro_name regexp binary 'keyword' 针对特殊字符,如 .、- 需要使用 \\ 为前导, \\- 表示 - , \\. 表示 . 匹配字符类:常用的有如下 定位元字符: [[:<:]] 表示词的开始 [[:>:]] 表示词的结尾 可以在不使用数据表的情况下验证正则表达式。 regexp检查如果没有匹配将返回0,如果匹配将返回1. 如下: SELECT 'hello123' REGEXP '[[:digit:]]' 将返回1

mysql查漏补缺

十年热恋 提交于 2019-12-05 07:37:42
Mysql查漏补缺 存储引擎 数据库使用存储引擎来进行CRUD的操作,不同的存储引擎提供了不同的功能。Mysql支持的存储引擎有InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等,默认使用InnoDB作为存储引擎。 存储引擎列表 功能 MylSAM MEMORY InnoDB Archive 存储限制 256TB RAM 64TB None 支持事务 No No Yes No 支持全文索引 Yes No No No 支持树索引 Yes Yes Yes No 支持哈希索引 No Yes No No 支持数据缓存 No N/A Yes No 支持外键 No No Yes No 其中MEMORY,由于存储是在内存,可以把一些临时数据存放进使用这种存储引擎的Mysql中,当然在目前也有类似功能的项目出现,如Redis,Memcache。 索引 索引就是表的目录,相当于书的目录,可以更快的查找到想要的记录。而索引本身,会单独保存在一个文件中。 优化索引 1、数据类型越小越好:数据类型越小,占用的空间更小,处理速度就会变快。 2、数据类型越简单越好:比如整型,相比于字符型,比较起来的复杂度更低。 3、避免NULL:有NULL值的列很难进行查询优化。 不适合索引的场景 1、查询中很少用到的列。比如student表中的性别列

数据库MySQL之存储过程

帅比萌擦擦* 提交于 2019-12-05 07:29:27
存储过程的定义   存储过程是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。其在思想上与面向对象编程中函数的定义与调用一致,存储过程只是SQL语言维度上的封装与运用。 存储过程的优缺点   优点:   1) 简化了存储调用者的步骤,降低了存储调用者的学习成本   2) 隐藏了存储过程的实际逻辑,易于商业内容的保密   3) 降低了sql调用方的程序复杂度   缺点:存储过程受限于数据库语言,移植性较差 存储过程的语法   1) 声明语句结束符:DELIMITER $$   注:语句结束符默认是 ; 声明语句结束符将其变成 $$,这样在过程体中的分号传递到服务器时,不会被客户端解释。   2) 声明存储过程:CREATE PROCEDURE demo_demrystv (IN param_in int)   3) 创建存储过程 create procedure 存储过程名( 参数 )   4) 声明存储过程的开始和结束:BEGIN...END   5) 变量赋值 SET @param_in = 33 存储过程的示例 在开发中,比如想要向数据库中循环插入日期,可以通过MySQL中的存储过程来实现。 DELIMITER $$ DROP PROCEDURE IF EXISTS create_date $$ CREATE PROCEDURE create_date (s

更改用户host留下的坑

荒凉一梦 提交于 2019-12-05 06:56:22
前言: 我们在创建数据库用户的时候都会指定host,即一个完整的用户可描述为 'username'@'host' 。创建用户时不显式指定host则默认为%,%代表所有ip段都可以使用这个用户,我们也可以指定host为某个ip或ip段,这样会仅允许在指定的ip主机使用该数据库用户。不过你也应该明白 'username'@'%' 和 'username'@'192.168.6.%' 是两个毫无关联的用户,这两个用户可以有不同的密码和权限,这里不建议创建多个同名不同host的用户,还有不要轻易更改用户的host,笔者曾经遇到过因为更改用户host引发的故障,下面将其分享出来,为你讲述前因后果。 1.故障模拟 当时为了规范安全,将某个程序用户的host由%改为了应用服务器ip段,过段时间业务反馈某些功能报错,经排查发现是因为无法调用存储过程(大家可以先思考下原因),下面模拟下故障操作。 # 原有用户、表、存储过程模拟创建 mysql> create user 'testuser'@'%' identified by '123456'; Query OK, 0 rows affected (0.04 sec) mysql> grant select,insert,update,delete,execute on `testdb`.* to 'testuser'@'%'; Query OK,

MySQL 安装配置

徘徊边缘 提交于 2019-12-05 06:19:23
目录 数据库概念 MySQL的安装 修改密码与破解管理员密码 统一字符编码 基本sql语句 表操作 数据库概念 那Mysql能干嘛呢?它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作 那我们暂且能不能理解为mysql就是用来帮我们操作文件的! MySQL:用于管理文件的一个软件(两个程序) ​ -服务端软件 ​ -socket服务端 ​ -本地文件操作 ​ -解析指令 ​ -客户端软件 ​ -socket客户端 ​ -发送指令 ​ -解析指令 客户端可以有很多个,python,java,php,c++都可以编程一个客户端,用代码指定ip port链接上服务端即可操作 那么问题来了,不同的客户端练我一个服务端,语言不相同无法实现交流。所以应该有共同的语言才行>>>解析指令(sql语句) 技能: ​ -安装 服务端和客户端 ​ -链接 ​ -学习sql语句规则,指定服务端做任何操作 mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库 其他类似软件: ​ 关系型数据库:sqlite,db2,oracle,access,sql server,MySQl(必须要表格存储,需要建立表格(k可以就是user, v就是可以是多类型的,比如说是大列表,大字典

MySQL数据库之存储过程

守給你的承諾、 提交于 2019-12-05 02:24:19
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件,虽然它们的作用不仅限于批处理。在我看来, 存储过程就是有业务逻辑和流程 的集合, 可以在存储过程中创建表,更新数据, 删除等等。 一个简单的存储过程: create procedure porcedureName () begin select name from user; end; 存储过程用create procedure 创建, 业务逻辑和sql写在begin和end之间。mysql中可用call porcedureName ();来调用过程。 删除存储过程 DROP PROCEDURE IF EXISTS porcedureName; -- 没有括号() 在这里,我们还要了解三个特别的字段in,out以及inout的区别: 1.参数in的使用(代表输入,意思说你的参数要传到存过过程的过程里面去) /** 案例功能:求1-n的和 */ delimiter $ create procedure p1(in n int) begin declare total int default 0; declare num int default 0; while num < n do set num:=num+1; set total:=total+num; end while; select