mysql知识点+面试总结
目录
1 mysql介绍
2 数据库常见语法
3 数据库表的常见语法
4 其他常见语法(日期,查询表字段)
5 JDBC开发步骤
6 索引
6.1 索引常见语法
7 常见面试总结
8 java代码搭建监控页面
1 mysql介绍
数据库:存储在硬盘上的文件系统,通过标准的sql语句去操作
作用:存储各种各样的数据
2 数据库常见语法
2.1、创建数据库:
1、create database 数据库名 2、create database 数据库名称 character set 字符集
2.2、查看数据库:
查看所有的数据库:show databases;
查看单个数据库:show create database 数据库名;
2.3、删除数据库
Drop database 数据库名称;
2.4、修改数据库
Alter database 数据库名 character set 字符集;
2.5、数据库的其他操作
查看当前使用的数据库:select database();
切换数据库:use 数据库名;
2.6 修改库的排序规则
ALTER DATABASE db1 CHARACTER SET utf8 COLLATE utf8_unicode_ci
3 数据库表的常见语法
1 单表约束有哪些?
1、主键(唯一和非空)2、唯一 unique3、非空 not null
2 表操作语法
查看所有的表:show tables;
查看单个表:desc 表名;
删除数据库表:Drop table 表名;
修改表名称(慎用):Rename table 旧表名 to 新表名
添加列:alter 表名 add 列名 类型(长度) 约束
修改列的类型和约束:alter table 表名 modify 列名 类型(长度) 约束
修改列的名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束
删除列:alter table 表名 drop 列名;
添加表字段:
alter table user add certificates_type varchar(1) not null;
alter table user add certificates_type varchar(1);
修改字段类型和注释
ALTER TABLE tb_user MODIFY COLUMN sex VARCHAR (20) COMMENT '年龄';
修改字段类型
alter table tb_user modify column age varchar(10);
修改表的字符集和所有列的字符集:
ALTER TABLE order CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
4 其他常见语法(日期,查询表字段)
获取当前日期:select curdate();
获取当月最后一天:select last_day(curdate()); //2019-08-31
获取下个月的第一天:select date_add(curdate()-day(curdate())+1,interval 1 month);
获取下个月的最后一天:select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now()) day),interval -2 month)
获取当前年的最后一天:select concat(YEAR(now()), '-12-31') //2019-12-31
获取当前年的第一天:select DATE_SUB(CURDATE(),INTERVAL dayofyear(now()) - 1 DAY) //2019-01-01
获取前一天:SELECT date_sub(NOW(), INTERVAL 1 DAY);
日期格式化:select DATE_FORMAT(CURDATE(), '%Y-%m-%d')
其他查询:
- set @dt = now();
- select date_add(@dt, interval 1 day); - 加1天
- select date_add(@dt, interval 1 hour); -加1小时
- select date_add(@dt, interval 1 minute); - 加1分钟
- select date_add(@dt, interval 1 second); -加1秒
- select date_add(@dt, interval 1 microsecond);-加1毫秒
- select date_add(@dt, interval 1 week);-加1周
- select date_add(@dt, interval 1 month);-加1月
- select date_add(@dt, interval 1 quarter);-加1季
- select date_add(@dt, interval 1 year);-加1年
查询表字段(包含字段名、字段类型、字段长度、是否为空以及属性等)
SELECT
COLUMN_NAME AS columnName,
data_type AS columnType,
CHARACTER_MAXIMUM_LENGTH AS columnLength,
IS_NULLABLE AS isNull,
COLUMN_COMMENT AS columnComent
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_name = 'sys_user'
查看当前年的所有月份sql(直接复制运行即可)
SELECT
DATE_FORMAT( DATE_ADD( CONCAT( YEAR ( DATE( '2018-04-01' )), '-01-01' ), INTERVAL ( CAST( help_topic_id AS SIGNED INTEGER )) MONTH ), '%Y-%m' ) MONTH
FROM
mysql.help_topic
WHERE
help_topic_id < 12
ORDER BY
MONTH ASC
5 JDBC开发步骤
1、注册驱动 class.forNanme(“com.mysql.jdbc.Driver”)
注册驱动的方法 static void registerDriver(Driver driver)
2、获取连接对象:
方法:
Static Connection getConnection(Stirng url, String user, Stirng password)
Connection:返回连接的对象
url:数据库的地址
user:用户名
password:密码
Connectionconn = DriverManager.getConnection(url,name,password);
3、创建语句执行平台:
Statement stat = conn.createStatement();
executeUpdate(sql);
4、执行sql语句
select * from 表名 条件;
5、处理结果集
6、释放资源
6 索引
6.1 索引常见语法
创建索引
//普通索引 alter table table_name add index index_name (column_list) ; //唯一索引 alter table table_name add unique (column_list) ; //主键索引 alter table table_name add primary key (column_list) ;
删除索引
drop index index_name on table_name ; // table_name :表名 index_name :索引名 alter table table_name drop index index_name ; alter table table_name drop primary key ;
查看索引
(1)show index from tblname;
(2)show keys from tblname;
4.5 查询mysql定时器是否开启
show VARIABLES LIKE '%event_scheduler%';
如果为OFF则为关闭,为NO为开启
mysql不能使用group by
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
7 常见面试总结
mysql常见的索引有哪些?
主键索引
唯一索引
普通索引
全文索引
组合索引
导致索引的失效的原因有哪些?
- 查询条件不规则:如like,%a%,like %在左边
- 使用函数:如:length, where length(xx) = 1;
- 计算操作:如 where id+1=100;
- 查询字段的数据类型不匹配,如一个是utf8 另一个是utf8mb4
==========================================设计模式===============================
单例设计模式:保证对象的唯一性
懒汉式:延迟加载 当我需要这个对象的时候才去加载
面试之前 敲两遍饿汗式 懒汉式
8 java代码搭建监控页面
druid数据库连接池监控页面
相关文章:
mysql知识点+面试总结
目录 1 mysql介绍 2 数据库常见语法 3 数据库表的常见语法 4 其他常见语法(日期,查询表字段) 5 JDBC开发步骤 6 索引 6.1 索引常见语法 7 常见面试总结 8 java代码搭建监控页面 1 mysql介绍 数据库:存储在硬盘上的文件系统…...

