mysql函数

mysql 替换函数replace()和 case when then else end

亡梦爱人 提交于 2019-12-17 06:16:07
mysql 替换函数replace()实现mysql替换指定字段中的字符串 mysql 替换字符串的实现方法: mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便。 mysql 替换函数replace() UPDATE table_name SET field_name = replace ( field_name ,‘from_str’,‘to_str’) WHERE field_name LIKE ‘%from_str%’ 说明: table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 例如: mysql> SELECT REPLACE(‘www.lvtao.net’, ‘www’, ‘http://www’); -> ‘https://www.lvtao.net’ 该函数是多字节安全的,也就是说你不用考虑是中文字符还是英文字符. SELECT a . managecom , a . subtype , count ( * ) loadsucc , sum ( case when a . state in ( '4' , '5' , '6' , '7' , '8' , '9' ) then 1 else 0 end

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-17 05:57:20
查询所有列 SELECT * FROM student; 查询指定列 SELECT id,NAME,gender FROM student; 查询时添加常量列 -- 需求: 在查询student表时添加一个班级列,内容为“java就业班” SELECT id,NAME,gender,age,'java就业班' AS '年级' FROM student; SELECT id,NAME,(servlet+jsp) AS '总成绩' FROM student; -- 注意:合并列只能合并数值类型的字段 SELECT id,(NAME+servlet) FROM student; 查询时去除重复记录(DISTINCT) -- 需求: 查询学生的性别 男 女 SELECT DISTINCT gender FROM student; -- 另一种语法 SELECT DISTINCT(gender) FROM student; -- 需求: 查询学生所在的地区 SELECT DISTINCT address FROM student; 条件查询(where) -- 2.7.1 逻辑条件: and(与) or(或) -- 需求: 查询id为2,且姓名为李四的学生 SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集 -- 需求: 查询id为2

mysql group by 用法解析(详细)

痴心易碎 提交于 2019-12-17 05:24:06
星期三, 09/21/2011 - 14:33 — jason group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。 SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。 某个员工信息表结构和数据如下: id name dept salary edlevel hiredate 1 张三 开发部 2000 3 2009-10-11 2 李四 开发部 2500 3 2009-10-01 3 王五 设计部 2600 5 2010-10-02 4 王六 设计部 2300 4 2010-10-03 5 马七 设计部 2100 4 2010-10-06 6 赵八 销售部 3000 5 2010-10-05 7 钱九 销售部 3100 7 2010-10-07 8 孙十 销售部 3500 7 2010-10-06 例如,我想列出每个部门最高薪水的结果,sql语句如下: SELECT DEPT, MAX(SALARY) AS MAXIMUM FROM STAFF GROUP BY DEPT 查询结果如下: DEPT MAXIMUM 开发部 2500 设计部 2600 销售部 3500 解释一下这个结果: 1、满足“SELECT子句中的列名必须为分组列或列函数”

MySQL基础

◇◆丶佛笑我妖孽 提交于 2019-12-17 04:25:23
一、MySQL概述 1、什么是数据库 ?  答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?  答:他们均是一个软件,都有两个主要的功能: a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 3、什么是SQL ?   答:MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。 二、MySQL安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 想要使用MySQL来存储并操作数据,则需要做几件事情:   a. 安装MySQL服务端   b. 安装MySQL客户端   b. 【客户端】连接【服务端】   c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等) 下载 http://dev.mysql.com/downloads/mysql/ 安装 windows:

MySQL学习之别名

寵の児 提交于 2019-12-17 02:50:05
目录 别名as 别名as 1. SQL 中允许临时给表名或列名称指定别名,创建别名是为了让列名称的可读性更强 2. 别名只是当前 SQL 语句执行过程中临时的改变,在数据库中实际的表的名称不会改变 3. SQL 中创建别名使用 AS 关键字, 可以省略 4. 如果列名称包含空格,要求使用引号, 最好使用单引号 5. 在MySQL中,可以在ORDER BY,GROUP BY和HAVING子句中使用列别名来引用该列 6. 不能在WHERE子句中使用列别名。(使用表别名是允许的) 原因是当MySQL评估求值WHERE子句时,SELECT子句中指定的列的值可能尚未确定。 列的 SQL 别名 SELECT column_name AS alias_name FROM table_name; SELECT lesson_id as lid, lesson_name as name, date_at, views FROM lesson_views; 表的别名 SELECT column_name(s) FROM table_name AS alias_name; SELECT * FROM lesson_views as lv WHERE lv.lesson_id = 2; 最佳实战: 如果出现以下几种情况之一,使用别名很有用: 1. 在查询中涉及超过一个表 2. 在查询中使用了函数 3.

