Mysql操作记事本

在mysql中做统计的时候,count()会扫描所有的行数,不管行的值是否为空,count('column name')会过滤掉值为空的行,count(1)的意思就是扫描主键所对应的列,效率会比count()高 ifnull(code_mode,'unknown')的意思就是如果code_mode的值为NULL,那么对其赋值为unknown substring(str, begin, end),表示从开始到结束的位置截取字符串字段,字段的位置从1开始算 case value when xxx value1 when xxx value2 end 表示先取value的值,然后进行条件判断,然后根据判断赋予新的值 MYSQL语句之间,各个语句之间一般是不要加,号的,只有在同一个语句内的几个变量之间才需要加,号

修改mysql里面表的结构,使用alter tablename命令,例如修改表里面一列的类型定义 alter tablename modify 列名 varchar(255); 将会把该列的类型定义为255长度字符串 SQL查询中,添加distinct统计中去除重复数据(count(distinct xxx))

左链接会显示左表的所有数据,然后会根据链接中的条件显示右表中符合条件的数据(一般会设置两边的ID匹配,简单来说join就是在一张表上面格外再显示一些字段),如果右表里面会多个数据匹配的话,会重复显示左表的数据(比如一个表存基本信息,另外一个表存一些属性信息),这种情况,一般使用GROUPCONTACT函数,此函数可以将零散的属性信息合并到一起,相同ID仅显示一行数据,合并后的数据会使用;进行分隔

在mysql语句中,<>符号为不等于的意思,同时将变量与Null进行比较的时候,需要使用 is Null或者is not Null,不能使用 = Null的表达式 mysql中, case when people.sex='male' then 'boy' when people.sex='female' then 'girl' else 'ladyboy' end 要判断的值可以放在when里面,也可以直接放在case当中,就和switch case的用法一样了

创建index时需要为索引名称以及索引对应的column名称,然后会选择索引的类型 主要有三种索引类型:

  • normal:
  • full-text:用于文本的索引(列类型要是char、text、varchar),可以避免文本搜索使用like效率低下的问题,full-text一般使用的场景是长文本当中搜索一些词语,mysql在创建索引的时候会对文本进行自然语言处理,同时需要注意的是full-text索引无法为单列数据创建,需要针对多列数据联合创建full-text索引,由此可见,创建full-text索引的开销还是很大的
  • unique: 如果可以保证索引列的值唯一就可以创建为此类型(一般为id类) 然后需要选择索引方法,在mysql中主要有两种 :
    (1)b-tree, 也就是使用b-tree来储存、查找索引,同时这种类型的b-tree会在叶子节点一并存储索引所对应的行的其它列的信息
    (2)hash,也就是通过hash-map来储存一行或者多行对应的hash值,查找的时候直接查找hash-map得到结果,所以有map所对应的各种特点,无法范围搜索(hash map一对一),查找的结果无序(hash map本身就是无序的) 使用了索引之后,你会发现删除的时候效率会比较低,这是因为每次删除数据会重新生成索引树(删除叶子节点,插入父节点等操作),所以使用索引的时候最好针对频繁查找但是偶尔进行修改、删除的数据 对于使用了索引又需要进行删除的数据,有一种解决办法就是进行假删除,只是让原本的数据检索不到,但是数据在数据库当中依然真实存在、亦或是可以只删除数据而不删除索引的数据

MYSQL里面一直复杂的操作,例如多表的删除、修改操作,最好使用事务来完成,事务可以在执行的时候避免这一组语句之间的冲突,而且在保证这些语句均执行成功后才提交保存改动,失败的时候会执行回退; 一般也可以创建函数或者存储过程(Procedure)来执行事务,其实相当于一个小脚本,把一堆SQL语句包裹起来,注意的是里面的每句均需要加上分号,同时需要定义好输入的参数,函数还需要定义好输出参数的类型、长度;(ALTER语句仅仅只能修改函数和过程的参数信息,无法修改body,所以需要先删除,再重新添加) 同时在写存储过程的时候可以在语句当中定义临时变量,使用select * INTO xxx的形式进行赋值

MYSQL在使用DELETE语句做多表关联删除的时候有BUG,在使用subquery的时候是无法使用到索引的(看stackoverflow上面的老哥说的是因为subquery创建的是一张虚拟的表单,所以无法关联到索引,但是我索引关联的不是subquery出来的临时表单啊),总之类似这种形式的语句是无法使用索引的: DELETE FROM t_aw_baw WHERE tag_id IN (SELECT tag.uuid FROM t_aw_tag AS tag LEFT JOIN t_aw_info AS aw ON tag.aw_id = aw.uuid WHERE aw_id = _aw_id); 将其修改为: DELETE t_aw_caw from t_aw_caw INNER JOIN (SELECT tag.uuid FROM t_aw_tag AS tag LEFT JOIN t_aw_info AS aw ON tag.aw_id = aw.uuid WHERE tag.aw_id=_aw_id) AS aw_tag ON (t_aw_caw.tag_id=aw_tag.uuid); 去掉了IN,先提取出子查询中的tag_id记录,然后再使用INNER JOIN将符合条件的caw表中内容列出,然后再将其删除;

在mysql当中,使用索引虽然可以大大提高查询的速度,但是由于索引是格外增加存储空间,所以对于列表更新(insert,update,delete)这些写操作的效率是降低的,因为写的时候要额外操作存储空间作为索引的使用,所以对于频繁要进行写操作的表单建立索引一定要慎重;

在存储过程当中,根据某一些条件进行操作的时候,可以设置一个局部变量var,利用SELECT xxx INTO var 的形式,首先为var赋值,然后再根据var的值来进行操作;

在迁移数据库的时候,需要一并将mysql的配置文件拷贝过去(mysql当中会有很多关于模式、视图的设置)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,881评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,052评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,598评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,407评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,823评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,872评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,037评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,778评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,505评论 1 247
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,745评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,233评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,231评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,141评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,939评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,954评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,784评论 2 275

推荐阅读更多精彩内容