B站内部这份MySQL面试真题手册火了!太厉害了,值得收藏

❤『知识集锦』一文搞懂mysql索引!!(建议收藏) 1、创建索引的几种方式; 2、mysql索引知识; 3、mysql索引优化; 阅读详情

前言

MySQL 是业务后台系统经常用到的结构化数据库。 掌握 MySQL 相关知识是研发人员必备的能力。 与此同时,在面试过程当中,MySQL 的知识点也是经常被当做面试题目,以此来考量候选人的能力。

随着业务量的增加,对于 MySQL 性能优化的要求也越来越高, 而索引方面是性能优化重点考虑的方向,所以深入理解 MySQL 索引对于未来的优化起到很重要的作用。

小编大致将这份MySQL面试真题手册分为27个知识点,观看的伙伴们可以了解一下目录!

一、MySQL基础知识

二、MySQL数据类型介绍

三、MySQL管理员常用的一些命令

四、DDL常见操作汇总

五、DML常见操作

六、select查下基础篇

七、select条件查询

八、排序和分页(order by 、limit)

九、分组查询(group by、having)

十、mysql常用函数汇总

十一、深入了解连接查询及原理

十二、子查询(本篇非常重要,高手必备)

十三、细说NULL导致的神坑,让人防不胜防

十四、事务详解

十五、视图

十六、变量

十七、存储过程&自定义函数详解

十八、流程控制语句介绍

十九、游标详解

二十、异常捕获及处理详解

二十一、什么是索引?

二十二、MySQL索引原理详解

二十三、MySQL索引管理

二十四、如何正确的使用索引?

二十五、sql中的where条件在数据库中提取与应用浅析

二十六、聊聊如何使用MySQL实现分布式锁

二十七、MySQL如何确保数据不丢失的?有几点我们可以借鉴

一、MySQL基础知识

1、数据库常见的概念

  • DB:数据库,存储数据的容器。
  • DBMS:数据库管理系统,又称为数据库软件或数据库产品,⽤于创建或管理DB。
  • SQL:结构化查询语⾔,⽤于和数据库通信的语⾔,不是某个数据库软件持有的,⽽是⼏乎所有的主流数据库软件通⽤的语⾔。中国⼈之间交流需要说汉语,和美国⼈之间交流需要说英语,和数据库沟通需要说SQL语⾔。

2、数据库存储数据的一些特点

  • 数据存放在表中,然后表存放在数据库中

  • ⼀个库中可以有多张表,每张表具有唯⼀的名称(表名)来标识⾃⼰

  • 表中有⼀个或多个列,列又称为“字段”,相当于java中的“属性”

  • 表中每⼀⾏数据,相当于java中的“对象”

3、MySQL常用的命令

  • 方式1:

cmd中运⾏services.msc

会打开服务窗⼜,在服务窗⼜中找到mysql服务,点击右键可以启动或者停⽌

  • 方式2

以管理员⾝份运⾏cmd命令

其他命令:

停⽌命令:net stop mysql

启动命令:net start mysql

C:\Windows\system32>net stop mysql

mysql 服务正在停⽌.

mysql 服务已成功停⽌。

C:\Windows\system32>net start mysql

mysql 服务正在启动 .

mysql 服务已经启动成功。

注意:命令后⾯没有结束符号

MySQL登录命令:

mysql -h ip -P 端⼜ -u ⽤户名 -p
C:\Windows\system32>mysql -h localhost -P 3306 -u root -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.25-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights
reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

说明:

  • -P ⼤写的P后⾯跟上端⼜
  • 如果是登录本⾦ip和端⼜可以省略,如:mysql -u ⽤户名 -p
  • 可以通过上⾯的命令连接原创机器的mysql

查看数据库版本:

mysql --version 或者mysql -V⽤于在未登录情况下,查看本机mysql版本:
C:\Windows\system32>mysql -V
mysql Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)

C:\Windows\system32>mysql --version
mysql Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)

select version();:登录情况下,查看链接的库版本:

