清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引. 环境介绍  线上磁盘空间不足,truncate了许多能动的表,磁盘空间还是占据了87%,我们的nagios报警阀值是80%.所以不断的还会收到email以及短信报警.需要根据时间字段date_created清理,但是在设计之初由于当初的开发人员考虑不足所以date_created字段没有建立索引.另外这些数据可以不用备份,直接删除掉. 问题来了…
SELECT CASE WHEN EXISTS (SELECT * FROM usergroupmap WHERE groupId = groupIdIn AND userId = v_friendId) THEN 'EXIST' ELSE 'NOT EXIST' END INTO flag;…
一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? 1 2 3 4 5 6 7 8 IF EXISTS (  SELECT 1 FROM SYSOBJECTS T1  INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID  WHERE T1.NAME='A' AND T2.NAME='C'  )  PRINT '存在'  E…
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT FLOOR(7 + (RAND() * 6)); 以上摘抄自MySQL手册 从 Mysql 表中随机读取数据不难,方法还挺多的,但是如果要考虑效率,得到一个快速的高效率的方法,那就不是一件简单的事情了(至少对我来说不简单). 随机获得Mysql数据表的一条或多…
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT FLOOR(7 + (RAND() * 6)); 以上摘抄自MySQL手册 从 Mysql 表中随机读取数据不难,方法还挺多的,但是如果要考虑效率,得到一个快速的高效率的方法,那就不是一件简单的事情了(至少对我来说不简单). 随机获得Mysql数据表的一条或多…
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_constraint // 查询时需要满足的条件,行必须满足的条件 group by grouping_columns // 如何对结果…
功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].[SCHEMA].SYSCOLUMNS WHERE ID=OBJECT_ID([DATABASE].[SCHEMA].[TABLENAME]) AND NAME='COLUMN_NAME') ALTER TABLE [TABLENAME] ADD [COLUMN_NAME] [COLUMN_TYPE] p.s. 之前sql server在当前数据库下,Obj…
-- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CONSTRINT后面引号中的内容 ALTER TABLE 表名 DROP FOREIGN KEY 粘贴; -- 删除外键成功…
原文:SqlServer判断表中某列是否包含中文,英文,纯数字 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_33277597/article/details/89082284 背景:需要在数据库中批量更新一批数据,条件是某列包含中文字符. sql语句:select * from table1 where 列名 like '%[吖-座]%' 拓展: 1.字段包含英文字符 s…
在SQL SERVER中获取表中的第二条数据, 思路:先根据时间逆排序取出前2条数据作为一个临时表,再按顺时排序在临时表中取出第一条数据 sql语句如下: select top 1 * from(select top 2 * from NumberLog where UserName = '管理员' order by dateTime desc ) [table] order by dateTime asc…
查看hive中action_data_myisam表中的数据.表结构及所在路径 1.客户端进入hive环境:hive 2.查看表数据,鉴于数据量大,这里只显示前五条:select * from action_data_myisam limit 5; 3.查看表结构:desc action_data_myisam; 4.查看此表所在路径:describe extended action_data_myisam; 图1针对1.2.3步 图2 针对第4步 end!…
工具:MyEclipse8.5.apache-tomcat-6.0.43.MySQL5.6 问题:项目是同事发给我,正常运行之后,使用MySQL表里的管理员数据登陆时,提示“仅限于非总部工号登录!” 猜测:可能是系统分配了不同的权限,使总部账号无法登陆系统.在网上查询更改方法,无果.等上班之后联系同事,看如何更改. 两个可能的处理方法: 1.数据库中dc-system的表中最后一个flag改成n 2.项目中loginservlet中的判断条件去掉. 版权声明:本文为博主原创文章,未经博主允许不得…
今天遇到一个问题,数据表的数据有重复的,关键原因在于新增数据时,没有根据条件先判断数据是否存在,当数据存在时进行有关条件的更新,不存在时做新增数据. 对于表中已经存在的数据处理办法的方法: 1.先根据条件进行统计数据重复率. 2.查询那一些数据是重复的,将重复数据放在一张表中用于条件对比将源数据中的重复数据删除(mysql中使用一张表,sqlserver中可以使用临时表或者表变量存放数据). 3.根据条件关联将重复数据删除. 可以先查询重复数据的总数: select sum(count) fro…
最近看到有lua面试题,挺有意思的,一张表中有若干个数,0可以代表任何数 比如有张表{9, 2, 4, 1, 3, 0, 0, 0, 0},按照规则这张表中的四个0可以用来代表5,6,7,8,那么这张表是连续的,判断思路我是这样的 1.先遍历表,计算出0的个数 2.对表进行排序 3.计算相邻数之间的差值x,明显,如果x为1,那么这两个是连续的,如果不为1,那么x-1就是这两个数之间需要补充的数的个数,比如6和4的差x = 2,那么6和4之间需要补充的数就是x - 1 = 1,补一个5就可以连续了…
MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法 例如:  id name sex age  1 kathy male 23  2 Javer famale 32  3 Mike male 19 方法一: INSERT INTO kk (id, name,sex) VALUES(1,'kara','ssss') ON DUPLICATE KEY UPDATE id=1; 方法二: REPLACE INTO kk(id, name,sex) V…
这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下,确实有的.现在我记录下. 这个语句是:insert into A select * from B;这个语句根据需要变化,字段一定要一致: 另一种是MySQL复制表结构及数据到新表:CREATE TABLE 新表 SELECT * FROM 旧表;例子sql语句:CREATE TABLE new_t…
删除表中数据以前 [root@RM uar3]# du -sh * 3.3G apache-tomcat-7.0.54 150M instalRM4UAR 0 mariadb 903M mariadb-5.5.33a-linux-x86_64 64G mariadb-data 4.2G realmonitor 8.0K rm_netelement_s1u.sql 40K switchFlowReportWeb 0 tomcat 删除表数据 delete from nagios_statehist…
其实很简单,只是为了忘记,做个记录,用的时候方便. 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段. 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表中.此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 . 类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT …
MySQL5.1.x版本中引入了一项新特性EVENT,定期执行某些事物,这可以帮助我们实现定期执行某个小功能,不在依赖代码去实现. 我现在有一张表,这张表中的数据有个特点,每天都会有大量数据插入,但是昨天的数据已经不存在一点价值.现在需要在mysql中创建 一个定时器,每天删除昨天之前的数据. 首选查看mysql事件开启情况 SHOW VARIABLES LIKE 'event_scheduler'; 默认情况下是关闭的,需要我们去打 SET GLOBAL event_scheduler = O…
我们都知道MySQL里,索引通常用B+树来实现的.B+树的叶子结点才具体保存数据(聚簇索引保存的是行数据:普通索引是主键,如有需要得回表),非叶子结点都是用来索引叶子结点的.假设索引高度为h,那么每次索引查询都要查询h个索引页面才能找到叶子结点的索引数据.所以h的大小,势必成为索引效率的一个关键.那么通常表的索引高度h是多大呢? 我们再假设扇出系数为k,则索引里可索引key的数s=k^h. 在InnoDB里,每个页默认16KB,假设索引的是8B的long型数据,每个key后有个页号4B,还有6B…
一.比如说要判断表A中的字段C是否存在两个方法: (1) 直接查表——有点笨,有点常规 IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' (2)  直接判断列长度的函数——短小精悍,可谓精典 IF COL_LENGTH('A', 'C') IS NOT NULL…
 一.问题导出 在刚刚开始学习MySQL数据库应用与开发这门课程的时候,老师建议我们使用可视化工具MySQL Workbeach进行数据库的相关管理,但是小编在mysql命令框使用insert命令向表中插入中文数据的时候发现出现了warnings警告,并且打开MySQL Workbeach查看输入数据的时候发现,输入的数据为空或者是?????几个问号,于是便想到了字符格式的问题. 二.问题测试 (1)小编新建了一个test数据库,并在里面建了一个test数据表,里面只有一个属性(字符集都默认)…
