mysql函数

MySQL高级查询

流过昼夜 提交于 2019-12-21 16:48:46
在工作中经常需要汇总数据而不是将他们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有如下特点: 1:确定表中的行数(或满足某个条件或包含某个特定值的行数) 2:获得表中行组的和 3:找出表列(或所有行或某些特定的行)的最大值,最小值和平均值 聚集函数:运行在行组上,计算和返回单个值的函数; SQL聚集函数如图: 1,avg()函数通过对表中行数计数并计算特定列值之和,求得该列的平均值;avg()可用来返回所有平均值,也可以用来返回特定列的平均值; SELECT AVG(id) as age FROM person; avg()也可以用来确定特定列或行的平均值,如: SELECT AVG(id) as age FROM person WHERE age = 15; avg()只用来确定特定数值列的平均值,而且列名必须作为函数参数给出,为了获得多个列的平均值,必须使用多个avg()函数{avg()函数忽略列值为null的行}; 2,count()函数:确定表中行的数目或符合特定条件的行的数目. count()函数有两种使用方式: 1:使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值; 2:使用count(column)对特定列中具有值的行进行计数,忽略null值; SELECT count(*) as age

MySQL_分组查询

送分小仙女□ 提交于 2019-12-21 15:09:22
①分组查询介绍 分组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。 ②group by的使用 group by可用于单个字段分组,也可用于多个字段分组 – 根据gender字段来分组 select gender from students group by gender; – 根据name和gender字段进行分组 select name, gender from students group by name, gender; ③group by + group_concat()的使用 group_concat(字段名): 统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割 – 根据gender字段进行分组, 查询gender字段和分组的name字段信息 select gender,group_concat(name) from students group by gender; ④group by + 聚合函数的使用 – 统计不同性别的人的平均年龄 select gender,avg(age) from students group by gender; – 统计不同性别的人的个数 select gender,count(*) from students group by gender; ⑤group by + having的使用

mysql - json串新增字段