mysql> select version();
+------------+
| version() |
+------------+
| 5.7.25-log |
+------------+
1 row in set (0.00 sec)

显示所有数据库:

show databases;

查看其他库中所有的表:

show tables from 库名;

进⼊指定的库:use 库名

use 库名;

显示当前库中所有的表:

show tables;

查看当前所在库:

select database();

查看系统变量及其值:

SHOW VARIABLES;

查看表的创建语句:

show create table 表名;

查看表结构:

desc 表名;

查看当前mysql⽀持的存储引擎:

SHOW ENGINES;

4、mysql语法规范

5、SQL的语⾔分类

二、MySQL数据类型介绍

1、MySQL的数据类型

  • 整数类型:bit、bool、tinyint、smallint、mediumint、int、bigint
  • 浮点数类型:float、double、decimal
  • 字符串类型:char、varchar、tinyblob、blob、mediumblob、longblob、tinytext、text、mediumtext、longtext
  • ⽇期类型:Date、DateTime、TimeStamp、Time、Year
  • 其他数据类型:暂不介绍,⽤的⽐较少。

2、案例:

  • 有符号类型

  • 无符号类型

     

3、类型n说明:

4、整数类型案例

5、浮点类型案例

6、日期类型案例

7、字符串类型案例

8、MySQL类型和Java类型对应关系

9、数据类型选择的一些建议

  • 选⼩不选⼤:⼀般情况下选择可以正确存储数据的最⼩数据类型,越⼩的数据类型通常更快,占⽤磁盘,内存和CPU缓存更⼩。

  • 简单就好:简单的数据类型的操作通常需要更少的CPU周期,例如:整型⽐字符操作代价要⼩得多,因为字符集和校对规则(排序规则)使字符⽐整型⽐较更加复杂。

  • 尽量避免NULL:尽量制定列为NOT NULL,除⾮真的需要NULL类型的值,有NULL的列值会使得索引、索引统计和值⽐较更加复杂。

  • 浮点类型的建议统⼀选择decimal。

  • 记录时间的建议使⽤int或者bigint类型,将时间转换为时间戳格式,如将时间转换为秒、毫秒,进⾏存储,⽅便⾛索引。

三、MySQL管理员常用的一些命令

1、MySQL权限工作原理

  • mysql是如何来识别⼀个⽤户的呢?
  • Mysql权限验证分为2个阶段:

2、权限生效时间

⽤户及权限信息放在库名为mysql的库中,mysql启动时,这些内容被读进内存并且从此

时⽣效

3、创建用户

4、查看MySQL 中所有用户

5、给用户授权

6、查看用户有哪些权限

7、修改密码的三种方式:

8、删除用户的2种方式、

9、撤销用户的权限

10、授权原则说明

  • 只授予能满⾜需要的最⼩权限,防⽌⽤户⼲坏事,⽐如⽤户只是需要查询,那就只给select权限就可以了,不要给⽤户赋予update、insert或者delete权限

  • 创建⽤户的时候限制⽤户的登录主机,⼀般是限制成指定IP或者内⽹IP段

  • 初始化数据库的时候删除没有密码的⽤户,安装完数据库的时候会⾃动创建⼀些⽤户,这些⽤户默认没有密码

  • 为每个⽤户设置满⾜密码复杂度的密码

  • 定期清理不需要的⽤户,回收权限或者删除⽤户

总结:

四、DDL常见操作汇总

1、表的管理

  • 创建表
  • 删除表
  • 修改表名
  • 表设置备注
  • 复制表
  • 只复制表结构
  • 复制表结构+数据

2、库的管理

  • 删除库
  • 创建库
  • 建库通用的写法
  • 示例

3、表中列的管理

  • 修改列
  • 添加列
  • 删除列

     

五、DML常见操作

1、数据更新

  • 多表更新

  • 语法:

  • 示例

  • 单标更新

  • 语法:

  • 示例

  • 使用建议

