mysql创建存储过程

mysql基础

大兔子大兔子 提交于 2019-12-05 01:51:33
目录 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 1.3 关系型数据库的常见组件 1.4 SQL语句 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 3.1 mysql工具使用 3.2 服务器监听的两种socket地址 4. mysql数据库操作 4.1 DDL操作 4.1.1 数据库操作 4.1.2 表操作 4.1.3 用户操作 4.1.4 查看命令show 4.1.5 获取帮助 4.2 DML操作 4.2.1 insert语句 4.2.2 select语句 4.2.3 update语句 4.2.4 delete语句 4.2.5 truncate语句 4.3 DCL操作 4.3.1 创建授权grant 4.3.2 查看授权 4.3.3 取消授权revoke 1. 关系型数据库介绍 1.1 数据结构模型 数据结构模型主要有: 层次模型 网状结构 关系模型 关系模型: 二维关系:row,column 数据库管理系统:DBMS 关系:Relational,RDBMS 1.2 RDBMS专业名词 常见的关系型数据库管理系统: MySQL:MySQL,MariaDB,Percona-Server PostgreSQL:简称为pgsql Oracle MSSQL 事务:

Mysql日志管理

孤街浪徒 提交于 2019-12-04 21:03:43
错误日志 查询日志 慢查询日志 二进制日志 toc error log 错误日志 记录mysql启停错误信息用于排错 general log 普通日志 记录客户端查询日志用于开发 bin log 二进制日志 增量备份 DDL DML DCL 用于备份 relay log 中继日志 接收 replication master 常用于主从复制 slow log 慢查询日志 查询时间超过指定值用于调优 错误日志 Mysql 的错误日志 error log 记录 mysqld 服务进程启动/关闭或运行过遇到的错误日志。 错误日志默认开启(没有开启按照如下方式开启) ## 在配置文件 [mysqld] 标签内增加 log-error=/log/mysql/err.log [root@Mysql ~]# vim /etc/my.cnf [mysqld] ...... log-error=/log/mysql/err.log ## 创建对应目录与日志文件 [root@Mysql ~]# mkdir -p /log/mysql/ [root@Mysql ~]# touch /log/mysql/err.log ## 更改日志文件属主和属组为 mysql [root@Mysql ~]# chown -R mysql.mysql /log/mysql/err.log ## 重启数据库生效 [root

Mysql备份与恢复

烂漫一生 提交于 2019-12-04 21:03:38
通常数据库备份数据文件、 binlog 日志文件和 my.cnf 配置文件都应在其他地方保存一份甚至多份 仅备份是没有任何意义, 需要在测试环境中做日常恢复演练, 测试备份的可用性, 恢复较比备份更加的重要 备份: 能够有效防止设备故障以及人为误操作带来的数据丢失, 例如:将数据文件保存在远端。 冗余: 数据有多分冗余, 但不等于备份, 只能防止机械故障丢失的数据, 例如: 主备模式、数据库集群。 Mysql逻辑备份与恢复 完整备份与恢复 增量备份与恢复 Mysql物理备份与恢复 完整备份与恢复 增量备份与恢复 toc 数据库备份必须考虑因素 数据的一致性 服务的可用性 数据库备份方式 逻辑备份: 备份 DDL DML DCL 语句, 适用于中小型数据库, 效率相对低下。 mysqldump、mydumper 物理备份: 直接复制数据库文件, 适用于大型数据库环境, 效率相对较高。 xtrabackup、inbackup、cp、tar、lvm snapshot 数据库备份模式 完全备份 增量备份 差异备份 Mysql逻辑备份与恢复 Mysql自带逻辑备份工具 mysqldump , 可以保证数据备份一致性, 以及服务可用性 不管物理备份还是逻辑备份, 必须开启 binlog 日志 mysqldump -h 服务器 -u 用户名 -p 密码 数据库名 > 备份文件.sql -A, -

第十章 数据库

