SELECT * FROM [TABLE] INTOOUTFILE'[FILE]'; 或者 SELECT * FROM [TABLE] INTOOUTFILE'[FILE]' FIELDSTERMINATEDBY',' OPTIONALLYENCLOSEDBY'"' LINESTERMINATEDBY'\n';
查询指定字段重复的记录
1
SELECT * FROMusersGROUPBY mobile HAVINGCOUNT(mobile)>1ORDERBY create_time DESC ;
当数据库中不存在该记录的时候插入
1 2 3 4 5 6 7 8 9
INSERTINTO`table` (value1, value2) SELECT 'stuff for value1', 'stuff for value2' FROM DUAL WHERENOTEXISTS(SELECT * FROM`table` WHERE value1 = 'stuff for value1'AND value2 = 'stuff for value2') LIMIT1;
不以通配符开头的sql语句 like “%aaa” ALL 全表扫描 like “aaaa%” range 索引
尽量避免 null值判断 应该使用 0 默认值的 方法
避免 select *
order by语句后面跟索引 排序的顺序 很重要 很重要
提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉
能用DISTINCT的就不用GROUP BY
查看编码
1
show variables like '%char%';
查看表编码
1 2 3
show create table <表名>;
例:show create table user;
查看字段编码
1 2 3
show full columns from <表名>;
例: show full column from user;
修改数据库编码格式
1 2
alter database <数据库名> character set utf8mb4; 例:alter database db_user character set utf8mb4;
修改表编码
1 2
alter table <表名> character set utf8mb4; 例:alter table user character set utf8mb4;
修改字段编码
1 2
ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 例:ALTER TABLE comment MODIFY COLUMN content VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查询sql不走缓存
1
SELECT SQL_NO_CACHE * FROM users;
修改表字符集和校对集
1 2 3
ALTER TABLE user CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
修改数据库字符集和校对集
1 2 3
ALTER DATABASE mydata CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
修改表字段相关信息
1
ALTER TABLE `job_auth_record` CHANGE `id` `id` VARCHAR(32) CHARACTER SET utf8mb4 NOT NULL COMMENT '主键id';
Mysql ASC 和 DESC 索引 怎么走的 ???
分组差查询数量 超级吊
1 2 3 4 5 6
SELECT company_id, count(*) AS counts FROM seeker_job WHERE company_id IN("8a9c889c5dcbe37c015dcf16e284001f", "04be17537c5e4b299c135eeaadb5e131") GROUP BY company_id;
修改校验集
1 2 3 4 5
ALTER TABLE insurance_insured CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE insurance_insured CHARACTER SET utf8mb4;
ALTER TABLE apply_stencil CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE apply_stencil MODIFY COLUMN id VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE apply_stencil MODIFY COLUMN apply_id VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
查询一个库里面有多少表
1
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'goabroad'
时间相关格式化函数
1 2 3 4 5 6 7 8 9 10
create_time时间格式 SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY weeks; SELECT DATE_FORMAT(create_time,'%Y%m%d') days,COUNT(id) COUNT FROM role GROUP BY days; SELECT DATE_FORMAT(create_time,'%Y%m') months,COUNT(id) COUNT FROM role GROUP BY months create_time时间戳格式 SELECT FROM_UNIXTIME(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY weeks; SELECT FROM_UNIXTIME(create_time,'%Y%m%d') days,COUNT(id) COUNT FROM role GROUP BY days; SELECT FROM_UNIXTIME(create_time,'%Y%m') months,COUNT(id) COUNT FROM role GROUP BY months
回收表
1
alter table name engine=innodb
left() 和 length()函数
1
UPDATE seeker_job SET country_id = left(country_id,6) WHERE length(country_id) > 6;