数据库
MySQL等与数据库相关内容
椰汁菠萝
在循环中进步
展开
-
MySQL向自增列插入0失败问题
默认情况下,MySQL对应自增列,认为0和null等价(因为mysql认为0不是最佳实践不推荐使用,其实这里我这个表主键不应该设为自增,设置习惯了),所以虽然insert中有0,也会被mysql忽略改用自动生成的值。在一次上线时,发现通过脚本添加的状态表中,待提交的状态不正确,本来应该是0,线上是101。一般使用0,代表有特殊含义,这种表主键可以的化,不需要加入自增;如果确实要自增,又需要插入0值,那就需要设置。原创 2024-07-11 18:40:48 · 394 阅读 · 0 评论 -
MySQL修改字段汇总
添加字段到表头;添加字段到最前面原创 2024-06-24 16:00:58 · 333 阅读 · 0 评论 -
Mysql升级8.0后日期类型兼容性问题
该问题是因为代码中使用Map类型获取查询返回值,原5.7驱动中,日期类型会被转为Date类型,现有8.0.33驱动中,日期类型转为LocalDateTime;造成前端拿到类型不是Date出现类型装换异常。最近对原有项目数据库进行升级,从MySQL 5.7 升级到8.0,因此项目种的驱动程序也要做相应升级。以为针对LocalDateTime的修改是从8.0.23开始的,只要使用之前版本即可;原创 2023-06-12 15:42:21 · 1712 阅读 · 1 评论 -
MySQL中Null的设计逻辑
MySQL NULL 值处理我们知道 MySQL 使用 SQL SELECT命令及WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:IS NULL: 当列的值是 NULL,此运算符返回 true。IS NOT NULL: 当列的值不为NULL, 运算符返回 true。<=>: 比较操作符(不同于=运算符),当比较的的两个值相等或者都为 NULL 时返回true。关于NULL的条件原创 2021-03-17 10:49:35 · 221 阅读 · 0 评论 -
从数据库url获取数据库名host及port
不多说直接上代码public static void getHostFrom(String url) { Pattern p = Pattern.compile("jdbc:(?<db>\\w+):.*((//)|@)(?<host>.+):(?<port>\\d+).*"); Matcher m = p.matcher(url); if(m.find()) { System.out.println(m.group("db")); System.原创 2020-07-07 16:18:45 · 5440 阅读 · 9 评论 -
Navicat创建数据库模型
最近使用Navicat创建数据库模型,没有另存为功能,导致不能多人共享,为了能方便共享,需要找到模型文件保存位置这样就能分享了原创 2020-04-16 15:16:27 · 1496 阅读 · 0 评论 -
MySQL中datatime和timestamp
一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]”。对于date字段来说,它只支持date部分,如果插入了time部分的内容,它会丢弃掉该部分的内容,并提示一个warning。TIMESTAMP...转载 2019-05-05 16:00:18 · 2970 阅读 · 0 评论 -
MySQL使用全文索引(fulltext index)
1.创建全文索引(FullText index) 旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网, 1.1. 创建表的同时创建全文索引 CREATE TABLE article (...转载 2018-09-12 16:04:51 · 26455 阅读 · 4 评论 -
SQL 模糊查询条件的四种匹配模式
执行数据库查询时,有完整查询和模糊查询之分。一般模糊语句格式如下:SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件;其中,关于条件,SQL提供了四种匹配模式:1、%:表示零个或多个字符。 可以匹配任意类型和任意长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如:select * from flow_user where username lik...转载 2018-09-12 15:33:56 · 22350 阅读 · 0 评论 -
tomcat 连接池配置
共同同属性属性这些属性在commons-dbcp和tomcat-jdbc-pool之间共享,在某些情况下,默认值是不同的。属性描述defaultAutoCommit(布尔值)由此池创建的连接的默认自动落实状态。如果没有设置,默认是JDBC驱动默认(如果没有设置,则setAutoCommit不会调用该方法)。defa原创 2017-11-10 15:30:24 · 8328 阅读 · 0 评论 -
SqlServer 数据库同步 (发布、订阅)
上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。 1、发布。发布需要用实际的服务器名称,不能使用服转载 2017-06-15 16:57:15 · 2756 阅读 · 1 评论 -
SQL Server自增长列插入指定值 -- SET IDENTITY_INSERT ON|OFF
想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT示例:1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))2.尝试在表中做以下操作:INSERT INTO products (id,转载 2017-02-21 15:10:47 · 9131 阅读 · 0 评论 -
Mysql group by 中行转列
我们在进行group by 的时候,有些列,我们不想进行聚合,比如上表的p,当我对match_id,expert_id,进行group by时,我想把p的值转成列类似于这样也就是行转列,这时用到case when,语句如下select match_id,expert_id,sum(case parent_id WHEN 1 then p end) p1,sum(case原创 2015-10-22 09:33:48 · 2066 阅读 · 0 评论 -
Mysql Exists 和Not Exists用法
这里着重介绍Not Exists(Exists用法类似),Not Exists 不存在用法:Select * from TableA a where Not Exists (Select * from TableB b where a.id=b.id and a.name=b.name);1、Not Exists 用在where之后,且后面紧跟子查询语句(带括号);2、Not原创 2015-10-20 16:16:57 · 40217 阅读 · 1 评论 -
数据库获取随机记录
MySQL:select * from expert e where e.match_Id=107 order by rand() limit 2;运用order by rand() 对数据进行随机排序,limit取出前两个SqlService:select top 2 * from tableName order by newId();原创 2015-05-21 10:11:51 · 435 阅读 · 0 评论