前端大屏常用的适配方案
假设我们正在开发一个可视化拖拽的搭建平台,可以拖拽生成工作台或可视化大屏,或者直接就是开发一个大屏,首先必须要考虑的一个问题就是页面如何适应屏幕,因为我们在搭建或开发时一般都会基于一个固定的宽高,但是实际的…...
技术债 笔记
目录 1. 技术债 笔记1.1. 什么是技术债1.2. 讨论1.3. 国内技术从业者怎么看? 1. 技术债 笔记 1.1. 什么是技术债 1992 年, Ward Cunningham 在敏捷宣言中首次提出了"技术债"概念, 主要指有意或无意地做了错误的或不理想的技术决策所累积的债务。随后, 《重构》一书…...

【Leetcode】102.二叉树的层序遍历
一、题目 1、题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例2: 输入:root = [1] 输出:[[1]]示例3: 输入:root = [] 输出:[]…...
上传文件报413Request EntityToo Large错误解决办法
产生这种原因是因为服务器限制了上传大小 1、nginx服务器的解决办法 修改nginx.conf的值就可以解决了 将以下代码粘贴到nginx.conf内 client_max_body_size 20M 可以选择在http{ }中设置:client_max_body_size 20m; 也可以选择在server{ }中设置:cli…...
Neo4j之MERGE基础
在 Neo4j 中,MERGE 语句用于根据指定的模式进行创建或匹配节点和关系。它可以在节点或关系不存在时创建它们,并在已存在时进行匹配。 创建或匹配节点: MERGE (p:Person {name: John});这个查询会检查是否已经存在一个具有 "Person&quo…...
AbstractRoutingDataSource,spring配置多数据源问题
AbstractRoutingDataSource,spring配置多数据源问题 首先引入pom.xml依赖 <!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.3.12.RE…...