邮差的信 提交于 2019-12-04 18:00:21
数据库 1.1 初始数据库 1.1.1 使用数据库的原因 很多功能如果只是通过操作文件来改变数据是非常繁琐的,程序员需要做很多事情 对于多台机器或者多个进程操作用一份数据,程序员自己解决并发和安全问题比较麻烦 需要自己处理一些数据备份,容错的措施 1.1.2 使用数据库的好处 本质:C/S架构的,操作数据文件的一个管理软件 好处: 帮助我们解决并发问题 能够帮助我们用更简单更快速的方式完成数据的增删改查 能够给我们提供一些容错、高可用的机制 帮助我们进行权限的认证 1.1.3 数据库管理系统(DBMS) 含义:专门用来管理数据文件,帮助用户更简洁的操作数据的软件 相关概念: DataBase Management System,简称DBMS 数据库服务器:运行数据库管理软件 数据库管理员DBA:管理数据库 数据库(DataBase,简称DB):即文件夹,用来组织文件/表 数据库是长期存放在计算机内、有组织、可共享的数据集合 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享 表:即文件,用来存放多行内容/多条记录 数据(Data):描述事物的符号记录称为数据 分类: 关系型数据库: sql server oracle:收费的、比较严谨、安全性比较高 国企、事业单位使用 银行、金融行业使用 mysql:开源的、免费的

Mysql 存储过程声明及使用

爷,独闯天下 提交于 2019-12-04 11:57:28
存储过程(Stored Procedure):是一组用于完成特定数据库功能的sql语句集,该sql语句集经过编译后存储在数据库系统中,在使用的时候,用户通过调用指定已经定义好的存储过程并执行它,从而完成一系列的数据库操作; 1.声明创建一个存储过程 # 定义基本存储过程 DROP PROCEDURE IF EXISTS test; #如果存在指定存储过程则删除它 DELIMITER // # 定义存储过程结束符, CREATE PROCEDURE test() # 创建存储过程 BEGIN # 存储过程要执行的操作 SELECT 'Hello World!' END// CALL test(); # 调用存储过程 2.声明变量 #存储过程变量的声明和使用 DROP PROCEDURE IF EXISTS test; #如果存在指定存储过程则删除它 DELIMITER // # 定义存储过程结束符, CREATE PROCEDURE test() BEGIN DECLARE aa VARCHAR(20); # 定义变量 DECLARE bb INT DEFAULT 0; # 定义int 类型变量 默认为0; SET aa = '张三'; # 变量赋值 SELECT aa; # 输出变量 SELECT bb; # 输出变量 END// CALL test(); # 调用存储过程 3

MySql高级-笔记

为君一笑 提交于 2019-12-04 11:36:51
一 索引、事务、锁 索引:相当于书的目录 优点:查询速度快 缺点:占用存储空间大,维护和创建有成本,存储方式是树结构 索引使用: create index myindex on table(name);//创建索引 名:myindex 表名:table 列名:name show index from table;//查询 table表所有创建的索引 drop index myindex on table;//删除 table表的myindex索引 explain select * from table where name = 'abc';//分析SQL语句是否使用索引 事务:一个最小的不可再分的工作单元 4大特征:原子性(A) 一致性(C) 隔离性(I) 持久性(D) 4隔离级别: 读未提交 读已提交 可重复读 串行化 事务使用: start transaction;//开始事务 commit;//提交事务 rollback;//回滚事务 锁:多线程并发访问某一资源触发机制 乐观锁:先拿数据,再锁定. 乐观心态 悲观锁:先锁定,再拿数据. 悲观心态 共享锁 允许其他进行读取数据 不允许修改 排它锁 不允许对改数据任何操作 等待释放再解除 锁的粒度: 行锁 < 页锁 < 表锁 页锁最为常用 二 存储过程 存储过程:SQL的封装与重用 优点:安全,提高性能,降低程序与数据库的交流

大数据-mysql的用法