2、插入操作

  • 插入单行的2种方式

  • 方式1

  • 方式2

  • 批量插入的2种方式

  • 方式1

  • 方式2

3、删除数据操作

  • 使用delete删除

  • delete单表删除

  • 示例

  • 多表删除

  • 示例1

  • 示例2

  • 使用truncate删除

  • 语法

  • drop,truncate,delete区别

  • Mysql系列目录

六、select查下基础篇

1、查询常量

select 常量值1,常量值2,常量值3;

如:

mysql> select 1,'b';
+---+---+
| 1 | b |
+---+---+
| 1 | b |
+---+---+
1 row in set (0.00 sec)

2、查询表达式

3、基本语法

4、查询函数

5、表别名

6、查询所有列

7、列别名

8、查询指定的字段

总结

七、select条件查询

1、条件查询:

  • 语法:select 列名 from 表名 where 列 运算符 值

2、逻辑查询运算符:

  • AND(并且)
  • OR(或者)

3、条件查询运算符

  • 等于(=)
  • 不等于(<>、!=)
  • 大于(>)

4、模糊查询like

5、IN查询

6、NOT IN 查询

7、BETWEEN AND(区间查询)

8、IS NULL/IS NOT NULL(NULL值专用查询)

9、NULL存在的坑

10、<=>(安全等于)

11、经典面试题

下⾯的2个sql查询结果⼀样么?

select * from students;
select * from students where name like '%';

总结

八、排序和分页(order by 、limit)

1、limit介绍

  • 获取前n行记录
  • 获取最大的一条记录
  • 获取排名第n到m的记录

2、排序查询(order by)

  • 单字段排序
  • 多字段排序
  • 按函数排序
  • 按别名排序
  • where之后进行排序

3、避免踩坑

  • limit后面的2个数字不能为负数
  • 排序分页存在的坑
  • limit中不能使用表达式

总结

九、分组查询(group by、having)

1、单字段分组

需求:查询每个⽤户下单数量,输出:⽤户id、下单数量,如下:

mysql> SELECT
 user_id ⽤户id, COUNT(id) 下单数量
 FROM
 t_order
 GROUP BY user_id;
+----------+--------------+
| ⽤户id | 下单数量 |
+----------+--------------+
| 1001 | 3 |
| 1002 | 4 |
| 1003 | 2 |
+----------+--------------+
3 rows in set (0.00 sec)

2、多字段分组

3、分组前筛选数据

4、聚合函数

5、分组后筛选数据

6、准备数据

7、分组后排序

8、where和having的区别

9、分组查询

10、mysql分组中的坑

11、where & group by & having & order by & limit 一起协作

总结

十、mysql常用函数汇总

1、MySQL 字符串函数

  • length:返回字符串直接长度
  • insert:替换字符串
  • concat:合并字符串
  • lower:将字母转换成小写
  • left:从左侧截取字符串
  • upper:将字母转换成大写
  • right:从右侧截取字符串
  • trim:删除字符串两侧空格
  • substr 和 substring:截取字符串
  • replace:字符串替换
  • reverse:反转字符串

2、MySQL 数值型函数

  • sqrt:求二次方跟(开方)
  • abs:求绝对值
  • ceil和ceiling:向上取整
  • mod:求余数
  • rand:生成一个随机数
  • sign:返回参数的符号
  • floor:向下取整
  • sin:正弦函数
  • pow 和 power:次方函数

3、MySQL 日期和时间函数

  • **curtime 和 current_time: **获取系统当前时间
  • **curdate 和 current_date: **两个函数作用相同,返回当前系统的日期值
  • **unix_timestamp: **获取UNIX时间戳
  • **now 和 sysdate: **获取当前时间日期
  • **week: **获取指定日期是一年中的第几周
  • **dayname: **获取指定日期的星期名称
  • **from_unixtime: **时间戳转日期
  • **month: **获取指定日期的月份
  • **monthname: **获取指定日期月份的英文名称
  • **dayofmonth: **获取指定日期在一个月的位置
  • **timetosec: **将时间转换为秒值
  • **dayofweek: **获取日期对应的周索引
  • **date_sub和subdate: **日期减法运算
  • **date_add和adddate: **向日期添加指定时间间隔
  • **dayofyear: **获取指定日期在一年中的位置
  • **subtime: **时间减法运算
  • **year: **获取年份
  • **datediff: **获取两个日期的时间间隔
  • **weekday: **获取指定日期在一周内的索引位置
  • **sectotime: **将秒值转换为时间格式
  • **date_format: **格式化指定的日期
  • **addtime: **时间加法运算

