mysql自定义函数

MySQL 了解知识点

ぐ巨炮叔叔 提交于 2019-11-28 08:01:46
一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 临时表应用举例 一 创建视图 View Code 二 使用视图 #修改视图,原始表也跟着改 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> create view course_view as select * from

MySQL入门

末鹿安然 提交于 2019-11-27 21:30:54
什么是数据库 数据库是按照数据结构来组织储存和管理数据的仓库; 常见的数据库 oracle DB2 Sql Server postgre Sql MySql 注意:数据库斌不等于数据库系统 , 数据库系统(Database System) 数据库 数据库管理系统(DatabaseManagementSystem)DBMS; 应用开发工具 管理员以及用户 Sql语言即结构化查询语言 (Structured Query Language) DDL 数据定义语言 DML 数据操作语言 DQL 数据查询语言 DCL 数据控制语言 ###mysql 的相关操作 注意:windows和mac下的mysql操作是有区别的 MySql 的注释 # 注释内容 或者 -- 注释内容 配置my.conf 是mysql的配置文件 Mysql语法规范 虽然mysql是大小写敏感的,但是,mysql的关键字(包括函数名)大写,库名,表明,字段名等用户自定义的使用小写 原因:linux下是区分大小写的,但是windows下不区分; sql语句支持折行操作,但是拆分时不要将完整的单词拆开; 数据库名称表名称,字段名称不要使用Mysql的保留字,如果使用如果必要使用 `` 反引号将其括起来 mysql登录退出以及常用命令 mysql登录(要事先配置好环境变量) mysql -uroot -p 或者 mysql

MySQL数据库

家住魔仙堡 提交于 2019-11-27 15:58:41
Mysql 数据库 【教学内容】 1、 数据库介绍 & 安装 2、创建库和表 3、简单增删改查语句 4、Mysql 函数 5、表的设计和约束 6、多表查询 【教学总结】: 【第一阶段】 【目标:数据库介绍 & 安装】 1 、数据库概述 在前期学习的过程中,数据基本都保存 xml 或者普通的文件中。在真实企业级开发数据,数据都需要保存专业的软件中,这些软件就是数据库软件。 数据库软件不需要我们去研发,由专门的数据库厂商提供。 常用的数据库软件: Oracle : Oracle 数据库。甲骨文公司,专门数据库厂商,收购 BEA 、 SUN 、 MySQL ------- 收费 大型数据库,用于任何系统任何平台。 IBM : BD2 数据库。 IBM 数据库产品,大型收费数据库 websphere 服务器一起使用。 Mysql 数据库,早期由瑞典一个公司开发的,后期被 sun 公司收购,随着 sun 公司的被 Oracle 收购, Mysql 也成了 Oracle 公司的产品。 Microsoft : Sqlserver 数据库。微软公司数据库产品,收费中等规模数据库 ,操作系统要求是 windows 结合 .net 一起使用。 Sybase : Sybase 数据库,中等规模数据库。 Java 开发者主要使用 MySQL 、 Oracle 、 DB2 三种数据库。 2 、什么数据库

MySQL相关

梦想与她 提交于 2019-11-27 15:58:40
一、SELECT语句的执行顺序 from->on->join->where->group by->聚集函数->having->计算表达式->select->distinct->order by->top 二、存储过程 存储过程是一个可编程的函数,它在数据库中创建并保存。优点有: 1、存储过程能实现较快的执行速度 2、存储过程允许标准组件式编程。 3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 4、存储过程可被作为一种安全机制来充分利用。 5、存储过程能够减少网络流量 存储过程和函数的异同点 相同点:存储过程和函数都是为了可重复的执行操作数据库的sql 语句的集合。 不同点: 1、标识符不同,函数的标识符是function,存储过程是proceduce。 2、函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out)来实现多个参数或者返回值。 3、函数使用select 调用,存储过程需要使用call 调用。 三、事务的特性 1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。 2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。 3、隔离性(Isolation):事务的执行不受其他事务的干扰

mysql中SQL执行过程详解

半腔热情 提交于 2019-11-27 11:41:42
mysql执行一个查询的过程,到底做了些什么: 客户端发送一条查询给服务器; 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器段进行SQL解析、预处理,在优化器生成对应的执行计划; mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。 将结果返回给客户端。 实际上mysql执行的每一步都比较复杂,具体的过程如下 第一步 : mysql客户端和服务器通讯 1. 通讯 mysql客户端和服务器之间的通讯协议是“半双工”的,这意味着,在任何一个时刻,要么由服务器向客户端发送数据,要么由客户端向服务器发送数据,这两个动作不能同时发生。这种协议让mysql通信简单快速,但也限制了mysql。一个明显的限制是,这意味着没办法进行流量限制。一旦一端开始发生消息,另一端要接收完整个消息才能响应他。 客户端用一个单独的数据包将查询传给服务器。一旦客户端发送了请求,他能做的事情就只是等待结果了。 相反的,一般服务器响应给用户的数据通常很多,由多个数据包组成。当服务器开始响应客户端请求时,客户端必须完整的接受整个返回结果,而不是简单的只收取前面几条结果,然后让服务器停止发送数据。 多数连接mysql的库函数都可以获得全部结果并缓存到内存里,还可以逐行获取所需要的数据。默认一般是获得全部结果并缓存到内存中

