
mysql
程序员小猪。
这个作者很懒,什么都没留下…
展开
-
laravel 执行原生sql
1.插入数据DB::insert('insert into test (id, name, email, password) values (?, ?, ? , ? )',[1, 'Laravel','laravel@test.com','Laravel']);2.查询语句$user = DB::select('select * from test where id = ?', [1]); //我们还 可以看到在执行查询的时候使用了参数绑定,以避免SQL注入。除此之//外还可以使用命名绑转载 2021-08-16 15:06:57 · 1300 阅读 · 0 评论 -
Laravel数据库 Eloquent 操作返回值
先理解几个概念:StdClass 对象 => 基础的对象Eloquent 模型对象(Model 对象) => 和模型相关的类对象Eloquent 集合 => 可以简单理解为对象数组,里面的每一个元素都是一个Model 对象DB Facades1, $users = DB::table('users')->get(); 返回值:数组结果,其中每一个结果都是 StdClass2, $user = DB::table('users')->first(); 返回值:单原创 2021-08-05 15:44:31 · 647 阅读 · 1 评论 -
MySQL开启慢查询日志,MySQL查看慢查询语句
一、慢查询日志相关参数1、slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。2、log_slow_queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log3、slow_query_log_file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log4、long_query_time原创 2021-03-15 00:36:51 · 380 阅读 · 0 评论 -
mysql版本:‘for the right syntax to use near ‘identified by ‘password‘ with grant option‘
查询mysql具体版本SELECT @@VERSION问题分析:mysql版本8.0.13,在给新用户授权时,发生了变化:1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'password' with grant option' at l转载 2021-03-13 21:37:02 · 2692 阅读 · 1 评论 -
mysql修改表操作总结
一: 修改表信息1.修改表名alter table test_a rename to sys_app; 2.修改表注释alter table sys_application comment ‘系统信息表’;二:修改字段信息1.修改字段类型和注释alter table sys_application modify column app_name varchar(20) COMMENT ‘应用的名称’; 2.修改字段类型alter table sys_application modify原创 2020-12-04 16:11:26 · 370 阅读 · 0 评论 -
MySQL写sql的21个好习惯,学习工作效率翻倍
前言每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,有不对的地方欢迎指正推荐一下自己的linuxC/C++交流群:973961276!整理了一些个人觉得比较好的学习书籍、视频资料以及大厂面经视频共享在群文件里面,有需要的可以自行添加哦!1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explain select原创 2020-11-25 17:38:34 · 310 阅读 · 0 评论 -
MySQL insert ignore、insert into与replace into的区别
INSERT IGNORE 与INSERT INTO的区别insert ignore 与insert into的区别就是insert ignore会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。eg: insert ignore into table(name) select name from table2mysql中常用的三种插入数据的语句:insert into表示插入原创 2020-08-05 17:42:26 · 1905 阅读 · 0 评论 -
MySQL中 int(11)和int(10)有没有区别
引言依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了。直到有一次有个同学又跟我谈起这个事,才去查了以下,发现事情并没有哪么简单… …最后查出的结果是:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。int(10)也可以代表 2147483647 这个值int(11)也可以代表。要查看出转载 2020-07-31 16:00:04 · 204 阅读 · 0 评论 -
Mysql分库分表的主键生成算法
mysql单表在数据量超过千万的时候,性能就会受到极大的影响。尤其是对于不命中索引的请求,破坏性是难以想象的。当单表的数据量达到一定程度的时候,我们就需要进行分表或者表分区了。分表面临的第一个问题就是主键ID生成的问题,因为涉及到多表,所以原本单表的自增ID生成已经不可用了。那么我们就需要生成全局的ID,有两种方法供我们选择,两者也各有优缺点。1.使用外部依赖生成全局ID最常见的算法就是利用外部的存储,例如Redis、Mysql或者Zookeeper来实现。上述三者比较推崇的是用Redis来实现,因原创 2020-07-31 15:33:10 · 586 阅读 · 0 评论 -
PHP Warning: mysqli_connect(): The server requested authentication method unknown to the client
PHP Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /usr/local/php/CreateDB.php on line 5mysql 安装了最新版本8.0.11后创建用户并授权后,授权的用户连接数据库提示The server requested authentication method unknown原创 2020-06-12 17:02:44 · 5592 阅读 · 2 评论 -
mac mysql nginx dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
今天突然启动 mysql 报错$ mysql -uroot -pdyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from: /usr/local/bin/mysql Reason: image not found[1] 97293 abort mysql -uroot -p有时启动其他软件也会报这个错误,比如 nginx原因:这个是由于 open原创 2020-06-12 11:40:17 · 1168 阅读 · 0 评论 -
mysql按日期分组统计的查询
SELECT DATE_FORMAT(deteline,"%Y-%m-%d %H"),COUNT(*)FROMtestGROUPBYDATE_FORMAT(deteline,"%Y-%m-%d %H")查询某天:deteline,"%Y-%m-%d"某时:deteline,"%Y-%m-%d %H"依次类推。其实就是对dateline进行处理,然后再对处理后的数据分组...原创 2020-06-10 16:30:35 · 280 阅读 · 0 评论 -
MySQL 统计总数和各分组数量
需求:统计出用户表中的总数和各个分组内的用户数量SELECT COALESCE (`group_id`, '总数'), COUNT(`id`) '客户数'FROM crm_userGROUP BY group_id WITH ROLLUP效果原创 2020-06-10 16:27:40 · 4484 阅读 · 0 评论 -
MySQL group by分组统计-每组各个条件信息条数
需求:统计各个班级中,学生总数、男生数、女生数表结构:数据如下:知识点:if语句:IF(where,result1,result2)实现如下:原创 2020-06-10 14:02:17 · 2201 阅读 · 0 评论 -
MySQL:datetime与timestamp的区别及使用选择
datetime与timestamp的区别1、存储空间不同在MySQL,timestamp在内部存储为整型,占用4个字节,而datetime占用8个字节。2、存储方式不同timestamp存储时,会从插入时间的客户端时区转换为UTC(世界标准时间)时间存储,而datetime不会做时间的转换直接存储。3、存储的时间范围不同timestamp:UTC时间,1970-01-010...原创 2019-09-10 14:09:28 · 3087 阅读 · 0 评论 -
mysql中int(1)与int(10)的区别
INT[(M)] [UNSIGNED] [ZEROFILL]普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。INT(1) 和 INT(10)本身没有区别,但是加上(M)值后,会有显示宽度的设置。如代码所示:mysql> create table test(id int(3));Query OK, 0 ro...原创 2019-09-10 11:14:27 · 1499 阅读 · 0 评论 -
MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较
在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int、timestamp、datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好呢?飘易就这个问题,来一个实践出真知吧。MYSQL版本号:5.5.19建立表:CREATETABLEIFNOTEXISTS`datetime_test`(`id`in...原创 2019-09-06 11:41:17 · 494 阅读 · 3 评论 -
大表更改默认值使用alter table不重建表,直接修改.frm
在mysql中执行很大部分的修改动作,都需要重建一个表,然后把数据放进去,最后删除旧的表!有时候要是有索引的列上进行大批且频繁的表的时候会导致系统的性能严重下降,这里可以在修改SQL上做部分调整,减轻相关的构建结构带来的系统压力问题!例如 在修改一个表的默认值为8的时候,常规做法为:(1):alter table modes modify column dept tin...原创 2019-07-02 15:55:52 · 1368 阅读 · 0 评论 -
阿里云RDS mysql 数据库服务器 错误SQLSTATE(HY000) –rds-deny-access option
今天有同事反映签到功能突然不能用了尝试访问下确实报错了 查看下错误信息连接数据库一直提示“the mysql server is running with the --rds-deny-access option so it cannot execute this statement”原因是阿里云数据库被锁定了登陆阿里云 原来是数据库忘记续费、到期了,被锁定,续费就可以了...原创 2019-05-30 16:05:08 · 837 阅读 · 0 评论 -
【MySQL】Mac通过brew安装的MySQL重启方法
问题在 Mac 上通过 brew install mysql 安装的的MySQL使用基本MySQL命令重启会失败:mysql.server stopmysql.server startmysql.server restartmysql.server stopmysql.server startmysql.server restart输出显示会提示成功,但是使用的时候会报错,不能使...原创 2019-05-21 11:35:30 · 1889 阅读 · 0 评论 -
mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci
1.utf8与utf8mb4(utf8 most bytes 4)MySQL 5.5.3之后增加了utfmb4字符编码 支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符 最多使用四个字节存储字符utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎...原创 2019-05-06 09:27:46 · 2570 阅读 · 0 评论 -
Mysql:Error Code 1235,This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决这次国庆节回来后的测试中,在一个Mysql表达式中使用嵌套查询,出现了这个错误。原因是内层select语句带有limit子句。在网上查了下,有文章指出:比如这样的语句是不能正确执行的。SELECT * FROM Result WH...原创 2019-04-28 18:42:34 · 1357 阅读 · 0 评论 -
MySQL查询在一个表而不在另一个表中的数据
1、使用not in,容易理解,效率低select distinct A.ID from A where A.ID not in (select ID from B)2、使用left join…on… ,B.ID isnull表示左连接之后在B.ID字段为null的记录select A.ID from A left join B on A.ID=B.ID where B.ID is nul...原创 2019-03-08 15:23:54 · 3780 阅读 · 0 评论 -
MySQL查询count(*)、count(1)、count(field)的区别收集
count(*)对行的数目进行计算,包含NULLcount(column)对特定的列的值具有的行数进行计算,不包含NULL值。count()还有一种使用方式,count(1)这个用法和count(*)的结果是一样的。任何情况下select count(*) from tablename是最优选择;尽量减少select count(*) from tablename where COL = ...原创 2019-03-08 15:16:31 · 581 阅读 · 0 评论 -
ubuntu下忘记MySQL密码重设方法
1、结束当前正在运行的mysql进程。# /etc/init.d/mysql stop2、用mysql安全模式运行并跳过权限验证。# /usr/bin/mysqld_safe --skip-grant-tables3、重开一个终端以root身份登录mysql。# mysql -u root4、修改root用户口令。mysql> use mysql原创 2018-03-04 22:47:49 · 202 阅读 · 0 评论 -
mysql 查询当天、本周,本月,上一个月的数据
今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) 1近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7原创 2017-03-29 15:13:36 · 839 阅读 · 0 评论 -
MySQL学习笔记(一)2016-12-11
mysql结构化查询语言(Structured Query Language)简称SQL打开mysql服务 sudo service mysql startsudo apt-get install mysql-server #安装MySQL服务端、核心程序sudo apt-get install mysql-client #安装MySQL客户端 新建数据库:语句格式为“CREATE DA原创 2016-12-11 00:52:59 · 492 阅读 · 0 评论 -
Mac中MariaDB数据库的安装步骤
大家都知道MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。这篇文章我们将详细介绍在Mac中安装MariaDB数据库的步骤,有需要可以参考学习。前言MariaDB由MySQL的创始人Michael Widenius主导开发,他早前转载 2016-10-25 20:35:19 · 6278 阅读 · 1 评论 -
MySQL for Mac在Mac终端导入导出.sql文件
导入打开终端输入:(前提是已经配置过MySQL环境变量)mysql -u root -pcreate database name;use name;source 『将.sql文件直接拖拽至终端,自动补全其文件目录』导出打开『终端』输入:cd 『打开要将.sql文件生成的文件位置』mysqldump -u root -p database_name>sql_name.sql原创 2016-10-25 18:45:47 · 21616 阅读 · 1 评论 -
在Linux环境下mysql的root密码忘记解决方法,修改root密码
MySQL密码的恢复方法之一1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Consol原创 2016-06-28 10:53:39 · 4249 阅读 · 0 评论 -
Mysql函数INSTR、LOCATE、POSITION VS LIKE
MySQL 大家都会用这样的語法:SELECT `column` FROM `table` where `condition` like `%keyword%’事实上,可以使用 locate 和 instr 这两个函数来代替SELECT `column` from `table` where locate(‘keyword’, `condition`)>0或是 loca原创 2016-06-23 12:52:13 · 538 阅读 · 0 评论 -
MySql数据库设计的8种优化方法
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务转载 2016-06-23 12:12:07 · 362 阅读 · 0 评论 -
Mysql 使用instr代替like
使用内部函数instr,可代替传统的like方式查询,并且速度更快。instr函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0.例如,SELECT * FROM bank_order WHERE instr(`y_name`,'测试');可查询名字中带 “测试” 的内容。原创 2016-06-23 12:09:30 · 2763 阅读 · 2 评论 -
秒懂inner join, left join, right join, full join 的区别!!
[TEST@ORA1] SQL>select * from a;编号 姓名---- ----------1000 张三2000 李四3000 王五[TEST@ORA1] SQL>select * from b;编号 商品---- ----------1000 电视机2000 录像机4000 自行车[TEST@ORA1] SQL>set null 空值--这里为了显示原创 2016-06-21 14:49:38 · 406 阅读 · 0 评论 -
MySQL中REPLACE INTO语句的用法
在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。那么 MySQL 中有无一种简单的办法在一条语句中实现这样的逻辑?对了,那就是使用replace into。replace into t(id, update_time) values(1, now())或者replace into t(转载 2016-05-31 23:01:26 · 2576 阅读 · 0 评论 -
mysql 多表 update sql语句总结
假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式:UPDATE product p, product原创 2016-05-31 22:59:57 · 1969 阅读 · 0 评论 -
MySql取得日期(前一天、某一天)
取得当天:SELECT curdate();mysql> SELECT curdate();+------------+| curdate() |+------------+| 2013-07-29 |+------------+ 取得当前日期:mysql> select now();+---------------------+转载 2016-04-28 16:10:53 · 2024 阅读 · 0 评论 -
mysql定时任务简单例子
如果要每5秒执行以下语句update tt set tt.update_time = now() where id = '1';INSERT INTO tt (tno,tname) VALUES (53,66);可以给mysql建个定时任务,具体方法如下delimiter // /*设定语句终结符为 //,因存储过程语句用;结束*/一、查看eve原创 2016-04-28 16:10:40 · 1965 阅读 · 0 评论 -
关于MySQL的SLEEP(N)函数
都知道通过在MySQL中执行select sleep(N)可以让此语句运行N秒钟:mysql> select sleep(1);+----------+| sleep(1) |+----------+| 0 |+----------+1 row in set (1.00 sec)返回给客户端的执行时间显示出等待了1秒钟借助于sleep(N)这个函数我们可以在MyS转载 2016-04-28 16:10:25 · 2746 阅读 · 0 评论