mysql
文章平均质量分 78
雨轩_wscrf
奔跑在通往技术大牛的道路上。。。。
展开
-
mysql-sql高级应用
mysql-sql高级应用sql语言进阶 典型操作 order by- select * from play_list order by createtime;- select * from play_list order by bookedcount desc,createtime asc;order by 语句用于根据指定的列对结果集原创 2017-09-25 10:42:47 · 245 阅读 · 0 评论 -
MySQL中select * for update锁表的范围
MySQL中select * for update锁表的问题由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行TableLock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指定主键,转载 2017-12-08 11:21:41 · 216 阅读 · 0 评论 -
mysql select是否会锁表
有的人说mysql的 select 会锁表 ,有的人说 mysql 的查询不会锁表 。其他他们都对,没有 ,但是很片面。其实对于mysql的select 是否会锁表 ,这个完全取决于表采用的是什么存储引擎。这里我就拿大家最熟悉的存储引擎INNODB 和MYISAM 来说明这个问题。对于myisam的表select 是会锁定表的 ,会导致其他操作挂起,处于等待状态。对转载 2017-12-08 11:24:06 · 3795 阅读 · 1 评论 -
MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或线程并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言就显得尤为重要。转载 2017-12-08 13:40:21 · 370 阅读 · 0 评论 -
SELECT FOR UPDATE(转)
SELECT FOR UPDATE(转)该文章有些不对的地方,不过作参考还可以。 MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN S转载 2017-12-08 10:21:51 · 153 阅读 · 0 评论 -
MySQL事务以及select...for update
MySQL中的事务,默认是自动提交的,即autocommit = 1;但是这样的话,在某些情形中就会出现问题:比如:如果你想一次性插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关闭掉[autocommit = 0],通过程序来控制,只要一次commit就可以了,这样也才能更好的体现事务的特点!对于需要操作数值,比如金额,个数等等!转载 2017-12-08 10:28:40 · 473 阅读 · 0 评论 -
MySQL 的 RowNum 实现
MySQL 下面没有RowNum,排序后序号却无法得到,比较麻烦!SELECT @rownum:=@rownum+1 rownum, CollectSn From(SELECT @rownum:=0,bbgmain.* FROM qbdb.bbgmain WHERE collectsn!='' ORDER BY collectsn limit 10) t...原创 2018-02-10 12:56:42 · 229 阅读 · 0 评论 -
mysql返回记录的ROWNUM(转)
set @rownum = 0;select (@rownum := @rownum + 1) as rownum, name, scores fromuser order by scores;利用一个变量作为计数器,就把这个rownum给模拟出来了。再对这个查询结果进行搜索就可以得到想要的了:select rownum, name, scores from (select (@rownum :...转载 2018-02-10 12:58:54 · 191 阅读 · 0 评论 -
mysql 获取行号 rownum
【一条sql语句完成,不set变量】SELECT @rownum:=@rownum+1 AS rownum, frutas.* FROM (SELECT @rownum:=0) r, frutas;原创 2018-02-10 13:02:02 · 527 阅读 · 0 评论 -
Mysql日期函数
当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。MySQL Date 函数下面的表格列出了 MySQL 中最重要的内建日期函数:函数描述NOW()返回当前转载 2018-01-30 10:23:20 · 183 阅读 · 0 评论 -
insert into table 插入多条数据
方法1:insert into `ttt`select '001','语文' union allselect '002','数学' union allselect '003','英语'; 方法2:INSERT INTO tab_comp VALUES(item1, price1, qty1),(item2, price2, qty2),(item3, pric原创 2018-01-30 10:36:30 · 15392 阅读 · 1 评论 -
MySql 模糊查询
实例:SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。 2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。 3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green转载 2018-01-30 10:53:37 · 206 阅读 · 0 评论 -
如何查看 navicat 日志
mysql在执行sql的时候会在日志当中记录很多信息,当然包括执行的所有语句。下面以使用navicatformysql为例,来展示一下如何打开/查看MySQL的SQL记录:打开navicatformysql,并连接到数据库,选择一个要操作的数据库。点击左上角的【工具】,选择历史日志选项,或者直接【ctrl+H】。...原创 2018-02-24 23:02:39 · 26193 阅读 · 0 评论 -
MySQL下的安全问题--.mysql_history
不小心在/root目录下看到一个关于mysql的隐藏文件--.mysql_history,因为以前从没有注意过,遂打开看看是什么玩意。不想到打开吓了一跳,这个文件将我连接mysql的所有操作都记录下来了,包括创建用户及修改用户的明码密码等等。这还了得,万一被人攻击了,那么数据库还不死翘翘了!经查询资料发现这个文件是在编译安装MySQL时默认给配置好的,好像不太容易修改。但是这个文件最好不要保留,否...转载 2018-02-24 23:21:32 · 299 阅读 · 0 评论 -
The user specified as a definer ('root'@'%') does not exist 解决方法
权限问题,授权 给 root 所有sql 权限mysql> grant all privileges on *.* to root@"%" identified by ".";Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)...原创 2018-03-29 22:22:06 · 152 阅读 · 0 评论 -
mysql单表更新及多表更新
历经Oracle,MS SQL Server,到现在的MySQL,跨越了3种资料库的学习与研究,现在对于MySQL的表更新,单表字段更新与其他类型的RDBMS资料库一样,多表级联更新还是有些区别的,不过研究过后,发现还是蛮简单的。UPDATE 语句...转载 2018-03-29 22:52:06 · 433 阅读 · 0 评论 -
Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F
问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varchar,字符编码utf-8。部分插入成功,部分插入失败,报错如标题。在网上查询,有人说是编码问题,建议修改编码格式,比如改成gbk,UTF-8,blob等等,但是几乎没有人给出更详细的答案...转载 2018-03-26 18:01:46 · 1159 阅读 · 0 评论 -
sql语句中count(*),count(1),count(id)区别详解
1)count(1)与count(*)比较:1、如果你的数据表没有主键,那么count(1)比count(*)快2、如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快3、如果你的表只有一个字段的话那count(*)就是最快的啦4、count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。5、如果count(1)是聚索引,id...原创 2017-10-16 15:23:42 · 3589 阅读 · 0 评论 -
SQL语句中count(1)和count(*)的区别
最近使用count函数比较多,当要统计的数量比较大时,发现count(*)花费的时间比较多,相对来说count(1)花费的时间比较少。查了一些文档有以下的说法:如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count原创 2017-10-16 15:19:33 · 52840 阅读 · 5 评论 -
MySQL无限分类的数据表设计以及各种查询
先创建一个表CREATE TABLE tdb_goods_types( type_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, type_name VARCHAR(20) NOT NULL, parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0 ); 在原创 2017-09-19 10:26:15 · 1466 阅读 · 0 评论 -
mybatis在xml文件中处理大于号小于号的方法
第一种方法:用了转义字符把>和SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE附:XML转义字符 <原创 2017-09-20 17:33:10 · 196 阅读 · 0 评论 -
SQL利用Case When Then多条件判断SQL 语句
SQL利用Case When Then多条件判断SQL 语句123Select top 100 State,JoinState, (casewhen State=1 and Joinstate=0 then 2 when State=1 and JoinState=1 then 1else 0 end)原创 2017-10-27 11:04:19 · 2322 阅读 · 0 评论 -
mysql 查询当天、本周,本月,上一个月的数据
mysql 查询当天、本周,本月,上一个月的数据今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) 1近7天SELECT * FROM 表名 where DATE_S原创 2017-10-08 22:01:31 · 224 阅读 · 0 评论 -
sql复杂查询语句总结
先来看看表结构:[sql] view plain copy print?create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); create table teacher( tno varch转载 2017-09-01 15:56:19 · 366 阅读 · 0 评论 -
对mysql数据库中字段为空的处理
数据库中字段为空的有两种:一种为null,另一种为空字符串.null代表数值未知,空字符串是有值得,只是为空。有时间我们想把数据库中的数据以excel形式导出时如果碰到字段为空的,为空的字段会被后面有数据的字段占据,这样就导致列数错乱的现象。为了避免这种现象,我们可以用其它符号表示空的字段。如果要处理null字段。可以这样做 IFNULL(某字段,“--”),也就是如果这个字段为null,原创 2017-09-20 17:36:33 · 1467 阅读 · 0 评论 -
mysql查询语句实例 复杂mysql查询
1、单表查询(1)选择指定的列[例]查询全体学生的学号和姓名select Sno as 学号,Sname as 姓名 from student;select Sno,Sname from student;(2)查询全部列[例]查询全体学生的详细信息select * from student;转载 2017-09-01 14:17:03 · 440 阅读 · 0 评论 -
mysql中日期比较大小方法详解
mysql中日期比较大小方法详解 假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 复制代码select * from product where add_time = '2013-01-12'对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-原创 2017-06-21 14:25:01 · 510 阅读 · 0 评论 -
MySql 常用日期时间函数总结
MySql 常用日期时间函数总结/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算。 date 是一个 datetime 或date值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’原创 2017-06-19 16:39:54 · 372 阅读 · 0 评论 -
mysql获取当前时间,前一天,后一天
mysql获取当前时间,前一天,后一天负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是 CURDATE(),错误的sql语句 eg:SELECT COUNT(*) FROM USER WHERE registerDate >= CURDATE() AND registerDate 虽然 获取到的数量在测试环境中是正确的,但原创 2017-06-21 14:17:30 · 401 阅读 · 0 评论 -
MySql 里的IFNULL用法
MySql 里的IFNULL用法IFNULL(expr1,expr2)的用法:假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。如下图所示: 注意:当整条sql返回的结果记录数为:0 ,它会返回 null原创 2017-06-13 14:11:29 · 441 阅读 · 0 评论 -
MySQL的IF函数
MySQL的IF函数格式:IF(Condition,A,B)意义:当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。作用:作为条件语句使用。例子:SELECT fullName, actualHour, planhour, annotatorId, IF(actualHour-planho原创 2017-06-13 14:09:36 · 258 阅读 · 0 评论 -
Mysql进行复杂查询
1.查询“生物”课程比“物理”课程成绩高的所有学生的学号; 思路: (1)获取所有选了 生物 课程的学生的成绩(学号,成绩) --临时表 (2)获取所有选了 物理 课程的学生的成绩(学号,成绩) --临时表 (3)根据学号连接两张临时表(学号,生物成绩,物理成绩),加条件进行查询SELECT A.student_id AS 学号, sw A转载 2017-10-11 14:28:19 · 1140 阅读 · 0 评论 -
MySQL日期时间函数大全
mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期。示例:分隔符一致,年月日要一致 select str_to_date('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s');select str_to_date('2008-08-09 08:9:30', '%Y-%m-%d %h:%i:%s');DAYOFWEE原创 2017-10-30 09:26:58 · 163 阅读 · 0 评论 -
MySQL 获得当前日期时间
获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+---------------------+获得当前日期+时间(date + time)函数:sysdat原创 2017-10-30 09:41:55 · 1947 阅读 · 1 评论 -
MyBatis SQL xml处理小于号与大于号
MyBatis SQL xml处理小于号与大于号 当我们需要通过xml格式处理sql语句时,经常会用到,,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可避免上述的错误:原符原创 2017-10-16 13:40:56 · 197 阅读 · 0 评论 -
数据源配置时加上编码转换格式后出问题了
xml文件中配置JDBC源遇到问题 : The reference to entity "characterEncoding" must end with the ';' delimiter 数据源配置时加上编码转换格式后出问题了:The reference to entity"characterEnco...原创 2018-05-07 20:52:32 · 887 阅读 · 0 评论