MySQL学习之存储过程

冷暖自知 提交于 2019-12-17 01:29:17
目录 存储过程 存储过程优点 存储过程缺点 存储过程和视图的区别 创建 使用 删除 存储过程之事务操作 存储过程之游标操作 存储过程之防SQL注入 存储过程 是存储在数据库中的一个别名,这个别名对应着一个SQL语句集合 存储过程优点 1. 用于替代程序写的 SQL 语句,实现程序与 sql 解耦 2. 基于网络传输,传别名的数据量小,而直接传 sql 数据量大 存储过程缺点 1. 程序员扩展功能不方便 存储过程和视图的区别 1,视图是虚拟的一张表,数据来源于物理表 2,存储过程可以进行任意操作 3,视图的调用方式是select 4,存储过程的调用方式是call 创建 建议: 在哪个库就把存储过程建在那里。 # 形式一:无参数 MySQL中: delimiter // create procedure p1 ( ) BEGIN select * from student ; select * from score where class_id = 1 ; update student set sname = '牛奶' where sname = '理解' ; END // delimiter ; MySQL执行: call p1 ( ) ; Python中执行: cursor . callproc ( 'p1' ) 删除: drop procedure [ if exists ]

MySQL基础

五迷三道 提交于 2019-12-17 00:31:05
一、MySQL概述 1、什么是数据库 ?  答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?  答:他们均是一个软件,都有两个主要的功能: a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 3、什么是SQL ?   答:MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。 二、MySQL安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 想要使用MySQL来存储并操作数据,则需要做几件事情:   a. 安装MySQL服务端   b. 安装MySQL客户端   b. 【客户端】连接【服务端】   c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等) 下载 http://dev.mysql.com/downloads/mysql/ 安装 windows:

MySQL中使用LIMIT分页

折月煮酒 提交于 2019-12-16 08:28:50
需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据。   我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所以就需要根据实际情况去改写以满足需求。分析如下:   查询第1条到第10条数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;   查询第10条到第20条数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;   查询第20条到第30条数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;   通过上面的分析,可以归纳得出符合需求的分页SQL伪代码是:select * from table limit (pageNum-1)*pageSize,pageSize。总而言之,我们只需要告诉数据库要从第几行开始拿多少条数据就行了。   但是

MySQL函数——条件判断函数

懵懂的女人 提交于 2019-12-16 06:21:20
条件判断函数 条件判断函数也称为控制流程函数,根据满足的条件不同,执行相应的流程。MySQL中进行条件判断的函数有if、ifnull和case。 1.if(expr,v1,v2)函数 if(expr,v1,v2),如果表达式expr是true(expr<>0 and expr<> null),则if()的返回值为v1,否则返回值为v2。if()的返回值为数字值或字符串值,具体情况视语境而定。 案例:使用if()函数进行条件判断,SQL语句如下: SELECT IF(1 > 2, 2, 3), IF(1 < 2, 'yes', 'no'), IF(STRCMP('test', 'test1'), 'no', 'yes'); (注:如果v1或v2中只有一个明确是null,则if()函数的结果类型为非null表达式的结果类型。) 2.ifnull(v1,v2)函数 ifnull(v1,v2)加入v1不为null,这ifnull()的返回值为v1;否则其返回值为v2。ifnull()的返回值是数字或字符串,具体情况视语境而定。 案例:使用ifnull()函数进行条件判断,SQL语句如下: SELECT IFNULL(1, 2), IFNULL(NULL, 10), IFNULL(1 / 0, 'wrong'); 3.case函数 a.case expr when v1 then r1