
MySQL
文章平均质量分 74
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。在 WEB 应用方面 MySQL 是最好的 RDBMS应用软件之一。
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
mysql进阶(三十六)mysql数据库密码重置
由于长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,下面介绍一个简单的常用修改密码方式:1.首先找到和打开mysql.exe和mysqld.exe所在的文件夹(在你所安装的Mysql的bin文件夹下),复制路径地址。2.打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。3.输入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新原创 2021-10-13 16:52:01 · 1096 阅读 · 0 评论 -
剑指Offer——知识点储备-数据库基础
剑指Offer——知识点储备-数据库基础数据库事务事务的四个特性:(1)原子性 整个事务中的所要操作要么全部提交成功,要么全部失败回滚。(2)一致性 保证数据库中的数据操作之前和操作之后的一致性。(比如用户多个账户之间的转账,但是用户的总金额是不变的)(3)隔离性 隔离性要求一个事务对数据库中数据的修改,在未提交完成前对于其它事务是不可见的。(即事务之间要串行执行)原创 2016-11-07 10:56:37 · 51545 阅读 · 4 评论 -
mysql进阶(三十四)Field ‘id‘ doesn‘t have a default value 错误解决方法
在做项目开发过程中,实现新建表结构数据新增,前端点击新增操作后,发现后台报错信息如下:Field 'id' doesn't have a default value后经过走查发现,表结构中存在id字段,但是写表时并未传参id,且id字段在设计表结构时本意是自增字段,无需前端传值。通过查看表结构,发现id字段并未设置为自增字段!通过设置id字段为自增字段,解决以上错误信息!...原创 2021-01-04 09:40:48 · 5276 阅读 · 5 评论 -
mysql进阶(三十三)MySQL数据表添加字段
MySQL 允许在开头、中间和结尾处添加字段。在末尾添加字段一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下:ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];对语法格式的说明如下:<表名> 为数据表的名字;<新字段名> 为所要添加的字段的名字;<数据类型> 为所要添加的字段能存储数据的数据类型;[约束条件] 是可选的,用来对添加的字段进行约束。这种语原创 2020-12-15 14:05:36 · 1807 阅读 · 0 评论 -
mysql进阶(三十二)MySQL 错误. You are using safe update mode and you tried to update a table without ....
在执行delete语句的时候,可能会提示MySQL在保护模式, 无法进行删除, 错误如下ErrorCode: 1175. You are using safe update mode and you tried to update a tablewithout a WHERE that uses a KEY column To disable safe mode, toggle the optionin Preferences -> SQL Editor and reconnect.解决方案:原创 2020-12-07 16:42:02 · 1918 阅读 · 0 评论 -
mysql进阶(三十一)常用命令汇总
mysql 常用命令一、连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接原创 2017-02-20 09:14:29 · 45473 阅读 · 0 评论 -
mysql进阶(三十)MySQL Workbench出错KERNELBASE.dll停止工作 + MySQL服务消失 + 服务启动失败解决方法
台式机由于系统被破坏重装系统后,发现原来装的很多软件都已经打不开了。例如MyEclipse、MySQL、MySQL-Workbench。主要还是由于之前安装软件时安装路径为系统盘符C盘,重装系统之后软件的实际安装路径在D盘下,导致之前安装的软件.ini配置文件全都出现了问题。博文《》就是在此情景下产生的。本篇博文主要解决“MYSQL-Workbench停止工作 + MySQL服务消失 + 服务启动失败”的一系列问题。原创 2017-01-09 20:02:18 · 48494 阅读 · 1 评论 -
剑指Offer——常用SQL语句、存储过程和函数
剑指Offer——常用SQL语句、存储过程和函数常用SQL语句1.在MySQL数据库建立多对多的数据表关系2.授权、取消授权grant、revokegrant select, insert, update, delete on testdb.* to common_user@’%’;revoke all on *.* from dba@localhost;create user guest@lo原创 2016-11-08 11:08:42 · 45737 阅读 · 0 评论 -
mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数值GREATEST(x1,x2,…,xn)返回集合中最大的值LEAST(x1,x2,…,xn)原创 2016-11-08 11:00:25 · 44271 阅读 · 0 评论 -
mysql进阶(二十八)GRANT REVOKE用法
MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念:认证->确定用户是否允许连接数据库服务器;授权->确定用户是否拥有足够的权限执行查询请求等。 如果认证不成功的话,那么授权肯定是无法进行的。 revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from”。 表 GRANT和REVOKE管理的权限 如果你想允许用原创 2016-10-21 21:28:02 · 53412 阅读 · 0 评论 -
mysql进阶(三十五)SQL语言四大类
SQL语言四大类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件> SELECT * FROM lmapp.lm_addr where ui原创 2016-10-21 10:37:06 · 50939 阅读 · 2 评论 -
数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。...原创 2016-10-20 21:59:49 · 44932 阅读 · 1 评论 -
mysql进阶(二十七)数据库索引原理
本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分讨论MySQL中高性能使用索引的策略。...原创 2016-10-13 20:20:38 · 44780 阅读 · 0 评论 -
mysql进阶(二十六)MySQL 索引类型(初学者必看)
索引是快速搜索的关键。MySQL 索引的建立对于 MySQL 的高效运行是很重要的。下面介绍几种常见的 MySQL 索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。我们随机向里面插入了 10000 条记录,其中有一条:5555, admin。在查找 username="admin"的记录时,如果在 username 上已经建立了索引,MySQL 无须任何扫描,即准确可找到该记录。相反,MySQL会扫描所有记录,即要查询 10000 条记录。索引分单列索引和组合索引。...原创 2016-10-13 20:12:47 · 44686 阅读 · 1 评论 -
mysql进阶(二十一)删除表数据
MySQL删除表数据 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATETABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATETABLE将删除表中的所有记录。因此,DELETE语句更灵活。 如果要清空表中的所有记录,可以使用下面的两种方法: DELETEFROMtabl原创 2016-01-12 19:55:36 · 49828 阅读 · 4 评论 -
mysql进阶(二十二)MySQL错误之Incorrect string value: ‘\xE7\x81\xAB\xE7\x8B\x90...中文字符输入错误
MySQL错误之Incorrect string value: '\xE7\x81\xAB\xE7\x8B\x90...' for column 'tout' at row 1中文字符输入错误 在实验过程中需要将输出参数写入数据库,在写的过程中执行到lab_dynamic_order.upd_upd()语句时出现了错误,自己起初还不明白到底是哪里出现了错误。尝试性求助度娘,网上有人说是因原创 2016-05-18 14:53:44 · 77330 阅读 · 6 评论 -
mysql进阶(二十四)防御SQL注入的方法总结
防御SQL注入的方法总结 这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下。 SQL注入是一类危害极大的攻击形式。虽然危害很大,但是防御却远远没有XSS那么困难。 SQL注入可以参见:https://en.wikipedia.org/wiki/SQL_injection SQL注入漏洞存在的原因,就是原创 2016-06-30 20:56:16 · 50330 阅读 · 3 评论 -
mysql进阶(二十五)解决数据库NO CONNECTION问题
解决数据库NO CONNECTION问题前言 数据库版本类型:Mysql5.5 在应用程序连接数据库时,提示数据库连接失败。打开数据库查看,显示如下。 究其原因,是因为mysql服务出现了问题,重启mysql服务,数据库成功连接。参考文献 1.http://jingyan.baidu.com/album/0a52e3f4158211bf62ed72e6.ht原创 2016-07-04 08:55:13 · 57504 阅读 · 3 评论 -
mysql进阶(二十三)数据库事务四大特性
数据库事务四大特性 原子性、一致性、分离性、持久性(1)原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性原创 2016-03-12 15:37:43 · 49875 阅读 · 1 评论 -
mysql进阶(二十)CPU超负荷异常情况
CPU超负荷异常情况问题 项目部署阶段,提交订单时总是出现cpu超负荷工作情况,导致机器卡死,订单提交失败。通过任务管理器可见下图所示: 通过任务管理器中进程信息(见下图)进行查看,可见正是由于项目运行的原因导致CPU超负荷工作。元凶究竟是谁?难道是因为输出的测试语句太多导致的,尝试减少测试输出语句。追根溯源 经查,是在进行提交订单即执原创 2016-01-03 09:50:09 · 49846 阅读 · 1 评论 -
mysql进阶(十九)SQL语句如何精准查找某一时间段的数据
SQL语句如何比较日期时间 在项目开发过程中,自己需要查询出一定时间段内的交易。故需要在sql查询语句中加入日期时间要素,sql语句如何实现? SELECT*FROMlmapp.lm_billwheretx_timeBetween'2015-12-20'And'2015-12-31'; 仔细研究还是能够发现一些细节性的问题的。原创 2015-12-25 10:18:36 · 67025 阅读 · 1 评论 -
mysql进阶(十八)完全卸载mysql数据库图文教程
完全卸载mysql数据库图文教程 有时候MySQL不能完全卸载,这时候必须通过一些途径删除掉注册表和一些残余的文件,然后才能重新安装才可以成功!方法/步骤 1.控制面板——》所有控制面板项——》程序和功能,卸载mysqlserver! 2.然后删除mysql文件夹下的my.ini文件及所有文件 3.运行“regedit”文件,删除原创 2015-12-22 16:45:50 · 52116 阅读 · 1 评论 -
mysql进阶(十七)Cannot Connect to Database Server
CannotConnecttoDatabaseServer缘由由于不同的项目中使用的数据库用户名与密码出现了不一致的情况,在其中之前较早一个项目执行过程中出现“Theuserspecifiedasadefiner('root'@'localhost')doesnotexist”的错误提示。经过网络一番搜索,原因是root用户不存在,故自己将用户名改回到之前的用户名原创 2015-12-22 16:21:12 · 62394 阅读 · 2 评论 -
mysql进阶(十六)常见问题汇总
mysql进阶(十六)常见问题汇总MySQL视图学习:http://www.itokit.com/2011/0908/67848.html执行删除操作时,出现如下错误提示:出现以上问题的原因是:在数据库中涉及到主外键的操作,删除时应对其进行级联删除的设置。如下图所示:在做删除视图中数据操作时,出现如下错误提示:解决方法:删除视图中的数据原创 2015-09-12 10:06:18 · 50116 阅读 · 3 评论 -
mysql进阶(十五) mysql批量删除大量数据
mysql批量删除大量数据假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条,直接执行DELETEFROMsyslogsWHEREstatusid=1会发现删除失败,因为lockwaittimeoutexceed的错误。因为这条语句所涉及的记录数太多,因此我们通过LIMIT参数分批删除,比原创 2015-08-16 20:50:14 · 67577 阅读 · 2 评论 -
mysql进阶(十四) 批量更新与批量更新多条记录的不同值实现方法
在mysql中批量更新我们可能使用update,replaceinto来操作,下面详细介绍mysql批量更新与性能。原创 2015-08-16 16:30:19 · 54194 阅读 · 2 评论 -
mysql进阶(十三)命令行导出导入数据库
MySQL命令行导出导入数据库MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目录如我输入的命令行:cdC:\ProgramFiles\MySQL\MySQLServer4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库:mysqldump-u用户名-p数据库名>原创 2015-08-12 17:13:14 · 51582 阅读 · 1 评论 -
mysql进阶(十二)常见错误汇总
原因:外键名不能重复原创 2015-07-31 14:53:09 · 51039 阅读 · 1 评论 -
mysql进阶(十一)外键在数据库中的作用
MySQL外键在数据库中的作用MySQL外键的目的是控制存储在外键表中的数据,使两张表形成关联,是MySQL数据库中非常重要的组成部分,值得我们去深入了解。那么,MySQL外键究竟起到哪些作用呢?下文就将带您一探其中的秘密。MySQL外键的作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中列的值!例1:ab两个表a表中原创 2015-07-29 19:10:52 · 51473 阅读 · 2 评论 -
mysql进阶(十)不靠谱的FLOAT数据类型
今天在设计数据表时,突然发现原来FLOAT原来是很不靠谱的,所以在这里建议大家换成DOUBLE类型,原因是:在mysql手册中讲到,在MySQL中的所有计算都是使用双精度完成的,使用float(单精度)会有误差,出现意想不到的结果。在我们查询数据时,MySQL使用64位十进制数值的精度执行DECIMAL操作,float(5.54)=5.54原创 2015-07-27 20:30:09 · 52036 阅读 · 4 评论 -
mysql进阶(九)多表查询
实现多表查询时,可以同时使用谓词ANY、SOME、ALL,这些谓词被称为定量比较谓词,可以和比较运算符联合使用,判断是否全部返回值都满足搜索条件.SOME和ANY谓词是存在量的,只注重是否有返回值满足搜索条件,这两个谓词的含义相同,可以替换使用;别名通常是一个缩短了的表名,用于在连接中引用表中的特定列,如果连接中的多个表中有相同的名称列存在,必须用表名或表的别名限定列名。,它是以右侧的表为基准故称右连接,右侧表中所有信息将被全部输出,而左侧表信息则只会输出符合条件的信息,对不符合条件的信息则返回。...原创 2015-07-27 20:29:24 · 51843 阅读 · 1 评论 -
mysql进阶(八)怎么对varchar类型排序问题
MySQL中怎么对varchar类型排序问题asc升级desc降序在mysql默认orderby只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,下面我来给各位同学介绍varchar类型排序问题如何解决。今天在对国家电话号码表进行排序的时候发现了一个有趣的问题,我想让isdcode字段按照由小到大的顺序排序,于是乎我是这样写的SELECT*F原创 2015-07-27 20:25:56 · 54821 阅读 · 7 评论 -
mysql进阶(七)limit的用法
limit是mysql的语法select*fromtablelimitm,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select*fromtablenamelimit2,4即取出第3条至第6条,4条记录。原创 2015-07-25 17:46:45 · 52124 阅读 · 4 评论 -
mysql进阶(六)模糊查询的四种用法介绍
mysql中模糊查询的四种用法介绍这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下。下面介绍mysql中模糊查询的四种用法:1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如SELECT*FROM[user]WHEREu_nameLIKE'%三%'将会把u_na原创 2015-07-25 17:43:04 · 52033 阅读 · 1 评论 -
mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询OR关键字可以联合多个条件进行查询。使用OR关键字时:条件1)只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来。2)如果不符合这些查询条件中的任何一条,这样的记录将被排除掉。语法格式OR关键字的基本语法格式如下:条件表达式1OR条件表达式2[...OR条件表达式n]OR可以连接两个条件表达式,同时可原创 2015-07-25 17:36:07 · 54103 阅读 · 2 评论 -
mysql进阶(四)mysql中select
mysql中select*forupdate 由于InnoDB预设是Row-LevelLock,所以只有「明确」的指定主键,MySQL才会执行Rowlock(只锁住被选取的资料例),否则MySQL将会执行TableLock(将整个资料表单给锁住)。举个例子:假设有个表单products,里面有id跟name二个栏位,id是主键。例1:(明确指定主原创 2015-07-23 17:56:41 · 51482 阅读 · 0 评论 -
mysql进阶(三)游标简易教程
mysql游标简易教程 从mysqlV5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎。InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键),灾难恢复能力等等。现在简单总结一下游标的知识。(一)认识游标(cursor)游标简单来说就是查询出来的数据索引,通过对游标的操作(第一个位置、最后一个位置、上一个位置原创 2015-07-23 17:54:51 · 51941 阅读 · 0 评论 -
mysql进阶(二)索引简易教程
Mysql索引简易教程 基本概念 索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容。在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找。找到的这些符合条件的字段后再读取字段A所指向真实的数据记录的物理地址,再把对应的数据内容输出。如果你查找的不是索引的字段那么他会从数据表里面查找。因为数据表原创 2015-07-23 17:50:18 · 52352 阅读 · 0 评论 -
MySQL进阶(一)主外键讲解
1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键,外键可以有重复的,可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如下面这两张表:上面有两张表:部门表(dept)、员工表(emp)。Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道原创 2015-05-14 15:55:48 · 54215 阅读 · 2 评论