当前位置: 首页 > 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都将为您带来一场令人心动…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...