日常BUG—— SpringBoot项目DEBUG模式启动慢、卡死。
😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 我们调试程序时,需要使用DEBUG模式启动SpringBoot项目, 有时候会发…...

Linux网络编程(TCP状态转换关系)
文章目录 前言一、TCP状态转换图二、TCP连接状态转换解析三、TCP断开状态转换解析四、为什么需要有2MLS时长总结 前言 本篇文章来讲解一下TCP的状态转换关系,学习这个状态转换关系对于我们深入了解网络编程是非常有必要的。 一、TCP状态转换图 二、TCP连接状态转换…...

tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果
Tauri Vue Typescript 一个使用 taurivuets 开发跨平台软件的模板,支持窗口头部自定义 UI 和拖拽和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。开源…...

做好以下几点,可以让我们延长周末体验感,好好放松!!!
工作以后常常容易感到疲于奔命,让我们找到适合自己方式,来让我们度过一个充实放松的周末! 方向一:分享你周末的时间规划 我们可以把每个月当做一个周期,制定一个简单的计划,如:第一周,锻炼身体…...

Python 学习笔记——代码基础
目录 Python基础知识 变量 赋值 数据类型 print用法 print格式化输出 运算符 if-else 数据结构 元组 in运算符 列表 切片 [ : ] 追加 append() 插入 insert() 删除 pop() 字典 循环 for循环 for循环应用——遍历 for循环应用——累加…...
Android Studio 无法正常导入项目
Android Studio 无法正常导入 model,运行按钮边出现“Add Configuration”,可进行以下方法处理: 解决办法: 1、点击Run三角按钮左边紧挨的下拉按钮,选择Edit Configuration,选择 Default 新建一个Android…...

Grafana+Prometheus技术文档-进阶使用-监控spring-boot项目
阿丹: 之前已经实现了使用Prometheus来对服务器进行了监控和仪表盘的创建,现在就需要对这些监控方法使用在spring-boot中去。 实现思路: 1、集成Actuator 2、加入Prometheus的依赖 3、配置开放端口、以及开放监控 4、配置Prometheus中的配置…...

PG常用SQL
数据库 创建数据库 PostgreSQL 创建数据库可以用以下三种方式: 1、使用 CREATE DATABASE SQL 语句来创建。2、使用 createdb 命令来创建。3、使用 pgAdmin 工具。 CREATE DATABASE 创建数据库 CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行࿰…...

分模块开发的意义及开发步骤
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 Maven进阶 一、分模块开发1.1分模块开发的意义1.2分模块开…...
vue-router中的一些 API
在Vue.js的vue-router中,一些重要api 1、RouterHistory:这是 vue-router 提供的路由历史记录对象。它可以跟踪当前页面的路由历史,并提供一些方法和属性来管理导航和历史记录。在 vue-router 中,有两种类型的路由历史记录对象&…...

go-zero 是如何实现令牌桶限流的?
原文链接: 上一篇文章介绍了 如何实现计数器限流?主要有两种实现方式,分别是固定窗口和滑动窗口,并且分析了 go-zero 采用固定窗口方式实现的源码。 但是采用固定窗口实现的限流器会有两个问题: 会出现请求量超出限…...
Oracle/PL/SQL奇技淫巧之ROWNUM伪列
ROWNUM伪列 ROWNUM是一个伪列,它是根据每次查询的结果动态生成的一列递增编号,表示 Oracle 从表中选择该行的顺序,选择的第一行ROWNUM为1,第二行ROWNUM为2,以此类推。 注意1: ROWNUM伪列是在WHERE子句之…...

“MongoDB基础知识【超详细】
"探索MongoDB的无边之境:沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界!在这个博客中,我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者,MongoDB都将为您带来一场令人心动…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...