bitsCN.com总结MySQL建表、查询优化实用小技巧 MySQL建表阶段是非常重要的一个环节,表结构的好坏、优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表、MySQL查询优化积累的一些实用小技巧。 技巧一、数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的“添加时间(add_time)”,我建议大家再新增一个记录“更新时间(update_time)”字段,在我的工作里需要为市场部、运营部等建立...
bitsCN.commysql小技巧-不写函数实现split截取 1. 不写函数实现split截取 场景:dayNewStat+meilishuo+ipad+2003 (dayNewStat+meilishuo+iphone+2003)(dayNewStat+meilishuo+android+2003) 只取最后一位 设想:split(+)[-1] (python写法) 实现:有严格的格式要求,取巧方法,无技术含量 1substring(record_tag,locate(+,replace(record_tag,dayNewStat+meilishuo+, dayNewStat-meilishuo-)))2. having + min + if 场景:只要st...
bitsCN.com MySQL建表阶段是非常重要的一个环节,表结构的好坏、优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表、MySQL查询优化积累的一些实用小技巧。技巧一、数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的“添加时间(add_time)”,我建议大家再新增一个记录“更新时间(update_time)”字段,在我的工作里需要为市场部、运营部等建立各种报表,而很多报表里的数据都是需要...
bitsCN.com 1、如何放弃正在输入的命令。 在输入一条比较长的命令时,出现打字错误是在所难免的。在这种情况下,放弃正在输入的命令重头再来往往会是更好的选择。 这在mysql程序里很容易做到:不管光标位置在哪里,只需输入/c再按下回车键就可以退出当前命令行。不过,万一光标位置正处于某个已经用单引号或双引号括了起来的字符串的中间, /c就将被认为是那个字符串的一部分而起不到退出当前命令行的作用。 2、历史记录。 mysql可...
1.MySQL避免相同数据重复插入 若用户注册表有一列是email,避免相同email注册多个账号,那么就设置email为unique,这样就使email是唯一的,不会重复. 当插入的email和原来的一个email相同,则无法插入新的数据. alter table table_name add unique email
一 Insert 语句 1.在数据中只插入默认值: insert into [DBTrain].[dbo].[log_info] default values 2.在可以为null 的字段中,如果要设置null,可以按下[Ctrl+0],注意是零不是o,如果要恢复修改前的值按[Esc]二 Update 语句 可以更新前几条或某个百分比的数据 update top(3) [log_info] set info1 = 1001update top(80) percent [log_info] set info2 = 1002三 Delete 语句同样可以使用top 关键字四 Select 语句 1. With Ties 执...
1.插入的数据来源自其他表 表A有id, cola 字段 表B有id, cola, colb...等字段,其中id都为主键,cola为相同名字的列 现想将表B中colb>1000的记录都插入表A中,SQL语句可以这样写:代码如下: insert into A(id,cola) select id,cola from B where colb>1000 2.插入时排除(忽略)重复记录 现表A中有一部分记录了,再做如1中的插入操作可能遇到重复的key导致操作失败代码如下: insert ignore into A(id,cola) select id,cola from B...
bitsCN.com 对mysql优化时一个综合性的技术,主要包括a: 表的设计合理化(符合3NF)b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]c: 分表技术(水平分割、垂直分割)d: 读写[写: update/delete/add]分离e: 存储过程 [模块化编程,可以提高速度]f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]g: mysql服务器硬件升级h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) ===============...
1.导入csv文件 使用如下命令:1.mysql> load data infile "your csv file path" into table [tablename] fields terminated by ,上面的csv文件以,逗号作为分割符,需要用双引号或者单引号括起来。如果是以\t制表符作为分隔符的话,可不用显示指明域分割符。 还有一点需要注意,csv文件或者文本文件的路径要使用绝对路径,否则mysql会默认从数据库存储的目录寻找,找不到就会报如下错误:ERROR 13 (HY000) at line 1: Cant get stat ...
汇总各种来源的数据,可以创建一个中央仓库。通过分析和汇总业务数据报告,数据仓库能够帮助企业做出明智、战略性的决策分析。虽然数据仓库提供了许多便利,但是把这些敏感数据收集到一个单独系统,会给数据仓库带来安全问题。 如果选择使用数据仓库,企业需要考虑如何更好地保护内部信息系统。任何数仓安全方面的妥协都会给入侵者或网络罪犯以可乘之机,造成销售、营销、客户信息等业务数据的毁坏泄露。今年爆发的WannaCry勒索软件...
1.插入的数据来源自其他表 表A有id, cola 字段 表B有id, cola, colb...等字段,其中id都为主键,cola为相同名字的列 现想将表B中colb>1000的记录都插入表A中,SQL语句可以这样写:代码如下: insert into A(id,cola) select id,cola from B where colb>1000 2.插入时排除(忽略)重复记录 现表A中有一部分记录了,再做如1中的插入操作可能遇到重复的key导致操作失败代码如下: insert ignore into A(id,cola) select id,cola from B...
今天有这样得一个需求,如果登陆人是客服的话,会查询订单是该客服以及还没有匹配客服的,刚开始想的是直接在sql语句上拼写 or assigned_id is null 的,测试了一下发现这样的话,前面的其他条件都没有用了这样的话,第一个i.server_org_id = 4这个条件已经不适用了,,,,,,,,从这里可以知道AND 的优先级比OR的优先级高,先执行了前面的AND 语句,然后执行后面的OR语句,所以查出来的数据不是我想要的数据 后来又想了一下...
mysql技巧 在写业务时,时常会遇到这种问题 需要使用聚合函数算sum()或者使用max()但是,由于聚合函数需要将查询到的所有其他不是聚合函数的字段都要group by那么问题来了,有时候业务如果全都group by了会得不到想要的值。。 最近发现解决办法 可以使用嵌套查询selectt1.repair_status as repairStatusName,t2.code as deviceNumber,t2.deviceType as deviceTypeCodefrom dg_device_check t1,(select u1.device_code as code,u1.d...
DedeCMS用户经常碰到数据表出现报错“dede_search_keywords is marked as crashed and should be repaired”,这个说明你的数据表可能是崩溃了,需要修复,对此我们有以下机种方法: 1.使用DedeCMS系统修复表功能 如果数据量不大,可以直接在DedeCMS后台使用数据表修复的功能,这个是比较容易方便的。 或者可以借助第三方的MySQL管理工具,例如PHPMyadmin或者HeidiSQL 2.数据量大建议使用终端的方式:https:cqxftyyj.com 2.1. myis...
基本的概念:crud操作,表示是增删改查. c[create] / r[read] / u[update] /d[delete] 。 下面的案例都以该表为基础:--创建表 create table staff( id int not null default 1 comment "序列号", name varchar(5) not null default 保密 comment 姓名, sex enum(男,女,保密) not null default 保密 comment 性别, birthday date comment 生日, entry_date date comment 入职日期, station varchar(20) not null default 保密 comm...