4、MySQL 聚合函数

5、MySQL 数值型函数

**sign: **返回参数的符号

**abs: **求绝对值

sqrt: 求二次方跟(开方)

**sign: **返回参数的符号

mod: 求余数

**ceil和ceiling: **向上取整

**sign: **返回参数的符号

**floor: **向下取整

**rand: **生成一个随机数

sin: 正弦函数

**round: **四舍五入函数

十一、深入了解连接查询及原理

1、内连接

  • 示例1:有连接条件
  • 示例2:无连接条件
  • 示例3:组合条件进行查询

2、外连接

3、笛卡尔积

笛卡尔积简单点理解:有两个集合A和B,笛卡尔积表⽰A集合中的元素和B集合中的元素

任意相互关联产⽣的所有可能的结果

  • sql中笛卡尔积语法

4、理解表连接原理

  • 示例1:内连接
  • 示例2:左连接

5、java代码实现连接查询

6、左连接

  • 语法
  • 示例1:
  • 示例2:

7、右连接

  • 语法
  • 示例

8、java代码改进版本

十二、子查询(本篇非常重要,高手必备)

1、where和having后面的子查询

  • mysql中的in、any、some、all
  • where或having后面,可以使用
  • 特点
  • 标量子查询
  • mysql中的in、any、some、all
  • 多个标量子查询,示例
  • 一般标量子查询,示例
  • 子查询+分组函数,示例
  • 列子查询(子查询结果集一列多行)
  1. 示例1
  2. 示例2
  3. 示例3
  • 错误的标量子查询,示例
  • exists后面(也叫做相关子查询)
  1. 示例1
  2. 示例2
  3. 示例3
  • 行子查询(子查询结果集一行多列)
  1. 示例

2、子查询

  • 按结果集的行列数不同分为4种
  • 按子查询出现在主查询中的不同位置分

3、from后面的子查询

  • 示例1

4、准备测试数据

5、NULL的大坑

6、select后面的子查询

  • 示例1
  • 示例2

7、子查询分类

9、总结

十三、细说NULL导致的神坑,让人防不胜防

1、聚合函数中NULL的坑

  • 示例
  • 再继续看

2、EXISTS、NOT EXISTS和NULL比较

3、IN、NOT IN和NULL比较

  • NOT IN 和NULL比较
  • IN和NULL比较

4、比较运算符中使用NULL

5、NULL不能作为主键的值

6、判断NULL只能用IS NULL、IS NOT NULL

总结

十四、事务详解

1、隔离性(Isolation)

2、脏读

3、一致性(Consistency)

4、显式事务

5、持久性(Durability)

6、Mysql中事务操作

7、事务的几个特性(ACID)

8、隐式事务

9、什么是事务?

10、savepoint关键字

11、可重复读

12、只读事务

13、查看隔离级别

14、事务中的一些问题

15、各种隔离级别中会出现的问题

16、事务的隔离级别

17、读已提交

18、幻读

19、原子性(Atomicity)

20、幻读演示

21、REPEATABLE-READ:可重复读

22、关于隔离级别的选择

23、READ-COMMITTED:读已提交

24、隔离级别的设置

25、SERIALIZABLE:串行

26、READ-UNCOMMITTED:读未提交

总结

十五、视图

1、准备测试数据

2、什么是视图

  • 概念
  • 视图和表的区别
  • 使用场景
  • 视图的好处

3、创建视图

  • 语法
  • 视图的使用步骤
  • 案例1
  • 案例2

