MySql
学习sql的过程
Tellme3
任务艰巨在于漫长。
展开
-
1、如何优化百万数据sql带查询的分页查询(实战优化深分页)浅分页和深分页的思考
分析: 深分页 分析: 情况是一样的但是执行时间会有不同 浅分页1.2s深分页2.0s思考:为什么浅分页的查询时间短,而深分页查询时间长?原理:其中浅分页我们的偏移量小,而我们的深分页偏移量大,其中偏移量大扫描的行数就会比浅分页要多,所以就时间更长 分析 我们就发现其中key走了索引,然后type就是index了,extra也为空,那么也就是没有执行额外的任务了我们再看深分页(出现问题了) 分析:还是全表扫描,也有额外执行任务,没走索引 浅分页用时,0.38s深分页用时,1.91s思考:为什么浅分页查询得原创 2023-06-30 01:11:26 · 2374 阅读 · 0 评论 -
37、多表查询(连接查询(外连接查询))
多表查询(连接查询(外连接查询))!!!外连接可以查到及时那一行有的属性为null的信息(这也是一个使用场景) 案例: 注意:上机实操: 1、 2、右外连接(通常也可以改为左外连接(也只需要把表的顺序换一下就完成了,所以通常使用左外连接))原创 2022-10-09 18:05:20 · 76 阅读 · 0 评论 -
36、多表查询(连接查询(内连接查询))
多表查询(连接查询(内连接查询)) 案例: 注意:1、起别名后就不可使用原来的表名来查询了(执行顺序啊,是先执行的from再试where也就是先起的别名)2、显式内连接的语法是from 表1 inner(可省略) join表名2,不要搞错了。3、显示内连接就没有where了直接连接条件上机操作: 1、多表查询(隐式内连接查询) 起别名后就不可使用原来的表名来查询了(执行顺序啊,是先执行的from再试where也就是先起的别名)原创 2022-10-09 18:04:13 · 198 阅读 · 0 评论 -
35、多表查询(概述)
参赛话题:原创 2022-10-09 12:26:50 · 73 阅读 · 0 评论 -
34、多表查询(多表关系)
参赛话题:原创 2022-10-09 12:25:23 · 51 阅读 · 0 评论 -
33、约束小结
CSDN话题挑战赛第2期参赛话题:学习笔记约束小结原创 2022-10-09 12:23:02 · 56 阅读 · 0 评论 -
32、约束(外键删除和更新行为)
参赛话题:原创 2022-10-09 12:22:09 · 85 阅读 · 0 评论 -
31、约束(外键约束)
参赛话题:原创 2022-10-09 12:20:31 · 45 阅读 · 0 评论 -
30、约束(概述和分类)
参赛话题:原创 2022-10-09 12:19:00 · 91 阅读 · 0 评论 -
29、函数小结:
参赛话题:原创 2022-10-09 12:16:32 · 50 阅读 · 0 评论 -
28、函数(流程函数)
参赛话题:原创 2022-10-09 12:15:19 · 60 阅读 · 0 评论 -
27、函数(日期函数)
参赛话题:原创 2022-10-08 11:53:25 · 68 阅读 · 0 评论 -
26、函数(数值型函数)
第三步这里的0(也就是补的0)可以是0也可以是‘0’;因为其语法就是后面用的‘’了(lpad(str,n,pad):用字符串pad填充str达到n位)用0补齐6位:上面这样还有个bug就是rand()随机生成的小数不够6位(只有5位/4位)那么其就不是6位验证码了。于是用lpad左补齐或者rpad右补齐。在用round(rand(),0)去小数位0位这样剩下的后面的数字位(去掉小数点)先用rand()随机生成0到1的随机数。原创 2022-10-08 11:51:29 · 113 阅读 · 0 评论 -
25、函数(字符串函数)
上面的练习因为workno的类型是varchar所以可以运行成功。其语法也是lapd(‘字符串’,n,‘用来填充的字符串’)substring从1开始索引(也就是最开始从1开始数而不是0),空格也算一个字符的。例如:多这里换成id(id是int)则能过编译但是其没有作用(影响行数为0));这里的更新操作有点忘了(表中数据修改)这里没有where就是对表所有行修改。Update 表名 set 字段1=值1,字段2=值2 where 条件;这些函数是要跟在select后面的。原创 2022-10-02 22:55:14 · 446 阅读 · 0 评论 -
24、DCL总结
CSDN话题挑战赛第2期参赛话题:学习笔记DCL总结原创 2022-10-02 22:49:50 · 108 阅读 · 0 评论 -
23、DQL(权限控制)
参赛话题:原创 2022-10-02 22:48:46 · 293 阅读 · 0 评论 -
22、DCL(用户管理)
参赛话题:原创 2022-10-02 17:42:21 · 509 阅读 · 0 评论 -
21、DQL总结:
CSDN话题挑战赛第2期参赛话题:学习笔记DQL总结:原创 2022-10-02 17:40:42 · 56 阅读 · 0 评论 -
20、DQL(编写顺序和执行顺序)
只有后面的执行顺序才能使用前面的别名。原创 2022-10-02 17:39:40 · 458 阅读 · 0 评论 -
19、DQL语句练习
参赛话题:原创 2022-10-02 17:36:42 · 82 阅读 · 0 评论 -
18、DQL(分页查询:limt)
参赛话题:原创 2022-10-02 17:33:05 · 216 阅读 · 0 评论 -
17、DQL(排序查询:order by 字段 asc/desc)
参赛话题:原创 2022-10-02 17:31:31 · 226 阅读 · 0 评论 -
15、DQL(聚合函数:count,max,min,avg,sum)
聚合函数的()里面是字段,也就是统计的是什么(是统计年龄啊,还是其他什么的)记住统计这个字眼用的是聚合函数。统计数量这种用count,而且最好是用count(*)因为怕有的字段里面的数据是null不参与计数。聚合函数:以列作为一个整体,纵向计算(说下我对这句话理解,纵向计算就是往下计算啊,蠢货。聚合函数是跟在select的后面的 其语法结构是select 聚合函数。聚合函数5个:count/min/max/avg/sum。原创 2022-09-25 23:29:59 · 323 阅读 · 0 评论 -
14、DQL(条件查询:where)
例如:where age=15 or age=20 or age=25;*查询身份证最后为X就用:where like ‘%x’;意思就是x前面位随便匹配上最匹配的是x就好了。*查询名字为两个字的就用:where like ‘__’;逻辑运算符的&&就是and(我们写的时候可以先用&&后面再换成and这样更好理解)Between最小值and最大值(前面是最小值,后面是最大值不然查不出来)是满足()里面值的任意一个就查出;like 占位符(用于模糊匹配),其中_表示单个字符。例如:(还是例子清晰一点)原创 2022-09-25 23:28:03 · 206 阅读 · 0 评论 -
13、DQL(数据查询(基础查询))
distinct消除重复项(很实用),且是直接跟在select后面的(且distinct后面若是多个字段也会删除各个字段的相同项)别名as是一个字段一个别名,让其好记忆。DQL即数据查询语言,用于查询数据库的表的记录(查询数据)这里的基本查询都是select。原创 2022-09-25 22:53:08 · 170 阅读 · 0 评论 -
12、DML总结:(添加,修改,删除数据)
DML总结:(添加,修改,删除数据)原创 2022-09-25 22:50:11 · 125 阅读 · 0 评论 -
11、DML(修改和删除)
这里修改的操作是update 表名 set 什么等于什么(就是你要改成什么样子) where 条件;意思就是把id为1的用户的name改为cc。而删除的语法是delete from 表名 where 条件,delete后面马上跟着from 表名 即要删除什么东西(update是表名+set。DML这里的这些修改操作是对于表中的数据字段操作(表中数据)的,而DDL是对表进行修改(相当于是修改的整体表的结构,修改的是框架)。若是没有where也就是没有条件就是改变所有(要么修改所有,要么删除所有)原创 2022-09-25 22:46:21 · 583 阅读 · 0 评论 -
10、DML(数据添加)
第一个是给出字段来字段精确添加(若是字段不全那些没有的字段就是默认null了)。前面给出的字段多少个,后面就写多少个来匹配。第三个是批量添加(和第二个很类似)只是后面多添加的用,隔开再加()写。其中个数也必须是所有字段不然无法匹配报错。第二个就是所有字段都添加(那么你给出的值就不能少了,因为是对全部字段一一对应)这里的所有的查询前面都是 insert into 表名 再。3、select * from 表名 其中查询表的所有数据。对数据操作的语言,对表中数据增删改操作。这里添加操作是三种,其中。原创 2022-09-25 22:42:10 · 126 阅读 · 0 评论 -
9、DDL小结(数据库操作,表操作)
DDL小结(数据库操作,表操作)原创 2022-09-25 22:40:22 · 154 阅读 · 0 评论 -
8、DDL(表操作(修改和删除))
修改若是没有comment注解这表的详细就没有注解了也就是show create table 表名。1、其中修改:四种修改(五种方法(修改类型有两种1、修改数据类型2、修改字段名和字段类型))修改的命令前面都是alter table 表名 方法 后面才不同。2、修改数据类型(modify/change)1、删除表(drop/truncate)修改表名(rename to)1、添加字段(add)删除字段(drop)原创 2022-09-24 22:23:33 · 856 阅读 · 0 评论 -
7、DDL(表操作数据类型:数值类型,字符串类型,日期时间类型)
这里年龄只需要100以内,所以其选择tinyint就可以了,其中的数值型的unsigned也就是无符号,只能是正数范围。*char()定长:括号里面是多少就是占用多大的空间,不管他存储小的。(例如char(10)即使你存储的是2个字符其占用的也是10个字符空间)数值时间这里用的是date不是data(data是数据了,蠢比)*性别用char(1)就更好因为其不是男就是女,且只占一个字符。*varchar()变长:括号里面是多少就占用多少个字符空间。查看数据库的所有表是show tables;原创 2022-09-24 22:21:06 · 524 阅读 · 0 评论 -
6、DDl(表操作查询和创建)
name varchar(50) comment ‘姓名’;在表语句()里面的语法是先字段名(属性名)再类型 后面可再接注释也就是comment ‘’;‘’里面就是注释了(记住是单引号)create table 表名(, , , )里面字段语句是以,隔开且最后一行没有,(和字符类似横着想嘛最后一个肯定没有,了)查看表结构,这里直接就是表名,这个很实用只是显示的没有注释。这里字符串的类型是varchar(50)50表示最大的字符数可以自己改。字段 类型 comment ‘注释’;先进入数据库再创建表。原创 2022-09-24 22:19:18 · 998 阅读 · 0 评论 -
5、Sql(DDL-数据库操作(定义数据库对象:数据库,表,字段))
create dababase if not exists 数据库名;if not exists 如果不存在就创建。注意别忘了这个括号查询当前所在数据库(也就是自己所在的位子)使用数据库是 use 数据库名;不是user 数据库名;也不是use database 数据库名;drop database if exists 数据库名;if exists 如果存在就删除。显示所有数据库,用的是databases别忘记s。定义数据库对象:数据库,表,字段。原创 2022-09-24 22:18:24 · 125 阅读 · 0 评论 -
4、Sql(分类)
Sql(分类)原创 2022-09-24 22:17:29 · 57 阅读 · 0 评论 -
3、Mysql修改表中数据(Update t_student set 修改内容 where 修改条件;)删除操作delete from t_student where 删除条件;
Mysql修改表中数据(Update t_student set 修改内容 where 修改条件;)删除操作delete from t_student where 删除条件;1、修改表中数据Update t_student set sex=”男” where sno=10; 2、删除操作delete from t_student where sno=2;原创 2022-09-24 09:41:46 · 478 阅读 · 0 评论 -
2、Mysql添加数据(insert into t_student values();)
Mysql添加数据(insert into t_student values();) Insert into t_student values(integer这种类型直接写数字就ok了,字符串类型记得加‘’或者“”,日期格式/或者-或者.都行Char或者varchar是字符的个数而不是字节个数);原创 2022-09-24 09:40:10 · 2442 阅读 · 0 评论 -
Mysql创建数据库表,查看表结构,查看表中数据,查看建表语句
Mysql创建数据库表,查看表结构,查看表中数据,查看建表语句 1、创建数据库表 create table t_student(表属性以,隔开最后一行不用,); 2、查看表结构 desc t_student;3、查看表中数据 select * form t_student4、查看建表语句 show create table t_student原创 2022-09-24 09:38:54 · 3715 阅读 · 0 评论