当前位置: 首页 > news >正文

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')

其他查询:

  1. set @dt = now();
  2. select date_add(@dt, interval 1 day);   - 加1天
  3. select date_add(@dt, interval 1 hour);   -加1小时
  4. select date_add(@dt, interval 1 minute);    - 加1分钟
  5. select date_add(@dt, interval 1 second); -加1秒
  6. select date_add(@dt, interval 1 microsecond);-加1毫秒
  7. select date_add(@dt, interval 1 week);-加1周
  8. select date_add(@dt, interval 1 month);-加1月
  9. select date_add(@dt, interval 1 quarter);-加1季
  10. 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%';

0

如果为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常见的索引有哪些?

  • 主键索引

  • 唯一索引

  • 普通索引

  • 全文索引

  • 组合索引

导致索引的失效的原因有哪些?

  1. 查询条件不规则:如like,%a%,like %在左边
  2. 使用函数:如:length, where length(xx) = 1;
  3. 计算操作:如 where id+1=100;
  4. 查询字段的数据类型不匹配,如一个是utf8 另一个是utf8mb4

==========================================设计模式===============================

单例设计模式:保证对象的唯一性

懒汉式:延迟加载  当我需要这个对象的时候才去加载

面试之前  敲两遍饿汗式  懒汉式

8 java代码搭建监控页面

druid数据库连接池监控页面

相关文章:

mysql知识点+面试总结

目录 1 mysql介绍 2 数据库常见语法 3 数据库表的常见语法 4 其他常见语法&#xff08;日期&#xff0c;查询表字段&#xff09; 5 JDBC开发步骤 6 索引 6.1 索引常见语法 7 常见面试总结 8 java代码搭建监控页面 1 mysql介绍 数据库&#xff1a;存储在硬盘上的文件系统…...

前端大屏常用的适配方案

假设我们正在开发一个可视化拖拽的搭建平台&#xff0c;可以拖拽生成工作台或可视化大屏&#xff0c;或者直接就是开发一个大屏&#xff0c;首先必须要考虑的一个问题就是页面如何适应屏幕&#xff0c;因为我们在搭建或开发时一般都会基于一个固定的宽高&#xff0c;但是实际的…...

技术债 笔记

目录 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{ }中设置&#xff1a;client_max_body_size 20m; 也可以选择在server{ }中设置&#xff1a;cli…...

Neo4j之MERGE基础

在 Neo4j 中&#xff0c;MERGE 语句用于根据指定的模式进行创建或匹配节点和关系。它可以在节点或关系不存在时创建它们&#xff0c;并在已存在时进行匹配。 创建或匹配节点&#xff1a; MERGE (p:Person {name: John});这个查询会检查是否已经存在一个具有 "Person&quo…...

AbstractRoutingDataSource,spring配置多数据源问题

AbstractRoutingDataSource&#xff0c;spring配置多数据源问题 首先引入pom.xml依赖 <!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.3.12.RE…...

日常BUG—— SpringBoot项目DEBUG模式启动慢、卡死。

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 我们调试程序时&#xff0c;需要使用DEBUG模式启动SpringBoot项目&#xff0c; 有时候会发…...

Linux网络编程(TCP状态转换关系)

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

tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

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

做好以下几点,可以让我们延长周末体验感,好好放松!!!

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

Python 学习笔记——代码基础

目录 Python基础知识 变量 赋值 数据类型 print用法 print格式化输出 运算符 if-else 数据结构 元组 in运算符 列表 切片 [ : ] 追加 append() 插入 insert&#xff08;&#xff09; 删除 pop() 字典 循环 for循环 for循环应用——遍历 for循环应用——累加…...

Android Studio 无法正常导入项目

Android Studio 无法正常导入 model&#xff0c;运行按钮边出现“Add Configuration”&#xff0c;可进行以下方法处理&#xff1a; 解决办法&#xff1a; 1、点击Run三角按钮左边紧挨的下拉按钮&#xff0c;选择Edit Configuration&#xff0c;选择 Default 新建一个Android…...

Grafana+Prometheus技术文档-进阶使用-监控spring-boot项目

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

PG常用SQL

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

分模块开发的意义及开发步骤

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Maven进阶 一、分模块开发1.1分模块开发的意义1.2分模块开…...

vue-router中的一些 API

在Vue.js的vue-router中&#xff0c;一些重要api 1、RouterHistory&#xff1a;这是 vue-router 提供的路由历史记录对象。它可以跟踪当前页面的路由历史&#xff0c;并提供一些方法和属性来管理导航和历史记录。在 vue-router 中&#xff0c;有两种类型的路由历史记录对象&…...

go-zero 是如何实现令牌桶限流的?

原文链接&#xff1a; 上一篇文章介绍了 如何实现计数器限流&#xff1f;主要有两种实现方式&#xff0c;分别是固定窗口和滑动窗口&#xff0c;并且分析了 go-zero 采用固定窗口方式实现的源码。 但是采用固定窗口实现的限流器会有两个问题&#xff1a; 会出现请求量超出限…...

