mysql创建数据库

mysql存储过程基础

别说谁变了你拦得住时间么 提交于 2020-02-07 19:23:31
存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。 存储过程的优点: (1). 增强SQL语言的功能和灵活性 :存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2). 标准组件式编程 :存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3). 较快的执行速度 :如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。 (4).减少网络流量

【大白话系列】MySQL 学习总结 之 Java系统如何和 MySQL 打交道?

两盒软妹~` 提交于 2020-02-07 19:12:25
一、MySQL驱动 我们如果在 Java 系统里要访问 MySQL,我们只需要引入一个 MySQL 的驱动即可,然后通过 MySQL 驱动和 MySQL 进行网络通信,对数据库表进行各种增删改查的操作。 二、如何引入 MySQL 驱动 1、以前的老旧方法: 我们会找到 MySQL 驱动的 jar 包,然后放到项目中的 lib 文件夹里头。 2、现在比较高级的方法 : 可以直接使用 Maven 或者 Gradle 引入 MySQL 驱动的依赖。 maven: <dependencies> <dependency> <groupId>MySQL</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> </dependencies> gradle: dependencies{ compile ("mysql:mysql-connector- java:5.1.24") } 三、客户端连接池 1、争抢数据库连接: 上面说到,我们是通过 MySQL 驱动和 MySQL 进行网络通信,既然是网络通信,那么就会有一条数据库连接在。 我们的系统当然不可能每秒只有一条请求过来,那么就会存在多个请求去争抢一个数据库连接,没抢到的还需要排队等候

MySQL事务提交过程(一)

霸气de小男生 提交于 2020-02-07 15:38:18
MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。 本文仅讨论binlog未打卡状态下的提交流程,后续会讨论打开binlog选项后的提交逻辑。 测试环境 OS:WIN7 ENGINE: bin-log:off DB: 测试条件 set autocommit=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(20) NOT NULL, `account` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) USING BTREE, KEY `name` (`name`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 测试语句 insert into

源码安装LAMP架构

為{幸葍}努か 提交于 2020-02-07 14:14:00
一、 实验目的 通过源码部署LAMP环境并在此基础上部署phpmyadmin 二、 实验内容 在虚拟机中搭建网络YUM仓库,依次安装httpd php php-server mysql(mairadb)及各自的依赖的库和相关的工具包,并分别验证php和httpd的勾连,php和mysql的勾连,之后在网页根路径部署phpmyadmin,在浏览器验证即可, 三、 实验环境与准备 一台Centos6虚拟机,网卡设置为桥接模式,并连接xshell 四、 实验分析与设计思路 在Centos6搭建LAMP架构,首先搭建网络YUM仓库,并关闭防火墙和selinux机制,安装httpd php mariadb及php结合数据库的驱动模块,并进行安装php所依赖的库和相关工具包,更改httpd主配置文件,让索引页支持php,并编写php测试页,在浏览器上验证php和httpd的勾连,之后将数据库的主配置文件修改,启动数据库服务,可以查看3306端口是否监听,编写测试页,验证php和mariadb数据库的勾连。继续在Centos7上部署discuz论坛项目,把项目zip包拉到服务器中,解压之后出现的upload目录移动到网页根路径下,之后创建用户来管理discuz对应的bbs数据的所有数据,在浏览器上开始部署论坛项目,根据指示进行操作即可 五:主要实验过程 实验一:在Centos-6搭建LAMP架构

mysql简单备份与恢复

丶灬走出姿态 提交于 2020-02-07 11:47:37
1.备份 mysqldump -u root -h 127.0.0.1 -p --set-gtid-purged=OFF abc > /data/mysqlBak/abc_20200206.sql 2.恢复 将备份的数据库恢复到新的数据库abc-2 1)需要创建数据库abc-2 mysql -u root -h 127.0.0.1 -p create database `abc-2`; quit; 2)恢复数据 LINUX命令行下执行 mysql -u root -h 127.0.0.1 -p abc-2 < /data/mysqlBak/abc_20200206.sql 来源: https://www.cnblogs.com/WebLinuxStudy/p/12272325.html

Mysql安装、配置、优化

拈花ヽ惹草 提交于 2020-02-07 07:10:21
在Windows中安装MySQL: 安装包下载地址:https://dev.mysql.com/downloads/mysql/ 下载完后,将安装包解压到相应的目录,这里我将解压后的文件夹放在C:\Program Files (x86)\mysql-8.0.18-winx64 下, 打开刚刚解压的文件夹 C:\Program Files (x86)\mysql-8.0.18-winx64,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [client] # 设置mysql客户端默认字符集 default -character- set =utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\\web\\mysql-8.0.11 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 # datadir=C:\\web\\sqldata # 允许最大连接数 max_connections=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character- set -server=utf8 # 创建新表时将使用的默认存储引擎

MySQL批量插入数据脚本

坚强是说给别人听的谎言 提交于 2020-02-07 04:14:08
函数和存储过程:用sql脚本语言所写的数据库编程,函数有返回值,存储过程无返回值 往表里插入1000W数据: 1、建表 2、设置参数log_bin_trust_function_creators 3、创建函数,保证每条数据都不同(DELIMITER 表 示 定 义 m y s q l 语 句 以 表示定义mysql语句以 表 示 定 义 m y s q l 语 句 以 为结束符) 随机产生字符串 随机产生部门编号 4、创建存储过程: 创建往emp表里插入数据的存储过程 创建往dept表中插入数据的存储过程 5、调用存储过程 dept(mysql结束符改回;) emp 来源: CSDN 作者: 昔拉天使 链接: https://blog.csdn.net/qq_39885372/article/details/104199003

索引那些事儿----基于Mysql

做~自己de王妃 提交于 2020-02-07 03:38:59
目录 背景 索引 存储引擎 存储引擎种类 MyISAM引擎 InnoDB引擎 索引方式 索引类型 单列索引之普通索引 单列索引之唯一索引 单列索引之主键索引 组合索引 全文索引 空间索引 总结 武汉加油!!! 背景 数据库是什么? 这个问题大家都知道吧, 用来存放数据的, 生活中你在银行中存的金额, 或者一个户籍所中存放的户籍以及个人信息, 在比如一个学校的学生信息等等, 这些都存放在我们的数据库里面. 对不数据库中的数据一般采用一些 DML语句 (insert, update, delete)来进行数据操作. 想要查看数据库里面的数据使用select语句进行数据的查询. 对于数据在数据库里面的存放, 可以简单理解为类似 Excel表格 , 表格里面每一行代表一条数据. 一个 Sheet页 来代表一类数据. 一个例子 现在我们有一张excel表格, 里面存放了一个学校的学生信息, 包含学号, 姓名, 班级,年级等等信息 如果, 如果这张表里面只存放了较少的数据( 几十条, 或者十几条 ), 那现在让你 找到关于张三学生的信息 , 我们便开始从上到下或者从下到上开始浏览每一行数据, 直到找到 张三 , 便完成了数据的查询. 但是, 数据量大了, 这个excel存放了成千上万条数据, 再让你找出来张三, 你还是需要从上到下, 或者从下到上开始找 张三 , 这一次因为数据变多了,

【Mysql】Mysql 8.0 以上授权远程访问权限失败

孤街醉人 提交于 2020-02-07 03:26:35
【现象】 由于要用 navicat 连接数据库,navicat 报错提示没有权限访问,故要在 MySQL 中创建这个账户并赋予远程访问权限。 旧版本的 MySQL 可以通过一行命令给用户添加上访问权限。 但在本次操作中报错: grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码'; 时会出现"......near 'identified by '密码'' at line 1"错误 【原因】 由于 MySQL8.0 以上将创建账户和赋予权限分开了,需要用不同的语句创建账号,赋予远程权限 【处理方式】 # 1. 先进入mysql数据库 use mysql; # 2. 在user表中创建账号 create user 'root'@'%' identified by 'pwd'; # 修改授权权限(可不用) ALTER USER 'root'@'10.150.32.100' IDENTIFIED WITH mysql_native_password BY 'root.123'; # 3. 给创建好的账号赋予远程权限 grant all privileges on *.* to 'root'@'10.150.32.100' with grant option; # 4. 刷新数据库 FLUSH PRIVILEGES; # 5.

MySQL随笔05_索引(下)

天大地大妈咪最大 提交于 2020-02-07 02:12:37
一、覆盖索引 非主键索引查询,若结果所需要的字段只在主键索引上有,则需要回到主键搜索树,此过程称为 回表 。 非主键索引查询,若结果所需要的字段在当前索引树上已经存在,可直接提供查询结果,不需要回表。即在查询中,非主键索引已经“覆盖了”查询需求,称为 覆盖索引 。 如下图,T表,ID为主键,k为普通索引,有如下两个查询语句: select * from T where k=3; -- 需要回表 select ID from T where k=3; -- 不需要回表 由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段 。 对于某些高频数据查询请求,可以创建联合索引,以便用到覆盖索引,从而不需要回表查,提升查询性能。 二、最左前缀原则 B 树 索引结构,可以利用索引的“最左前缀”,来定位记录。 只要满足最左前缀,就可以利用索引来加速检索。 这个最左前缀可以是联合索引的最左N个字段,也可以是字符串索引的最左M个字符。 在建立联合索引的时候,如何安排索引内的字段顺序 评估标准 ——索引的复用能力。 第一原则 ——如果通过调整顺序,可以减少维护一个索引,那么这个顺序就是需要优先考虑采取的。 三、索引下推 对于不符合最左前缀的部分的索引优化处理。 MySQL5.6之前,只能从非主键索引上 回表 到主键索引上找出数据行,在进行数据比对过滤。