4、删除视图

  • 语法
  • 示例

5、查询视图结构

6、更新视图【基本不用】

  • 示例

7、需求背景

8、修改视图

  • 方式1
  • 示例
  • 方式2
  • 示例

总结

十六、变量

1、本文内容

2、会话变量

  • 示例
  • 作用域
  • 查看所有会话变量
  • 查看指定的会话变量的值
  • 查看满足条件的会话变量
  • 为某个会话变量赋值

3、变量分类

4、全局变量

  • 示例
  • 作用域
  • 查看包含'tx'字符的变量
  • 查看所有全局变量
  • 为某个变量赋值

5、自定义变量

  • 概念
  • 分类
  • 使用

6、用户变量

  • 使用
  • 作用域
  • 赋值(更新变量的值)
  • 使用
  • 声明并初始化(要求声明时必须初始化)
  • 综合示例

7、局部变量

  • 使用
  • 声明
  • 作用域
  • 赋值
  • 使用(查看变量的值)
  • 示例
  • 上面示例的效果
  • delimiter关键字

8、系统变量

  • 概念
  • 系统变量分类
  • 使用步骤
  • 查看系统变量
  • 查看满足条件的系统变量
  • 查看指定的系统变量
  • 赋值

9、用户变量和局部变量对比

总结

十七、存储过程&自定义函数详解

1、需求背景介绍

2、准备数据

3、函数

  • 概念
  • 创建函数
  • 删除函数
  • 调用函数
  • 查看函数详细
  • 示例

4、存储过程

  • 概念
  • 删除存储过程
  • 创建存储过程
  • 调用存储过程
  • 修改存储过程
  • 查看存储过程

示例

  • 示例1:空参列表
  • 示例2:带in参数的存储过程
  • 示例3:带out参数的存储过程
  • 示例4:带inout参数的存储过程
  • 示例5:查看存储过程

5、存储过程和函数的区别

十八、流程控制语句介绍

1、if函数

  • 示例
  • 语法

2、if结构

  • 示例

3、CASE结构

  • 用法1
  • begin end中使用
  • select中使用
  • 函数中使用

4、循环

  • 循环控制
  • mysql中循环有3种写法
  • 结束本次循环
  • 退出循环

5、repeat循环

  • 语法
  • 无循环控制语句

6、while循环

  • 语法
  • 添加leave控制语句
  • 无循环控制语句
  • 添加iterate控制语句
  • 嵌套循环

7、loop循环

  • 语法
  • 无循环控制语句

总结

十九、游标详解

1、游标定义

2、游标的使用步骤

3、游标的作用

4、游标语法

  • 打开游标
  • 声明游标
  • 遍历游标
  • 关闭游标

5、游标过程详解

6、单游标示例

7、嵌套游标

总结

二十、异常捕获及处理详解

1、Mysql内部异常

2、异常分类

3、外部异常

4、总结

二十一、什么是索引?

二十二、MySQL索引原理详解

1、什么是索引?

2、我们迫切的需求是什么?

3、二分法查找

4、循环遍历查找

5、有序数组

6、链表

  • 双向链表
  • 单链表
  • 链表的缺点:
  • 链表的优点:

7、平衡二叉树(AVL树)

8、二叉查找树

9、b+树

  • b+树与b-树的几点不同
  • b+树的特征
  • B-Tree和B+Tree该如何选择?

10、B-树

11、页结构

  • 对page的结构总结一下
  • 数据检索过程

12、Mysql的存储引擎和索引

  • MyISAM引擎中的索引
  • InnoDB中的索引
  • InnoDB数据检索过程
  • InnoDB数据检索过程

二十三、MySQL索引管理

1、索引管理

2、删除索引

3、创建索引

  • 方式1:
  • 方式2:

4、索引修改

5、查看索引

6、示例

  • 无索引我们体验一下查询速度
  • 准备200万数据
  • 创建索引
  • 创建索引并指定长度
  • 查看表中的索引
  • 删除索引