Oracle/PL/SQL奇技淫巧之ROWNUM伪列

ROWNUM伪列 ROWNUM是一个伪列&#xff0c;它是根据每次查询的结果动态生成的一列递增编号&#xff0c;表示 Oracle 从表中选择该行的顺序&#xff0c;选择的第一行ROWNUM为1&#xff0c;第二行ROWNUM为2&#xff0c;以此类推。 注意1&#xff1a; ROWNUM伪列是在WHERE子句之…...

“MongoDB基础知识【超详细】

"探索MongoDB的无边之境&#xff1a;沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界&#xff01;在这个博客中&#xff0c;我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者&#xff0c;MongoDB都将为您带来一场令人心动…...

2026年HR招聘偏好白皮书:这5项附加技能出现频率暴涨

2026 年的招聘市场&#xff0c;正在从“看你会什么岗位技能”&#xff0c;转向“看你能不能把岗位做得更智能”。HR筛简历时&#xff0c;越来越关注候选人的AI应用能力、数据化思维和业务落地能力。人社部近年发布的新职业中&#xff0c;已经出现生成式人工智能系统应用员、人工…...

HFSS仿真结果怎么看?以T型波导为例,读懂S参数与电场动态图

HFSS仿真结果深度解析&#xff1a;从S参数到电场动态图的实战指南当你第一次在HFSS中完成T型波导仿真后&#xff0c;面对满屏的曲线和彩色云图&#xff0c;是否感到既兴奋又困惑&#xff1f;那些起伏的S参数曲线究竟告诉你什么信息&#xff1f;电场图中跳跃的颜色又代表怎样的物…...

BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行

BetterJoy完整配置指南&#xff1a;5分钟让Switch手柄在PC上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...

钱钟书《围城》第1-5章阅读笔记:一场关于人生困境的提前预演

前言 钱钟书先生的《围城》被誉为"新儒林外史"&#xff0c;是中国现代文学史上风格独特的讽刺经典。这部创作于20世纪40年代的长篇小说&#xff0c;以抗战初期为背景&#xff0c;通过主人公方鸿渐的人生轨迹&#xff0c;深刻揭示了知识分子群体的精神困境与人性弱点。…...

【Lindy营销自动化工作流终极指南】:20年实战验证的7大反脆弱性设计原则,92%企业漏掉的关键衰减阈值

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy营销自动化工作流的基本范式与历史验证 Lindy效应指出&#xff0c;一个事物的预期剩余寿命与其当前年龄成正比——在营销自动化领域&#xff0c;Lindy范式体现为&#xff1a;经时间检验仍被广泛采…...

总线式智能提示灯系统设计:从恒流驱动到模块化架构

1. 项目概述&#xff1a;从传统到智能的剧场提示灯系统革新在剧场、演播室或者大型活动现场的后台&#xff0c;如果你待过&#xff0c;一定对那套“红灯停&#xff0c;绿灯行”的提示灯系统不陌生。导演或舞台监督通过对讲机喊“Standby”&#xff08;准备&#xff09;&#xf…...

基于Arduino与433MHz射频的智能灯光定时系统设计与实现

1. 项目概述&#xff1a;告别机械定时器&#xff0c;打造智能灯光管家家里前后院的照明&#xff0c;还有出门度假时屋内的几盏灯&#xff0c;过去一直靠四个老旧的机械定时器来管理。说实话&#xff0c;这玩意儿用起来真是费劲。它的核心问题在于“死板”——你设定好晚上7点开…...

3步快速上手Whisper-WebUI:轻松实现语音转字幕的完整指南

3步快速上手Whisper-WebUI&#xff1a;轻松实现语音转字幕的完整指南 【免费下载链接】Whisper-WebUI A Web UI for easy subtitle using whisper model. 项目地址: https://gitcode.com/gh_mirrors/wh/Whisper-WebUI 还在为视频制作繁琐的字幕而烦恼吗&#xff1f;Whis…...

DIY智能USB充电器:基于电流检测与双稳态继电器的零功耗节能方案

1. 项目概述&#xff1a;打造一款智能、节能的USB手机充电器作为一名电子爱好者&#xff0c;我经常折腾各种电源项目。市面上很多手机充电器&#xff0c;包括一些原装货&#xff0c;都存在一个通病&#xff1a;手机充满电后&#xff0c;充电器依然插在插座上&#xff0c;内部电…...

【RT-DETR实战】070、模型分析工具:PyTorch Profiler性能分析

上周在部署RT-DETR到边缘设备时遇到一个诡异现象:模型推理时延波动极大,有时30ms,偶尔突然跳到200ms。 盯着代码看了半天没发现逻辑问题,数据流也正常。这种时候,靠猜是没用的,必须上性能分析工具——PyTorch Profiler。 今天我们就来聊聊怎么用它揪出那些藏在细节里的…...