
mysql
Mint6
这个作者很懒,什么都没留下…
展开
-
java查询mysql设置的tinyint(1)一直返回false的错误问题
背景:mysql存字段tinyint(1),默认存0和1,使用tk.mybatis查询,查询时自动转换为true和false,但是实际测试发现不管mysql存什么,java一直为false。经过:1.mysqlmysql字段类型设置tinyint(1)构造数据存在0和1的数据2.java对应映射的属性,设置为基本类型booleanprivate boolean brandCompound;出现问题:查询数据库,发现对应的属性一直返回false,不管数据库存0还是1,没有原创 2021-08-24 11:23:23 · 1379 阅读 · 0 评论 -
mysql复制表数据,修改后重新插入
一个sql搞定INSERT into student (id,pin,company,create_time)select null,"test_pin",company,now() from student where pin = "hello";解析:上面一行是要插入的表和数据格式,下面的一行是从数据库读取已经存在的数据。这俩红框内的顺序需要一致,不想使用查询出来的字段,可以自己修改。...原创 2021-06-25 21:49:05 · 1808 阅读 · 0 评论 -
mysql类目树关系的保存和全排列查询
1.初始化表CREATE TABLE `cate_rel` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `categoryCode1` varchar(255) DEFAULT NULL COMMENT '类目一', `categoryCode2` varchar(255) DEFAULT NULL COMMENT '类目二', `categoryCode3` varchar(255) DEFAULT NULL COMMEN原创 2021-05-22 00:59:53 · 307 阅读 · 1 评论 -
mysql导出数据语法
背景平时在本地使用mysql可以很方便的导出表结构,或者表数据,但是如果数据库在远程服务器,只能通过堡垒机或者跳板机连,导数据就成了比较困难的事情。查网上资料都推荐官方用法mysqldump,但是堡垒机不一定有这个命令,并且远程服务器也会为了安全屏蔽这些命令,这个时候就用不了啦。怎么方便简单的导出想要的数据呢?解决办法一行sql搞定,mysql-u账号-p密码-h域名-P端口库名-e"查询语句"> 当前所在服务器的绝对路径;比如:mysql-u账号-p密码...原创 2021-02-22 23:08:32 · 258 阅读 · 0 评论 -
MySQL 记录不存在时插入 记录存在则不插入
背景使用sql实现MySQL 记录不存在时插入 记录存在则不执行插入。初始化表结构DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '名字', `age` int(11) DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`原创 2021-02-21 19:23:35 · 1038 阅读 · 0 评论 -
mysql分组查询最新的记录
一行sqlSELECT * FROM(SELECT * FROM student ORDER BY create_time DESC LIMIT 10000) s GROUP BY name解析:分为子查询和主查询,两个语句(1)里面先进行排序,分组的时候会默认每个分组的第一个,limit 必须加,不加的话顺序不生效SELECT * FROM student ORDER BY create_time DESC LIMIT 10000(2)然后分组取第一条SELECT * FRO原创 2021-01-03 23:49:22 · 400 阅读 · 0 评论 -
mysql的EXISTS使用
使用格式如下:where exists ( 任何子查询 )使用含义:该子查询如果“有数据结果”, 则该exists()的结果为“true”该子查询如果“没有数据结果”,则该exists()的结果为“false”demoSELECT * FROM sys_user user LEFT JOIN sys_role role ON user.id=role.id WHERE ...原创 2020-03-30 00:41:12 · 2059 阅读 · 0 评论 -
mysql时间为0000-00-00 00:00:00时,程序读取错误
错误:Error attempting to get column 'start_time' from result set. Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp答案链接:https://stackoverflow.com...原创 2019-02-25 17:12:22 · 1426 阅读 · 0 评论 -
linux导出mysql命令
导出为txt格式,可以直接复制txt内容到excel命令mysql -u账户 -p密码 -h连接 -P端口 数据库 -e "select * from user" > /export/App/test/user.txt;原创 2019-04-24 18:09:44 · 307 阅读 · 0 评论 -
mysql查询表和字段信息sql语句
查询mysql表和字段信息的语句记录库名是:base表名是:data查询数据库信息,有几个表显示几行select * from information_schema.tables where table_schema="base" and table_type='base table';结果(太长了分成两个图):查询表信息SELECT table_name...原创 2019-05-18 22:42:00 · 11111 阅读 · 0 评论 -
mysql查询varchar区分大小写
现在数据库存在name=abc,不存在name=ABC的但是直接查询是都能查到abc数据的select * from user where name='abc'select * from user where name='ABC'第一种方法:select * from user where binary name='abc'select * from user where bin...原创 2019-05-14 19:30:41 · 1921 阅读 · 3 评论 -
mysql查询部门工资前三的信息
两个表,一个部门表Department一个Employee表第一种,(如果有多名并列第三,只展示前二)SELECT emp.id , emp.name ,emp.salary, dep.id as depId , dep.name as depName FROM Employee emp ,Employee emp1, Department d...原创 2019-05-27 21:16:54 · 9521 阅读 · 2 评论 -
mysql行转列解析
场景:mysq行列转换,把个人和科目成绩的情况放在一行展示,方便查看个人情况。(sql来说就是把一个重复列以及其对应关系的列,变成一行展示)===》sql测试语句DROP TABLE IF EXISTS `t_score`;CREATE TABLE `t_score` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varcha...原创 2019-07-01 00:27:37 · 409 阅读 · 0 评论 -
mysql代码插入数据乱码
1.设置java文件格式utf-82.设置mysql数据库为utf-83.设置jdbc连接为utf-8jdbcUrl jdbc:mysql://localhost:3306/goon?characterEncoding=utf-8&useSSL=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&...原创 2019-01-10 18:45:46 · 253 阅读 · 0 评论 -
项目本地没问题部署到linux服务器上mysql报错
报错如下Couldn't retrieve trigger: Table '表名' doesn't exist说表找不到,这是因为linux的表名大小写有区别修改配置文件my.cnf打开文件,找到[mysqld]在下面增加一行lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)重启mysql ...原创 2018-11-18 00:28:24 · 860 阅读 · 0 评论 -
java批量执行之分批处理
相关:在处理一些与数据库相关的操作的时候,通常把一些操作合并能够起到优化的效果,并且数量越大,批量执行的效率比一条一条执行的效率要快的多。批量插入比单次插入快比如有十条数据单条执行需要操作十次数据库,批量的话执行一次数据库的操作就可以。对应的sql语句:单次:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);I...原创 2018-09-15 15:42:16 · 5209 阅读 · 0 评论 -
mysql数据库limit与in无法一起使用
首先放上错误 [SQL]SELECT music.musicname FROM music WHERE music.musicid in(SELECT DISTINCT image.imageid FROM image LIMIT 2);[Err] 1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/原创 2017-08-20 00:59:59 · 795 阅读 · 0 评论 -
MySQL中的datetime与timestamp区别比较,以及选择方法
先记下 回去改http://blog.youkuaiyun.com/hotdust/article/details/51227475http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.htmlhttp://blog.youkuaiyun.com/muzai/article/details/4397627转载 2017-09-27 16:15:43 · 1170 阅读 · 0 评论 -
mysql中Tinyint(1)数据格式自动转为boolean类型
一次项目中数据库使用Tinyint(1),实体类使用boolean,刚开始还好奇怎么可以这样保存, 不过自己测试了一下,set属性为true,数据库字段自动保存为1,set属性为false,数据库字段自动保存为0 后来网上查了相关资料,整理如下: 1.资料 1.MYSQL数据库无法直接存储true跟false,将其存为Tinyint保存为0和1,是比较常见的一种 2.MYSQL存储与代表原创 2017-09-20 00:09:02 · 21027 阅读 · 0 评论 -
jdbcType与javaType的对应关系
java.sql.Types 值Java 类型IBM DB2OracleSybaseSQLInformixIBM Content ManagerBIGINTjava.lang.longBIGINTNUMBER (38, 0)BIGINTBIGINTINT8DK_CM_BIGINTBINARYbyte[]转载 2017-09-21 15:00:11 · 2878 阅读 · 0 评论 -
mysql sql长度限制
sql语句的长度跟数据包是成正比的,长度越长,数据包占用内存越大。mysql通讯的数据包大小设置是1M,所以如果传过来的mysql语句内存大于1M,就会失败。解决办法:1.注意精简sql语句,可以分批次执行,减少数据库压力。 2.修改数据库通讯数据包大小,mysql的配置文件(my.ini)中的max_allowed_packet = 需要修改的值 修改原创 2017-10-27 11:16:52 · 13512 阅读 · 0 评论 -
numeric,decimal,float和double类型
浮点类型(近似值) - FLOAT,DOUBLEFLOAT和DOUBLE类型代表近似数字数据值。MySQL对于单精度值使用四个字节,对于双精度值使用八个字节。因为FLOAT,SQL标准允许FLOAT在括号中的关键字后面的位的精度(而不是指数的范围)的可选规范 。MySQL还支持这种可选的精度规范,但精度值仅用于确定存储大小。从0到23的精度导致4字节的单精度FLOAT 列。从2转载 2017-10-11 14:38:50 · 4241 阅读 · 0 评论 -
Java字母加数字组合比较大小
有这样一种情况,需要比较纯英文,纯数字,英文混杂的组合大小解决办法:根据ASC||码,数字,比较顺序就是先比较第一个字符,如果比较出大小就停止,给出结果,否则比较第二个,依次进行所以可以把需要比较的参数作为String类型,直接传入数据库进行比较,根据上面的规则可以进行排序。原创 2017-10-25 11:28:29 · 5381 阅读 · 0 评论 -
java对前台增删改操作后数据的处理方法
一次性从数据库把前台需要的数据取出来,前台进行增删改后保存到数据库 编辑操作后台需要怎么比对的思路如下:1.delete 记录 from 表 where id not in(传入的ID集合) (id为唯一性条件)2.查询出 in(传入的ID集合)的集合3.对比数据 筛选出 删除需要删除的记录,跟需要插入的数据4.删除需要删除的,插入需要插入的。原创 2017-10-26 16:38:36 · 1829 阅读 · 0 评论 -
sql语句查询老师学生记录大于1的条数
这是teacher表结构,查询每个老师student这个字段存在数据库的记录数,过滤出大于2的记录1.这个就过滤出了,存在student记录数大于1的老师名与记录条数SELECT `name`,COUNT(student) FROM teacher GROUP BY `name` HAVING COUNT(student)>1结果修改成2SELECT `name`,COUNT(stude...原创 2018-07-06 17:56:45 · 13409 阅读 · 0 评论 -
window10同时安装多个版本的Mysql
测试环境:window10,已经安装了mysql5.5,继续安装mysql8.0两个mysql的安装都是自定义目录,我目录是D:\mysql5.5和D:\mysql8.05.5已经安装好了,默认端口是3306,所以第二个需要改一下端口,这里改为3307先修改mysql8.0目录下的配置文件,建立文件,my.ini,在里面配置# For advice on how to chang...原创 2018-07-13 22:52:03 · 9728 阅读 · 13 评论 -
mysql8忘记密码
本人环境:window10 安装了一个mysql5.7版本,然后又安装了mysql8版本安装完mysql8会有个初始密码,但是忘记复制就关闭了。所以本篇文章针对 无重要数据的非线上环境mysql。(因为不确定是否会删除历史数据。)1.先关闭mysql2.安装完mysql8的目录是这样的,删除data3.重新生成data然后用管理员方式打开cmd,找到mysql8.0的...原创 2018-08-20 12:02:32 · 2409 阅读 · 0 评论 -
mysql8.0 mybatis逆向工程 mybatis-generator
mysql8.0比之前的版本,比如5.7这些都有很多不一样比如1.字符集有的以前版本都没有,建表只能使用最新版本的。2.mybatis-generator 逆向工程也跟原来有些不一样。也就是原来的逆向工程代码,在对mysql8做操作的时候,会报错。一般解决办法1、首先检查你的驱动包是否为mysql-connection-java-8.0.11.jar,如果不是需要下载替换。2、...转载 2018-08-20 13:44:43 · 2500 阅读 · 1 评论 -
sql语句group by以及count()的一些思考
admin表 student表 第一条sql语句 SELECT admin.id ,student.`name` FROM admin,student ;结果直接把admin.id与student.name匹配的所有记录 即0,1,2,3,4,5与student1,student2,student3逐个匹配的记录 第二条sql语句原创 2017-07-27 01:13:39 · 15854 阅读 · 0 评论