MYSQL
人生如初见_张默
这个作者很懒,什么都没留下…
展开
-
php---处理拆分数据(将一条数据根据条件拆分为多条)
表1:发票表表2:拆分后的发票表表3:拆分后发票对应运单表需求:将表1中所有关联运单,根据发货-到货地址,和开票公司拆分。每个运单对应一个发票公司。每个开票公司有一个开票限额。运单开票金额不能大于开票公司限额。如果运单开票金额大于开票公司限额,则拆分为单独一条发票。 function test() { $order_list = [ [ 'order_id' => 10001,原创 2020-09-21 16:07:36 · 795 阅读 · 0 评论 -
windows---mysql5.7定时备份
创建一个脚本:@echo offset "Ymd=%date:~,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"cd D:\phpStudy\MySQL\bin\mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-原创 2020-05-26 15:19:58 · 550 阅读 · 0 评论 -
windows开启mysql5.7--log_bin
首先查看log_bin是否开启ON为开启,off为关闭开启方法:找到mysql.ini,添加下面两项,重启 log-bin=mysql-bin server_id = 1之后将会在mysql/data/下生成 mysql-bin.000001文件查看日志:打开cmd,进入mysql目录,D:\phpStudy_2016\MySQL>mysqlbinlog \MySQL\data\mysql-bin.000001/*!50530 SET @@SESSION.P原创 2020-05-26 12:24:09 · 470 阅读 · 0 评论 -
mysql--触发器语法
例子:创建触发器,记录表的增、删、改操作记录//创建user表;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT N...原创 2020-01-09 11:02:38 · 178 阅读 · 0 评论 -
MYSQL---性能分析器——EXPLAIN
使用方法:EXPLAIN SELECT * FROM user;环境和数据准备-- 查看 MySQL 版本SELECT VERSION();-- MySQL 提供什么存储引擎SHOW ENGINES;-- 查看默认存储引擎SHOW VARIABLES LIKE '%storage_engine%';输出结果:id:输出的是整数,用来标识整个 SQL 的...转载 2019-11-26 10:59:01 · 108 阅读 · 0 评论 -
windows版的mysql主从复制环境搭建
目录背景 环境说明 安装并配置主库master 安装从库slave 主从库实现关联背景最近在学习用Spring Aop来实现数据库读写分离的功能。在编写代码之前,首先是要部署好mysql的环境,因为要实现读写分离,所以至少需要部署两个mysql实例,一主一从,并且主从实例之间能够自动同步,因为我的本机内存并不高,所以就打算在windows上直接搭建mysql的主从实例(不想开虚...转载 2019-11-26 10:01:51 · 161 阅读 · 0 评论 -
mysql--根据字段值首字母排序
select * from order where type=1 order by convert(order_name USING gbk) COLLATE gbk_chinese_ci asc;原创 2019-11-09 18:09:53 · 254 阅读 · 0 评论 -
mysqldump---备份和还原
使用mysqldump备份mysqldump备份基本语法【备份数据库】:mysqldump -u username -p dbname > BackupName.sqlusername:用户名,dbname:数据名,table1、table2:数据表名,backpname:自定义备份文件名还原mysqldump备份mysql -u username -pdbname...原创 2019-11-07 10:42:37 · 98 阅读 · 0 评论 -
mysql--表信息解悉
mysql> show table status like 'user';| Name :user ---表名| Engine :InnoDB ---表的存储引擎| Version :10 ---| Row_format :Dynamic ---行的格式。| Rows :4076 ---表中的行数| Avg_row_length : 647 ---平均...原创 2019-10-16 17:33:08 · 161 阅读 · 0 评论 -
mysql---触发器
什么是触发器触发器用来在某些操作之后/之前,“自动”执行一些操作。(比如插入了新的学生信息,那么在班级表中应该修改学生数)。 当insert delete update设置触发器之后,执行insert delete update操作就会自动触发设置的内容。 一张表最大能有6个触发器(3*2,三种操作*两种时间(before|after))。创建触发器 语法:create ...转载 2019-10-16 14:27:12 · 410 阅读 · 0 评论 -
mysql--外键
外键的使用条件① 两个表必须是InnoDB表,MyISAM表暂时不支持外键② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;外键的好处:可以使得两张表关联,保证数据的一致性和实现一些...原创 2019-10-16 12:02:58 · 111 阅读 · 0 评论 -
MYSQL--数据库表结构优化
选择合适的数据类型 1、使用可以存下你的数据的最小的数据类型 2、使用简单的数据类型。Int要比varchar类型在mysql处理上简单 3、尽可能的使用not null定义字段 4、尽量少用text类型,非用不可时最好考虑分表使用int来存储日期时间,利用FROM_UNIXTIME()【将int类型时间戳转换成日期时间格式】,UNIX_TIMESTA...转载 2019-05-06 14:29:28 · 738 阅读 · 0 评论 -
在Navicat工具上查看SQL语句执行信息
打开Navicat工具,连接到需要执行sql的数据库 2 点击查询功能选项 3 点击新建查询功能,弹出输入sql语句操作窗口 4 数据需要查看执行计划的语句,点击执行,然后点击解释,若sql执行时间太长,点击执行可以跳过 5 选择解释标签,就可以查看到sql的执行计划了 也可在(SELECT) 前...转载 2019-04-25 15:30:41 · 27499 阅读 · 6 评论 -
MySQL USING 和 HAVING 用法
USING用于表连接时给定连接条件(可以理解为简写形式),如SELECT * FROM table1JOIN table2 ON table1.id = table2.id使用 USING 可以写为SELECT * FROM table1JOIN table2 USING(id)HAVING引入 HAVING 是因为 WHERE 无法和统计函数一起使用如表...转载 2019-05-05 18:16:07 · 105 阅读 · 0 评论 -
MySQL--高级
查看MySQL存储引擎show engines; show variables like '%storate_engine%';: 查看默认的存储引擎MyISAM 和 InnoDB 比较SQL优化步骤观察,至少跑一天,看看生产的慢SQL情况; 开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来; EXPLAIN+慢SQL分析; SHOW profile...转载 2019-04-19 16:22:35 · 104 阅读 · 0 评论 -
mysql触发器trigger 实例详解
MySQL好像从5.0.2版本就开始支持触发器的功能了,本次博客就来介绍一下触发器,首先还是谈下概念性的东西吧:什么是触发器触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。举个例子,比如你现在有两个表【用户表】和【日志表】,当一个用户被创建的时候,就需要在日志表中插入创建的log日志,如果在不使用...转载 2019-04-23 15:31:15 · 160 阅读 · 0 评论 -
mysql--拼接函数
CONCAT:CONCAT(string1,string2,…)SELECT CONCAT(id,name) from users;//返回数据[01zhang02li]CONCAT_WS:CONCAT_WS(separator,str1,str2,...)select concat_ws('-',id,name) from users;//返回数据[...原创 2019-09-02 10:10:05 · 132 阅读 · 0 评论 -
mysql--数据库优化
慢查询日志:show variables like 'slow_query_log';//查询慢查询日志set global slow_query_log_file='/home/mysql/sql_log/mysql-slow.log';//慢查询日志存储文件set global log_queries_not_using_indexes=on;//记录没有索引的set glob...转载 2019-04-26 10:49:12 · 114 阅读 · 0 评论 -
MYSQL--系统配置优化
innodb_buffer_pool_sizeinnodb_buffer_pool_instancesinnodb_log_buffer_sizeinnodb_flush_log_at_trx_commitinnodb_read_io_threads,innodb_write_io_threadsinnodb_file_per_table...转载 2019-05-07 10:27:29 · 96 阅读 · 0 评论 -
Mysql--COALESCE
COALESCE的作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1);-- Return 1SELECT COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);-- Return 1如果传入的参数所有都是null,则返回null,比如...原创 2019-05-07 12:45:20 · 532 阅读 · 0 评论 -
MySQL忘记密码
MySQL忘记密码的解决办法:[root@localhost ~]# mysql -uroot -pERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)如果说出现这个一般就是因为MySQL没有起来[root@localhost ~]...转载 2018-07-11 09:39:26 · 132 阅读 · 0 评论 -
mysql---截取数据表字符串字段函数
substring(字段,start, len);//start为起始位置 len为截取字符长度//id_card 12155454656454select substring(id_card,4,5) from users;//54546substr(字段,start,len);//string为字符串;start为起始位置;length为长度。//idcard 12343...原创 2019-09-11 10:38:40 · 364 阅读 · 0 评论 -
mysql---sql语句中按字段值汉字首字母排序
将汉字转换成GBK编码排序【字段为全部汉字情况下】order by convert(字段 using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序;gbk:GBK编码数据表字段为汉字/英文情况【效率低】将字段值转换为首字母//UPPER--将字母转换为大写select driverid,UPPER(fristPinyin(name)) as firstNam...原创 2019-09-10 10:37:54 · 556 阅读 · 0 评论 -
mysql--新建映射表
开启Federated引擎后引擎:FEDERATED连接:mysql://数据库用户名:数据密码@ip:3306/数据表前缀/数据表例:CREATE TABLE `lg_yun_vechicle` ( ...) ENGINE=FEDERATED DEFAULT CHARSET=utf8 COMMENT='映射表:xxx' CONNECTION='mysql://xxx:xx...原创 2019-09-03 14:51:55 · 744 阅读 · 0 评论 -
yii2.0--sql语句中按某个字段固定值及多个字段排序
orderby$test = (new Query())->select('shop_name,add_time,state')->from('{{%shop_info}}') ->orderBy(["field(state,0,1,3,2,5,4,6)" => true,'add_time' => SORT_DESC])->all...原创 2019-09-02 11:01:29 · 1095 阅读 · 0 评论 -
mysql--新建数据表-常用字段类型
id:类型-int,长度-10,不能为空,主键money:类型-decimal,长度-10,小数点-2,不为空【0.22】datetime:类型-datetime,长度-0,不为空【2019-08-10 10:20:20】state:类型-tinyint,长度-1,不为空,默认值为CURRENT_TIMESTAMPtext:类型-text,长度-0,可空str:类型-varch...原创 2019-08-28 12:49:49 · 787 阅读 · 0 评论 -
mysql---同服务器下跨数据库更新
update A数据库.表名,B数据库.表名 set B数据库.表名.字段名 = A数据库.表名.字段名 where 条件(A数据库.表名.id = B数据库.表名.join_shop_id);原创 2019-07-24 09:33:38 · 1630 阅读 · 0 评论 -
MySQL--行列转换和重复数据删除
使用序列化表的方法实现行转列用 UNION/序列化将多列转换为多行。如何选择生成序列号的方式 优先选择系统提供的序列号生成方式。 在特殊情况下可以使用SQL方式生成序列号。利用主键删除重复数据如何查询数据是否重复?select 字段1,字段2 ,count(*) from 表名 group by 字段1,字段2 having count...转载 2019-05-07 14:39:20 · 400 阅读 · 0 评论 -
Mysql 开启Federated引擎的方法
MySQL中针对不同的功能需求提供了不同的存储引擎。所谓的存储引擎也就是MySQL下特定接口的具体实现。FEDERATED是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件。但通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中(这一点很重要)。通过这个引擎可以实现类似Oracle ...转载 2019-04-04 12:05:17 · 2878 阅读 · 0 评论 -
MYSQL--GROUP_CONCAT函数
GROUP_CONCATGROUP_CONCAT(id,'|',.car_id Separator ',') as car_id;//SQL语句里将多个字段拼接成字符串//结果:1|2,2|4,。。。。GROUP_CONCAT([distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符']);...原创 2019-02-28 17:29:03 · 115 阅读 · 0 评论 -
数据库事务处理
try { $dsn = 'mysql:host=localhost; dbname=user; charset=utf8'; $pdo = new PDO($dsn, 'root'); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } c...原创 2018-06-02 18:19:38 · 570 阅读 · 0 评论 -
mysql left join ,right join ,inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行 left join: left join sql语句如下: select * from A left join B...原创 2018-06-05 20:45:39 · 127 阅读 · 0 评论 -
MYSQL
一、子查询与连接 1.子查询(Subquery):出现在其他SQL语句中的SELECT子句 嵌套在查询内部,且始终出现在圆括号里 可以包含多个关键字或条件,如DISTINCT,GROUP BY,ORDER BY,...转载 2018-07-05 09:41:33 · 131 阅读 · 0 评论 -
thinkphp5.0 mysql 操作
left join on在left join下,两者的区别:on是在生成临时表的时候使用的条件,不管on的条件是否起到作用,都会返回左表 (table_name1) 的行。 where则是在生成临时表之后使用的条件,此时已经不管是否使用了left join了,只要条件不为真的行,全部过滤掉。首先明确两个概念:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所...原创 2018-07-01 22:16:26 · 3971 阅读 · 0 评论 -
MYSQL 函数
函数常用日期函数 获得年月日:mysql> select current_date();获得时分秒就用: mysql> select current_time();获得时间戳:mysql> select current_timestamp();在日期的基础上加日期:mysql> select date_add('2017-10-28...转载 2018-07-05 09:50:48 · 155 阅读 · 0 评论 -
数据库和数据表
数据库一、什么是数据库 存储数据的仓库将数据有组织,按照特定的格式存储在介质上叫做数据库二、比较多个数据库系统a) Oracle 最好的数据库没有之一b) SQL server 最好的数据库(windows)c) MySQL 甲骨文(Oracle) sun 开源三、SQL语言a) SQL(结构化查询语句) 数据库管理系统通过sql语句来管理数据...转载 2018-07-11 09:37:33 · 11374 阅读 · 0 评论 -
MySQL数据表的设计
数据表(Table)数据表是数据库的基本组成元素,以记录(行)和字段(列)组成的二位结构用于储存数据。数据库由表结构和表内容组成,先建立表结构,然后才能输入数据。数据表结构设计主要包括字段名称,字段类型和字段属性的设置。在关系数据库中,为了确保数据的一致性和完整性,在创建表时除了必须指定字段名称、字段类型和字段属性外,还需要使用约束(constraint)、索引(index)、主键(prima...转载 2018-07-11 09:38:33 · 661 阅读 · 0 评论 -
thinkphp 数据库切换
数据库配置: //数据库配置1'db_config1' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名...原创 2018-07-11 22:22:46 · 1166 阅读 · 0 评论 -
mysql 计算排名
出每个人的排名SELECT a1.Name, a1.Sales, COUNT(a2.Sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales OR (a1.Sales=a2.Sales AND a1.Name = a2.Name) GROUP BY a1.Name, ...转载 2018-07-13 09:32:14 · 4699 阅读 · 0 评论 -
mysql 操作练习
查询表classSELECT * FROM class查询表class里studentid为1的学生SELECT * FROM class WHERE studentid = 1查询表class里studentid正序排列SELECT * FROM class ORDER BY studentid ASC查询表class里studentid倒序排列SELECT * FROM c...转载 2018-07-13 09:34:06 · 380 阅读 · 0 评论