老子叫甜甜 提交于 2019-12-21 09:16:31
1、建表 -- 建表 drop table if exists ta_product2; CREATE TABLE ta_product2( id int primary key auto_increment, productCode varchar(50) comment '产品Code', productAttrJson text comment '产品json串' )engine=innodb; 2、插入数据 -- 插入数据 INSERT INTO ta_product2 VALUES(NULL, '20170109001','{\"saleAmount\":\"100\",\"productName\":\"20160620,-qbs002,金融\"}'); id productCode productAttrJson ------ ----------- -------------------------------------------------------------- 1 20170109001 {"saleAmount":"100","productName":"20160620,-qbs002,金融"} 3、拼接后的完整json串 SELECT t.productCode, REPLACE( t.productAttrJson, '}', CONCAT(',

mysql实现自增序列

耗尽温柔 提交于 2019-12-21 03:24:04
1.创建sequence表 CREATE TABLE `sequence` ( `name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '序列的名字', `current_value` int(11) NOT NULL COMMENT '序列的当前值', `increment` int(11) NOT NULL DEFAULT '1' COMMENT '序列的自增值', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 2.创建–取当前值的函数 DROP FUNCTION IF EXISTS currval; DELIMITER $ CREATE FUNCTION currval (seq_name VARCHAR(50)) RETURNS INTEGER LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE value INTEGER; SET value = 0; SELECT current_value INTO value FROM sequence WHERE name = seq_name; RETURN

转载:Mysql安装、配置、优化

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-21 01:47:49
Mysq安装 一、安装Mysql5.5为例。 1、运行 mysql 安装文件;   2、按 Next,然后选择安装方式,有 “Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”,选择第二个选项 “Custom”,下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;   3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5",也可以修改为:“E:\Program Files\MySQL Server 5.5”。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql instance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;   4、选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源

mysql乱码问题

▼魔方 西西 提交于 2019-12-20 19:47:13
原文链接 mysql数据库的字符集 直白的说,字符就像是单个的文字,编码就像是给每个文字的编号,字符集就像是字符与编码的集合,校验规则就是字符集的对应的排序规则,字符集加上对应的校验规则就是语言。(每种字符集可以有多种校对规则,但都有一个默认的校对规则) mysql数据库可以通过设定字符集,来使用对应的字符集和检验规则来组织字符。就像是解读一片文章的时候用那种语言来解析。例如:中国人常使用的utf8编码,代表的是中文。 mysql可以支持多种字符集。在同一个数据库的不同表,同一个表中的不同字段,都可以指定使用不同的字符集。 mysql的字符集规则 mysql可以设定的字符集: 服务器的字符集 数据库的字符集 表的字符集 字段的字符集 如果在某一个级别没有设置字符集,则它会继承其上一级的字符集。 mysql数据库乱码问题解决方法(即修改字符集方法) 【1】查看mysql支持的字符集 show character set; 【2】查看数据库编码 show variables like ‘character_set%’; 【3】查看当前mysql使用的字符集 show variables like ‘character%’; 解析: character_set_client:客户端请求数据的字符集 character_set_connection:客户机与服务器连接的字符集

mysql查询语句

二次信任 提交于 2019-12-20 18:05:49
一、简单查询 1.最简单查询(查所有数据) select * from 表名 注意:* 代表所有列,并不是代表所有行 例:select * from test 2.查询指定列 select 列名,列名 from 表名 例:select code,name from test 3.修改结果集的列名 as select 列名 as '显示的字' from 表名 例:select code as '代号',name as '姓名' from test 4.条件查询 select * from 表名 where 条件 例:select * from test where code='n003' 5.多条件查询 或者 or:select * from 表名 where 条件 or 条件 例:select * from test where code='p003' or nation='n001' 并且 and:select * from 表名 where 条件 and 条件 例:select * from test where code='p004' and nation='n001' 6.范围查询 (某一列的内容是谁到谁之间的数据) 例:两种写法:查找汽车价格在40到60之间 (1)select * from car where price>=40 and price>=60 (2

MySQL DELETE 语句

廉价感情. 提交于 2019-12-20 15:16:57
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。 语法 以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法: DELETE FROM table_name [WHERE Clause] 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。 你可以在 WHERE 子句中指定任何条件 您可以在单个表中一次性删除记录。 当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。 从命令行中删除数据 这里我们将在 SQL DELETE 命令中使用 WHERE 子句来删除 MySQL 数据表 runoob_tbl 所选的数据。 实例 以下实例将删除 runoob_tbl 表中 runoob_id 为3 的记录: DELETE 语句: mysql > use RUNOOB ; Database changed mysql > DELETE FROM runoob_tbl WHERE runoob_id = 3 ; Query OK , 1 row affected ( 0.23 sec ) 使用 PHP 脚本删除数据 PHP使用 mysqli_query() 函数来执行SQL语句, 你可以在 SQL DELETE 命令中使用或不使用 WHERE

MySQL之数据类型

醉酒当歌 提交于 2019-12-20 04:50:56
MySQL提供了多种数据类型,主要包括数值型、字符串型和日期时间类型。本次博客就来谈谈MySQL中常用的数据类型吧(版本:mysql-5.7.19)! 数值类型 MySQL支持所有标准SQL中数值类型,具体见下表: 数值类型是由范围的,如果超出数值的范围就会发生“out of range”的错误提示,所以在选择数值类型的时候,一定要结合实际的情况去选择。 1.整数类型 对于整数类型的数值类型还支持在小括号内指定显示的宽度,例如int(5)就表示当数值宽度小于5位的时候,在数字前面填满宽度,如果不指定显示的宽度,默认为int(11)。 举例: mysql> create table t1(num1 int(5),num2 int); Query OK, 0 rows affected (0.04 sec) mysql> desc t1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | num1 | int(5) | YES | | NULL | | | num2 | int(11) | YES | | NULL | | +-----

PHP全栈学习笔记5

此生再无相见时 提交于 2019-12-19 21:13:05
php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的,要了解如何操作mysql数据库,数据表的方法。 什么是数据库,数据库能做什么,数据库有什么好处,数据库的基础必备技术,备份和恢复的方法。 mysql的好处,功能强大,支持跨平台,运行速度快,支持面向对象,成本低,支持各种开发语言,数据库存储容量大,支持强大的内置函数。 启动MySQL服务器 net start mysql 连接数据库: mysql –u root –h127.0.0.1 –p password 断开MySQL服务器: quit; 停止MySQL服务器: net stop mysql; mysqladmin –uroot shutdown –proot 数据库的操作: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名 [(create_definition,…)][table_options] [select_statement] temporary 表示创建一个临时表 if not exists 表示表是否已经存在 create_definition 表的一些特性 select_statement 快速创建表 col_name type [NOT NULL | NULL] [DEFAULT default