1 ----------------------------Mysql基本操作---------------------------- 2 3 desc 降序 4 5 ---------------例 desc 表 (查看表的描述) 6 ---------------例 show create table 表(查看表怎么创建的) 7 ---------------例 show index from 表 (查看表的索引) 8 ---------------例 set profiling = 1; SQL 执行语句 show profiles;(查看执行时间) 9 10 11 12 create----创造 13 14 defalut----默认 15 16 engine----引擎 17 18 charset----字符集 19 20 21 ---------------例 create table tb1(nid int not null defalut 2,num int not null)engine=InnoDB default charset=utf8 22 23 drop----放弃;停止 删除表 24 25 ---------------例 drop table 表名 26 27 alter----改变 改变表 28 29 ---------------例 alter table 表名 add 列名 类型 (添加列) 30 31 column----专栏;圆柱;纵队,列 32 33 ---------------例 alter table 表名 drop column 列名(删除列) 34 35 modify----修改;被修饰 36 37 ---------------例 alter table 表名 modify column 列名 类型; -- 类型(修改列) 38 39 change----改变,变更;交换 40 41 ---------------例 alter table 表名 change 原列名 新列名 类型; -- 列名,类型(修改列) 42 43 primary----首要的,主要的 44 45 ---------------例 alter table 表名 add primary key(列名);(添加主键) 46 47 ---------------例 alter table 表名 drop primary key;(删除主键) 48 49 ---------------例 alter table 表名 modify 列名 int, drop primary key;(删除主键) 50 51 constraint----约束;限制;强制 52 53 foreign----外国的 外 54 55 references----参考引用 56 57 ---------------例 alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);(添 58 59 加外键) 60 61 ---------------例 alter table 表名 drop foreign key 外键名称(删除外键) 62 63 default----设置默认值 64 65 ---------------例 alter table 表 alter 列 set default 1000;(修改默认值) 66 67 ---------------例 alter table 表 alter 列 drop default (删除默认值) 68 69 insert----插入 70 71 into----方向 72 73 ---------------例 insert into 表 (列名,列名...) values (值,值,值...) 74 75 delete----删除 清空表 76 77 ---------------例 delete from 表 where id=1 and name='alex' 78 79 update----更新 80 81 ---------------例 update 表 set name = 'alex' where id>1 82 83 select----挑选出来的 84 85 ---------------例 select * from 表 where id > 1 86 87 like----类似的 喜欢的 88 89 ---------------例 select * from 表 where name like 'ale%' - ale开头的所有(多个字符串) 90 91 limit----限制 92 93 ---------------例 select * from 表 limit 4,5; - 从第4行开始的5行 94 95 count----计数 96 97 sum----和 98 99 ---------------例 select count(列) from 表;100 101 ---------------例 select count(列),sum(列),max(列),min(列) from 表102 103 order----要求 命令 秩序104 105 ---------------例 select * from 表 order by 列 asc - 根据 “列” 从小到大排列106 107 ---------------例 select * from 表 order by 列 desc - 根据 “列” 从大到小排列108 109 group----组 110 111 group by----分组依据112 113 ---------------例 select num from 表 group by num 分组114 115 having----所有的116 117 ---------------例 select num from 表 group by num having max(id) > 10118 119 union----同盟,联盟;协会,工会;联合,团结120 121 ---------------例 select 列1 from 表1 union select 列2 from 表2(组合查看,自动处理重合)122 123 ---------------例 select 列1 from 表1 union all select 列2 from 表2(组合查看,不处理重合)124 125 http://www.cnblogs.com/cloniu/p/6393588.html
1 ----------------------------存储过程---------------------------- 2 3 procedures 程序---创建函数 4 5 exists 存在---判断条件中使用 6 7 declare 声明---声明变量 8 9 default 默认---默认值设置10 11 delimiter 定界符 向服务器说明以什么结束12 13 then 然后---多个语句判断添加14 15 http://www.cnblogs.com/cloniu/p/6396904.html
1 ----------------------------自定义函数----------------------------2 3 http://www.cnblogs.com/cloniu/p/6398695.html
1 ----------------------------触发器---------------------------- 2 3 trigger----触发 4 5 before----在之前 6 7 after----在之后 8 9 for each row----对于每一行10 11 old----老的12 13 new----新的14 15 http://www.cnblogs.com/cloniu/p/6398207.html
1 ----------------------------视图----------------------------2 3 view----视图4 5 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其6 7 当作表来使用。8 9 http://www.cnblogs.com/cloniu/p/6396287.html
1 ----------------------------事务----------------------------2 3 4 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。5 6 http://www.cnblogs.com/cloniu/p/6400753.html
1 ----------------------------函数----------------------------2 3 4 http://www.cnblogs.com/cloniu/p/6398695.html (自定义函数)5 6 https://dev.mysql.com/doc/refman/5.7/en/string-functions.html (内置函数)
1 ----------------------------动态执行sql语---------------------------- 2 3 prepare 准备 4 5 using 使用 6 7 deallocate 释放 8 9 execute 执行10 11 http://www.cnblogs.com/cloniu/p/6400238.html
1 ----------------------------索引---------------------------- 2 3 普通索引:列,只能帮助查找 4 5 唯一索引:单列,联合列,只能帮助查找,内容不允许重复 6 7 主键索引:只能帮助查找,内容不允许重复,不允许NULL ,一张表只能有一个主键,可以让两列组合成为一个主键 8 9 组合索引:多列共同组合一个索引10 11 profiling 分析 查看 执行过程用了多少时间12 13 profiles 简介14 15 ---------------例 set profiling = 1 SQL语句... show profiles;16 17 explain 查看执行过程 18 19 ---------------例 explain select * from 表 (where 列=值 --可有可无);20 21 ---------------例 show index from 表 (查看表的索引)22 23 const 不变的 24 25 ---------------解:通过explain查看执行过程的时候 type 的类型 是最快的,26 27 28 详情猛搓: http://www.cnblogs.com/cloniu/p/6401662.html29 30 31 覆盖索引 索引合并 组合索引 概念32 33 小知识:导致索引没用的点;34 35 ---------------例 select * from tb1 where name like '%cn';(最左前缀----这种方式不走索引,%需要在 cn% 才OK)36 37 reverse----反转(内置函数)38 39 ---------------例 select * from tb1 where reverse(name) = 'wupeiqi';( 这样就走----name = reverse('wupeiqi'))40 41 ---------------例 select * from tb1 where name = 999;(如果列是字符串类型,传入条件是必须用引号引起来,不然...不走)42 43 ---------------例 select * from tb1 where name != 'alex'( != 特别的:如果是主键,则还是会走索引,其它不走索引)44 45 ---------------例 select * from tb1 where name > 'alex'( > 特别的:如果是主键或索引是整数类型,则还是会走索引,其它不走索引)46 47 ---------------例 select email from tb1 order by name desc;(当根据索引排序时候,选择的映射如果不是索引,则不走索引,特别的:如果对主键排序48 49 ,则还是走索引:)50 51 52 index----索引(普通索引创建)53 54 ---------------例 show index from 表 (查看表的索引)55 56 ---------------例 create index 索引名 on 表(列名) (创建普通索引)57 58 ---------------例 alter table 表 drop index 索引名 (删除普通索引)59 60 ---------------例 drop 索引名 on 表;(删除普通索引)61 62 63 unique----唯一的(唯一索引创建)64 65 ---------------例 create unique index 索引名 on 表名(列名);(创建唯一索引)66 67 ---------------例 drop unique index 索引名 on 表名;(删除唯一索引)68 69 主键索引70 71 ---------------例 alter table 表 add primary key(列);(创建主键索引)72 73 ---------------例 alter table 表 drop primary key;(删除主键索引)74 75 ---------------例 alter table 表名 modify 列名 int, drop primary key;(删除主键索引)76 77 组合索引78 79 index(列1,列2) ---两列组合 --- 最左前缀80 81 ---------------例 create index ix_name_email on in3(name,email);(创建组合索引)82 83 ---------------例 select * from 表 where 列1 = 值 (走索引)84 85 ---------------例 select * from 表 where 列1 = 值 and 列2 = 值 (走索引)86 87 ---------------例 select * from 表 where 列2 = 值 (不走索引)
1 ----------------------------执行计划---------------------------- 2 3 profiling 分析 查看 执行过程用了多少时间 4 5 profiles 简介 6 7 ---------------例 set profiling = 1 SQL语句... show profiles; 8 9 ---------------例 show create table 表名(查看生成表的SQL)10 11 ---------------例 show index from 表名(查看索引)12 13 explain + 查询SQL - 用于显示SQL执行信息参数,根据参考信息可以进行SQL优化14 15 小知识:正确的使用索引 详情猛搓:http://www.cnblogs.com/wupeiqi/articles/5716963.html
----------------------------设置全局变量----------------------------variables----变量---------------例 show global variables like '%query%' (查看全局变量)---------------例 set global 变量名 = 值 (修改全局变量)---------------例 slow_query_log = OFF(ON) 是否开启慢日志记录---------------例 long_query_time = 2 时间限制,超过此时间,则记录---------------例 slow_query_log_file = /usr/slow.log 日志文件---------------例 log_queries_not_using_indexes = OFF(ON) 为使用索引的搜索是否记录详情猛搓:http://www.cnblogs.com/wupeiqi/articles/5716963.html
详情猛搓:http://www.cnblogs.com/cloniu/p/6395151.html
1 ---------------例 insert into 表1(列1,列2,列3) select 列a,列b,列c from 表a WHERE 列c> 80 可以通过查看另一个表的内从 往另一个表里面插入数据
select 查看的是表 不是只针对文件select 查看的结果 可以当作临时表 再次被查看处理left join 链接的是表 而不是只有外键关联的表,外键只是一个对应关系,case when 表.(列) > 60 then 1 else 0 end 如果大于60 等于1 否则 等于0; in 下的子查询不能有 limit select ...from xx nid in (select id from tb2 limit5) 不支持