好程序员大数据学习路线分享SparkSQl

旧城冷巷雨未停 提交于 2019-11-27 08:09:48
  好程序员大数据学习路线分享SparkSQl,Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。SparkSql中返回的数据类型是DataFrame 1.1.1. 为什么要学习 Spark SQL 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快! HIVE:简化编写MapReduce的程序的复杂性 Spark SQL转换成RDD:替代MapReduce,提高效率 Spark1.0版本开始就推出了SparkSQL,最早是叫Shark 1、内存列存储--可以大大优化内存使用效率,减少了内存消耗,避免了gc对大量数据的性能开销 2、字节码生成技术(byte-code generation)--可以使用动态字节码生成技术来优化性能 3、Scala代码的优化   结构化数据是指任何有结构信息的数据。所谓结构信息,就是每条记录共用的已知的字段集合。当数据符合 这样的条件时,Spark SQL 就会使得针对这些数据的读取和查询变得更加简单高效。具体 来说

mysql show命令集合

痴心易碎 提交于 2019-11-27 06:20:06
a. show tables或 show tables from database_name; -- 显示当前数据库中所有表的名称 b. show databases; -- 显示 mysql 中所有数据库的名称 c. show columns from table_name from database_name; 或 show columns from database_name.table_name; -- 显示表中列名称 d. show grants for user_name; -- 显示一个用户的权限,显示结果类似于grant 命令 e. show index from table_name; -- 显示表的索引 f. show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量 g. show variables; -- 显示系统变量的名称和值 h. show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。 i. show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间 j. show privileges; --

mysql--视图(view)

喜夏-厌秋 提交于 2019-11-27 05:30:36
原创 大孩子 我们都是小青蛙 2018-07-02 社会我蛙哥,人狠话也多 视图 我们之前唠叨过连接表的查询,比方说下边这个: image_1chb82o2b15c81t4416291a52cffp.png-123.5kB 我们查询出了一些男学生的基本信息和成绩信息,如果下次还想得到这些信息,我们就不得不把这个又臭又长的查询语句再敲一遍,所以MySQL提供了视图(英文名VIEW)来帮助我们用很容易的方式去复用这些查询语句。 创建视图 一个视图可以理解为一个查询语句的别名,创建视图的语句如下: CREATE VIEW 视图名 AS 查询语句 比如我们想根据上边那个又臭又长的查询语句来创建一个视图可以这么写: mysql> CREATE VIEW male_student_info AS SELECT s1.number, s1.name , s1.major, s2.subject, s2.score FROM student_info AS s1 INNER JOIN student_score AS s2 WHERE s1.number = s2.number AND s1.sex = ‘男’; Query OK, 0 rows affected (0.02 sec) mysql> 这样,这个名称为male_student_info的视图就代表了那一串又臭又长的查询语句了。

往数据库插入上万条数据避免服务器崩溃

你离开我真会死。 提交于 2019-11-27 01:06:08
<?php //mysql执行时间 ini_set('max_execution_time', '0'); ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort //链接数据库:链接的服务器,拥有服务器进程的用户的名称,密码 $con=@mysql_connect("localhost","root","root"); // 判断数据库是否连接 if(!$con){ die('Could not connect:'.mysql_error()); } //mysql_select_db() 函数设置活动的 MySQL 数据库 mysql_select_db("5kcrm", $con); //取消数据库的自动提交 mysql_query('SET AUTOCOMMIT=0;'); //在数据库设置了UTF8编码 mysql_query('set names utf8'); //获取当前时间 $begin = time(); function insertNew(){ for($i=1;$i<=10000;$i++){ //向数据表中插入数据 mysql_query("insert into `test`(`name`, `birth`, `create_time`, `status`) values ('lucky','20170724'

mysql之存储过程和函数

走远了吗. 提交于 2019-11-26 19:39:18
/*--> */ /*--> */ 1. 变量 系统变量:   定义: 变量由系统提供,不是用户定义,属于服务器层面   查看所有变量: SELECT global | session variables;       查看满足条件的部分系统变量: SELECT global | session variables like '%char%';    查看某个系统变量: select @@系统变量名 或者 select @@[session]global.系统变量名;如select @@tx_isolation查看事务隔离级别       为变量赋值: set 系统变量名=值    系统全局变量(GLOBAL): # 查看全部的系统全局变量 SELECT GLOBAL VARIABLES; # 查看部分系统全局变量 SELECT GLOBAL VARIABLES LIKE '%char%';# 其他同上方式   作用域:服务器每次启动将为所有的全局变量赋初值,针对于所有会话有效,但不能跨重启; 会话变量(SESSION):   作用域:变量仅对于当前会话连接有效。 自定义变量:   使用步骤:声明、赋值、使用(查看,比较,运算符)   作用域:针对于当前会话有效。 # 赋值操作符:=或:= SET @用户变量名=值; SET @用户变量名:=值; SElECT @用户变量名:=值;