
sql
teng316
走投无路的PHPer,开始接触Python和golang喽~~~
展开
-
MYSQL学习 创建索引注意
创建索引要求:1,查询频繁2,区分度高3,长度小4,尽量覆盖查询字段tips:1,计算区分度select ( ( select count(distinct(fields)) from table_name ) / ( select count(1) from table_name) )2,左前缀不易区分,解决方案:1,倒序2,伪哈希方案(也会有重复,不是最完美方案) crc32(); 函数作用:是一种伪哈希算法,可以把字符串转为32位整数3,多列索引 需要考虑: 1,列原创 2021-04-05 22:48:23 · 319 阅读 · 0 评论 -
Mysql int(10) int(11) 字符长度的设置
创建数据表的时候,对于int类型的字段,大家通常默认设置成int(11);那么,我们今天在这里探讨一下,这个长度是10还是11,对于实际存储,有什么影响。首先,创建一张数据表:CREATE TABLE `test` ( `id` int(3) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;我们创建了一张数据表,其中id字段的长度设置为3,这里的3其实和实际保存数据的长度无关。原创 2022-05-03 16:59:38 · 5229 阅读 · 0 评论 -
Mysql group_concat()
作用:group_concat()可以把按照group_by统计出的某一列字段拼接成字符串展示出来。create table emp( emp_id int primary key auto_increment comment '编号', emp_name char(20) not null default '' comment '姓名', salary decimal(10,2) not null default 0 comment '工资', department ch原创 2022-01-05 18:08:09 · 268 阅读 · 0 评论 -
Mysql find_in_set()
关于Mysql的查询,find_in_set();使用场景:判断某个字符串的字段中是否有某个值。举例:在多对多的关系中,创建数据表的时候,一般是三张表,例如一张教师表,一张学生表,一张学生和教师的关联关系表。但是,有些时候,我们会只有两张表,教师表和学生表,在学生表中有一个字段保存了学生关联的多个教师的id学生ID学生名称教师ID1章三1,2,3这个时候,如果需要查询关联了教师ID为1的学生的列表,就可以使用find_in_set()了。使用方法:FIND_IN_SE原创 2022-01-05 16:19:35 · 1323 阅读 · 0 评论 -
mysql查询之按年、月分组
在mysql中,数据表的created_at字段类型是timestamp,使用到了date_format()。现在有以下几个查询场景一、按照创建时间分组,获取月份、周SELECT DATE_FORMAT(created_at,'%Y%u') AS weeks AS count FROM role GROUP BY weeks;SELECT DATE_FORMAT(create_time,'%Y%m') AS months,COUNT(id) AS count FROM rol原创 2021-08-15 19:10:09 · 12217 阅读 · 0 评论 -
mysql表字段修改-测试题
修改表字段1,导出一张数据表的命令正确的是(A)A:mysqldump -u 用户名 -p 密码 库名 表名 > 文件名(如 D:/a.sql)B:mysqldump -u 用户名 -p 密码 库名 表名 1 表名 2 表名 3 > 文件名(如 D:/a.sql)C:mysqldump -u 用户名 -p 密码 库名 > 文件名(如 D:/a.sql)D:mysqldump -u 用户名 -p 密码 -B 库名 > 文件名(如 D:/a.sql)5,更改表字段名的原创 2020-06-01 22:41:19 · 407 阅读 · 0 评论