2、索引分类

  • 非聚集索引(辅助索引)
  • 聚集索引
  • 单列索引
  • mysql中非聚集索引分为
  • 唯一索引
  • 数据检索的过程

3、示例

二十四、如何正确的使用索引?

1、索引区分度

2、b+树中数据检索过程

  • 查询某个值的所有记录
  • 唯一记录检索
  • 模糊匹配
  • 范围查找
  • 查询以f开头的所有记录
  • 最左匹配原则
  • 查询包含f的记录
  • 查询a=1 and b=5的记录
  • 查询a=1的记录
  • 按照c的值查询
  • 查询b=1的记录
  • 按照[a,c]两个字段查询
  • 查询a=1 and b>=0 and c=1的记录

3、正确使用索引

  • 无索引检索效果
  • 主键检索
  • 准备400万测试数据
  • 这个速度很快,这个走的是上面介绍的唯一记录检索。
  • in的检索
  • between and范围检索
  • 模糊查询
  • 多个索引时查询如何走?
  • 索引覆盖
  • 回表
  • 索引下推
  • 数字使字符串类索引失效
  • 运算符使索引无效
  • 函数使索引无效
  • 使用索引优化排序

4、总结一下使用索引的一些建议

二十五、sql中的where条件在数据库中提取与应用浅析

1、关系型数据库中的数据组织

2、所有SQL的where条件,均可归纳为3大类

3、SQL的where条件提取

二十六、聊聊如何使用MySQL实现分布式锁

1、预备技能:乐观锁

2、分布式锁的功能

3、使用mysql实现分布式锁

4、留给大家一个问题

二十七、MySQL如何确保数据不丢失的?有几点我们可以借鉴

1、mysql确保数据不丢失原理分析

2、案例2:跨库转账问题

3、案例:电商中资金账户高频变动解决方案

以上就是小编分享的MySQL面试真题手册,由于篇幅只展示了部分知识点,小编已经把每个专题对应的知识点整理成了文档,下面是整理的MySQL笔记手册。

MySQL面试题和答案 MySQL 常见的面试题,应对面试,也可以总结知识点用。 立即下载

相关推荐

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

运维面试题

问题1、你接触过哪几种数据库软件,各自的优缺点是什么? 1、关系型数据库-MySQL 在不同的引擎上有不同的存储方式。 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。 开源数据库的份额在不断增加,mysql的份额也在持续增长。 缺点就是在海量数据处理的时候效率会显著变慢。 非关系型数据库MongoDB 优势: 1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。 2、MongoDB的高可用和集群架构拥有十分高的扩展性。 3、在副本集

givenchy_yzl的博客 695

逆向工程视角:MFI芯片通信协议在Linux环境下的行为分析

本文从逆向工程角度深入分析了MFI芯片在Linux环境下的通信协议行为,重点探讨了树莓派与MFI芯片通过I2C接口交互的技术细节。文章详细介绍了信号捕获、协议栈逆向、动态调试技巧以及安全机制分析,为开发者提供了在Linux驱动层面实现MFI认证的实用方法。

time3的博客 177

MySQL经典面试题

1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; (2)、MySQ...

l_215851356的专栏 3795

智能垃圾桶改造指南:树莓派+垃圾分类模型部署全记录(含数据集获取)

本文提供了一份详尽的智能垃圾桶DIY改造指南,核心是利用树莓派部署轻量化的YOLOv8垃圾分类模型。内容涵盖从数据集获取、模型训练与OpenVINO量化优化,到硬件组装、电路连接及软件集成的全流程,旨在帮助创客和爱好者以低成本实现一个能自动识别垃圾并分类的AIoT原型系统。

k6l7m8n9的博客 509