--比如说要判断表A中的字段C是否存在两个方法: 一, IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 二, 短小精悍,可谓精典 IF COL_LENGTH('A', 'C') IS NOT NULL PRINT N'存在' ELSE PRINT N'不存在'…
--比如说要判断表A中的字段C是否存在两个方法: 一, IF EXISTS ( FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 二, 短小精悍,可谓精典 IF COL_LENGTH('A', 'C') IS NOT NULL PRINT N'存在' ELSE PRINT N'不存在' 方法一: sel…
1.查询user表 select * from mysql.user 2.修改用户密码 ALTER user ' 3.user表中各字段的含义 Select_priv:用户可以通过SELECT命令选择数据. Insert_priv:用户可以通过INSERT命令插入数据; Update_priv:用户可以通过UPDATE命令修改现有数据; Delete_priv:用户可以通过DELETE命令删除现有数据; Create_priv:用户可以创建新的数据库和表; Drop_priv: 用户可以删除现有…
公司要将Django项目重构成Java项目,也就有了整理数据库文档的经历....... 由于django从model迁移时没有将注释(也就是模型类中的verbose_name)写进mysql的表中,导致从MySQL导出的数据文件中没有注释. 想代码解决吧,查了一下,没有可参考的例子(没翻墙的情况下).没办法,只能自己写了,毕竟模型类就在那里,它是跑不掉的,想办法把它揪出来就行了.话不多说,直接上代码 1.引入用到的工具包,反正csv可以直接转成Excel,而且python用它写入比用其它Exce…
1,为当前已有的表添加新的字段 alter table student add studentName varchar(20) not null; 2,为当前已有的表中的字段设置为主键自增 alter table student add constraint PK_studentId primaryKey(studentId); 3,为当前已有的表中的字段设置为外键 alter table student add constraint FK_teacherId_studentInfo forei…
通过下面的SQL语句可以统计出数据库的各个表中的记录数: select table_schema, table_name,table_rows from information_schema.tables where table_schema='数据库名';…
类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO  目标表  SELECT  * FROM  来源表 ; 例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现: INSERT INTO  newArticles  SELECT  * FROM  articles ; 类别二. 如果只希望导入指定字段,可以用这种方法: INSERT INTO  目标表 (字段1, 字段2, ...) …
1. 创建存储过程batchDeleteField:删除所有名称为"MyDB_"开头的数据库中的指定字段 -- ---------------------------- -- Procedure structure for batchDeleteField -- ---------------------------- DROP PROCEDURE IF EXISTS `batchDeleteField`; DELIMITER ;; ),)) BEGIN #数据库名称 ); #声明结束…