人盡茶涼 提交于 2019-12-04 11:04:53
mysql的用法 1 #登录数据库 mysql –h localhost –u root -p; mysql –u root -p 2 #修改密码 mysqladmin -uroot -pold password new; 3 #显示数据库 show databases; 4 #显示数据表 show tables; 5 #选择数据库 use examples; 6 mysql授权访问权限 mysql -uroot -p #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123456' WITH GRANT OPTION; FLUSH PRIVILEGES; 7 #创建数据库并设置编码utf-8 多语言 create database `examples` default character set utf8 collate utf8_general_ci; 8 #删除数据库 drop database examples; 9 #创建表 create table test( id int(10) unsigned zerofill not null auto_increment, email varchar(40) not null

MySQL数据库用户和权限管理

蹲街弑〆低调 提交于 2019-12-04 10:42:59
一、视图  视图: VIEW,虚表,保存有实表的查询结果,在视图插入的内容都会存入表中。  创建方法: CREATE VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 查看视图定义: SHOW CREATE VIEW view_name  删除视图: DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE] 视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对基表实现;其修改操作受基表限制 (1) 创建一个视图: create view v_students as select stuid,name,age from students; 创建一个新的视图,起名为v_students create view v_old_students as select stuid,name,age from students where age > 50; 将视图大于50岁以上的名字进行显示。 inster v_old_students values(27,'li',20);此时可以在视图中添加一个20岁的内容,实际添加到表里边,而视图中不会显示。 二、函数 1、函数

【mysql】Mysql5.7--sys_schema视图

家住魔仙堡 提交于 2019-12-04 06:44:48
前言: MySQL 5.7中引入了一个新的sys schema,sys是一个MySQL自带的系统库,在安装MySQL 5.7以后的版本,使用mysqld进行初始化时,会自动创建sys库。 sys库里面的表、视图、函数、存储过程可以使我们更方便、快捷的了解到MySQL的一些信息,比如哪些语句使用了临时表、哪个SQL没有使用索引、哪个schema中有冗余索引、查找使用全表扫描的SQL、查找用户占用的IO等,sys库里这些视图中的数据,大多是从performance_schema里面获得的。目标是把performance_schema的复杂度降低,让我们更快的了解DB的运行情况。 1.sys库总览 本篇文章是基于MySQL 5.7.23版本实验的。打开sys库(希望你跟着我一起做哦),我们会发现sys schema里包含1个表,100个视图,存储过程及函数共48个,如下图所示: 其实我们经常用到的是sys schema下的视图,下面将主要介绍各个视图的作用,我们发现sys schema里的视图主要分为两类,一类是正常以字母开头的,共52个,一类是以 x$ 开头的,共48个。字母开头的视图显示的是格式化数据,更易读,而 x$ 开头的视图适合工具采集数据,显示的是原始未处理过的数据。 下面我们将按类别来分析以字母开头的52个视图: host_summary :这个是服务器层面的,以IP分组

MySQL内置功能

不羁的心 提交于 2019-12-04 05:51:01
1、视图 视图是一个虚拟表(非真实存在),用户只需要使用[名称]即可获取结果集,可以将结果集当作表来使用。 创建视图:create view course_view as select * from course where id > 2; 使用视图:select * from course_view;(本质上是与select * from course where id > 2;相同) 但是无法修改视图中的记录,而且在涉及多个表的情况下是根本无法修改视图中的记录的 修改视图:alter view course_view as 新的sql语句; 删除视图:drop view course_view 2、触发器 触发器能够对表在进行增、删、改操作的前后进行操作。 创建触发器: 在对表进行插入操作之前进行其他操作。 create trigger tri_before_insert_t1 before insert on t1 for each row begin ... end 在对表进行插入操作之后进行其他操作。 create trigger tri_after_insert_t1 after insert on t1 for each row begin ... end 触发器无法由用户主动出发,只能在指定的表被增删改之后 被动的触发 删除触发器:drop trigger tri