STM32CubeMx搭建LWIP程序

  使用STM32CubeMx5.21,在stm32f745平台上搭建ethernet通信程序,PHY选用KSZ8081RNB。(LAN8742/DP83848使用一样) 1、系统时钟设置   RCC设置,勾选外部高速时钟源。   系统时钟配置。写入外部晶振频率、HSE提供PLCCLK、HCLK,其他参数自动生成。 2、ETH设置   勾选设置NVIC。   根据硬件设置对应GPIO引脚。   参数设置默认   根据硬件设置PHY地址,其他参数默认。 3、LWIP设置   勾选使能,通用参数设置

Gandalf94的博客 3239

mysql中把bigint类型转换为时间格式,与hive中unix_timestamp、FROM_UNIXTIME两个函数之间的区别

数据库中时间类型是这样的,13位bigInt类型的数据 select date_format(FROM_UNIXTIME(列名/1000),'%Y%m%d') from xx表 原理就是把13位的时间格式/1000等于时间戳,使用FROM_UNIXTIME把时间戳转换成具体的日期 ps: 将时间转换为时间戳 select unix_timestamp('2018-08-30...

yyf960126的博客 2万+

华为云CodeHub保姆级教程:从零开始,5分钟搞定本地代码上传(含常见报错解决)

本文提供华为云CodeHub的保姆级教程,从零开始5分钟完成本地代码上传,涵盖环境准备、仓库创建、远程连接及常见报错解决。特别适合新手开发者快速掌握Git命令与云端协作流程,确保代码安全高效上传。

weixin_30443075的博客 480

java初级常见面试题,面试过后的面经,仅供参考!

java初级面试必备面经!

weixin_67191787的博客 686

组基轨迹建模 GBTM的介绍与实现(Stata 或 R)

组基轨迹建模(Group-Based Trajectory Modeling,GBTM)(旧名称:Semiparametric mixture model)历史:由DANIELS.NAGIN提出,发表文献《Analyzing Developmental Trajectories:A Semiparametric,Group-Based Approach》GBTM能够将一群人的轨迹分类并生成数个具有代表性的运动轨迹模型,然后对每个轨迹模型进行分析,以了解人们的运动特征、生理水平和风险等级等。

三分钟热度 1万+

logisim中,如何设计一个位于十字路口的交通信号灯控制系统?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1347

B站内部这份MySQL面试真题手册火了 太厉害了,值得收藏

MySQL 是业务后台系统经常用到的结构化数据库。掌握 MySQL 相关知识是研发人员必备的能力。与此同时,在面试过程当中,MySQL 的知识点也是经常被当做面试题目,以此来考量候选人的能力。随着业务量的增加,对于 MySQL 性能优化的要求也越来越高, 而索引方面是性能优化重点考虑的方向,所以深入理解 MySQL 索引对于未来的优化起到很重要的作用。小编大致将这份MySQL面试真题手册分为27个知识点,观看的伙伴们可以了解一下目录!一、MySQL基础知识二、MySQL数据类型介绍。

the shy 199

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【MySql面试篇】我以为我对MySql很了解,直到我面试了字节跳动

【干货预警,关注收藏才有好姿势阅读哦~】     悟空来到字节跳动,在静待,此时一位长发飘飘的面试官走来。悟空心里想:哎啊,今天遇到个美女面试官,可要好好表现了! 面试官:悟空,我看你简历上写了熟练掌握MySql和MySql的调优是吧? 悟空:是的,面试官。 面试官:说一下你在项目中如何使用MySql的? 悟空:增删改查,没了。 面试官:如何调优的你是? 悟空:加索引,没了。 面试官:我们公司的门你知道在哪里吧,用我送你吗?    

2889

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一眼就能看懂的Java自学手册,值得收藏!

开头 在开始正文之前,请你先思考几个问题: 你项目中有使用哪些 GOF 设计模式 说一说 GOF 23 种设计模式的设计理念 说说 Spring 框架中如何实现设计模式 假设我是面试官问起了你这些面试题,你该如何回答呢,请先思考一分钟。 好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用

m0_56710876的博客 270

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Github标星80K!这份Java面试突击手册,可以帮你搞定95%以上的Java面试

包涵Java基础、Java集合、JavaWeb、Java异常、OOP、IO与NIO、反射、注解、多线程、JVM、MySQL、MongoDB、Spring全家桶、计算机网络、分布式架构、Redis、Linux、git、前端、算法与数据结构、MyBatis、RocketMQ、Netty、Dubbo

jcc4261的博客 364

泪目!跳槽太不容易了,美团4轮面试,四个小时灵魂拷问,结局我哭了!

Java面试核心知识点一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!Java面试核心知识点已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取83)]本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

