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 · 282 阅读 · 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 · 5020 阅读 · 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 · 235 阅读 · 0 评论 -
Mysql find_in_set()
关于Mysql的查询,find_in_set();使用场景:判断某个字符串的字段中是否有某个值。 举例:在多对多的关系中,创建数据表的时候,一般是三张表,例如一张教师表,一张学生表,一张学生和教师的关联关系表。但是,有些时候,我们会只有两张表,教师表和学生表,在学生表中有一个字段保存了学生关联的多个教师的id 学生ID 学生名称 教师ID 1 章三 1,2,3 这个时候,如果需要查询关联了教师ID为1的学生的列表,就可以使用find_in_set()了。 使用方法: FIND_IN_SE原创 2022-01-05 16:19:35 · 1232 阅读 · 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 · 12051 阅读 · 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 · 356 阅读 · 0 评论