2401_84692362的博客 839

Alibaba最新出品Java面试手册,号称金九银十面试“完美日记”

Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。今天就来分享一份老师自己总结的,再加上几千位同学的上半年的面试经历,总结出了一份Java面试手册,里面不仅有一些常问的知识点,还包括了一些比较刁钻、头疼的问题。Spring(131道)Redis(50道)

2401_84434186的博客 527

面试官:鬼知道我经历了什么他竟然拿【2021版】阿里面试手册,吊打了我

说到阿里,想必很多Java攻城狮都十分向往,不但薪资待遇高,里面的技术大牛也多,可以学到技术,还能接触到很多大的项目。 下面就来分享一位朋友的阿里面试经历,刚刚上岸淘系,总包60W。文末送复习资料和笔记,记得收藏 建议:一定要多刷题(打好技术基础) 秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好! 而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。 下面给大家提供一份阿里大厂

javassb的博客 151

后端突围:AI大模型实战手册,大模型入门到精通,收藏这篇就足够了!

深夜的机房依然闪烁着幽蓝的服务器灯光,张工盯着监控大屏上跳动的QPS曲线,手中保温杯里的枸杞早已沉底。

2301_81888214的博客 948

服了呀,现在的00后太卷了.....

在此展示一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必要的,它几乎涵盖了所有的软件测试技术栈,非常珍贵,肝完进大厂!这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!前几天我们公司一下子来了几个新人,这些年前人是真能熬啊,本来我们几个老油子都是每天稍微加会班就打算走了,这几个新人一直不走,搞得我们也不好走。最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备明年的金三银四的面试计划。

nhb687095的博客 279

Github首次开放,一天遭狂转 50w 次,大厂内部不外传的 100 万字 Java 面试手册。

Java面试核心知识点一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!Java面试核心知识点已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远!

2401_84007015的博客 353

字节跳动学习笔记:一眼就能看懂的Java自学手册,值得收藏!

开头 在开始正文之前,请你先思考几个问题: 你项目中有使用哪些 GOF 设计模式 说一说 GOF 23 种设计模式的设计理念 说说 Spring 框架中如何实现设计模式 假设我是面试官问起了你这些面试题,你该如何回答呢,请先思考一分钟。 好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用

m0_57285455的博客 340

MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列)

❝写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。个人建议把面试题看作是费曼学习法中的回顾、...

WantFlyDaCheng的博客 317

GitHub上出现了号称阿里面试手册「21版」的PDF,现已标星78.6k了

说到阿里,想必很多Java攻城狮都十分向往,不但薪资待遇高,里面的技术大牛也多,可以学到技术,还能接触到很多大的项目。 下面就来分享一位朋友的阿里面试经历,刚刚上岸淘系,总包60W。文末送复习资料和笔记,记得收藏 建议:一定要多刷题(打好技术基础) 秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好! 而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。 下面给大家提供一份阿里大厂

wdj0311的博客 450

MySQL面试八股文(2022最新整理)

我有一些面试题、架构、设计类资料可以说是程序员面试必备!我有一些面试题、架构、设计类资料可以说是程序员面试必备!34、MySQL中int(10)和char(10)的区别?43、高度为3的B+树,可以存放多少数据?24、MyISAM和InnoDB的区别?Hash索引和B+树索引的区别?33、exist和in的区别?

m0_67698950的博客 1223
上一篇: 2022年突破年薪百万难关!Java真题汇总
下一篇: 蚂蚁金服内部MySQL面试指南-中高级开发者的晋升加薪利器
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值