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数据库连接池监控页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/69952.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker compose部署zookeeper

单机部署 新建docker-compose.yaml version: 3 services:zookeeper:image: zookeeper:3.5.7container_name: base-zookeeperhostname: zookeeperprivileged: truerestart: alwaysports:- 2181:2181environment:TZ: "Asia/Shanghai"volumes:- ./volumes/zookeeper/d…

无涯教程-Perl - symlink函数

描述 此函数在OLDFILE和NEWFILE之间创建符号链接。在不支持符号链接的系统上,会导致致命错误。 语法 以下是此函数的简单语法- symlink ( OLDFILE, NEWFILE )返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码,首先在/tmp目录中创建一…

RS485、MODBUS通信协议详解

前言 MODBUS协议是Modicon公司发表的一种串行通信协议&#xff0c;属于OSI模型中应用层的协议&#xff0c;现广泛应用于工业控制领域&#xff0c;它的主要特点是免费开放、支持多种电气接口&#xff08;如RS-232、RS-485&#xff09;&#xff0c;传输介质可以是双绞线、光纤、无…

微信小程序:模板使用

目录 模板的优点&#xff1a; 一、静态模板创建 二、静态模板使用 1.*.wxml引入模板 2.模板使用 3.*.wxss引入模板的样式 三、动态模板创建 四、动态模板使用 1.*.wxml引入模板 2.模板使用 3.*.js定义动态数据 五、结果展示 总结 模板的优点&#xff1a; 有利于保持网…

opencv进阶06-基于K邻近算法识别手写数字示例

opencv 中 K 近邻模块的基本使用说明及示例 在 OpenCV 中&#xff0c;不需要自己编写复杂的函数实现 K 近邻算法&#xff0c;直接调用其自带的模块函数即可。本节通过一个简单的例子介绍如何使用 OpenCV 自带的 K 近邻模块。 本例中有两组位于不同位置的用于训练的数据集&…

人工智能学习框架—飞桨Paddle人工智能

1.人工智能框架 机器学习的三要素&#xff1a;模型、学习策略、优化算法。 当我们用机器学习来解决一些模式识别任务时&#xff0c;一般的流程包含以下几个步骤&#xff1a; 1.1.浅层学习和深度学习 浅层学习(Shallow Learning)&#xff1a;不涉及特征学习&#xff0c;其特征…

没学C++,如何从C语言丝滑过度到python【python基础万字详解】

大家好&#xff0c;我是纪宁。 文章将从C语言出发&#xff0c;深入介绍python的基础知识&#xff0c;也包括很多python的新增知识点详解。 文章目录 1.python的输入输出&#xff0c;重新认识 hello world&#xff0c;重回那个激情燃烧的岁月1.1 输出函数print的规则1.2 输入函…

工厂方法模式【Factory Method Pattern】

前言 1.工厂模式概念 实例化对象&#xff0c;用工厂方法代替new操作(重点) 工厂模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展 2.什么情况下适合工厂模式 有一组类似的对象需要创建 在编码时不能预见需要创建哪种类的实例 系统需要考虑扩展性&#xff…

Markdown编辑器 Mac版Typora功能介绍

Typora mac是一款跨平台的Markdown编辑器&#xff0c;支持Windows、MacOS和Linux操作系统。它具有实时预览功能&#xff0c;能够自动将Markdown文本转换为漂亮的排版效果&#xff0c;让用户专注于写作内容而不必关心格式调整。 Typora Mac版除了支持常见的Markdown语法外&#…

ARM-M0内核MCU,内置24bit ADC,采样率4KSPS,传感器、电子秤、体脂秤专用,国产IC

ARM-M0内核MCU 内置24bit ADC &#xff0c;采样率4KSPS flash 64KB&#xff0c;SRAM 32KB 适用于传感器&#xff0c;电子秤&#xff0c;体脂秤等等

关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用

一、方案背景 近几年来&#xff0c;餐饮行业的食品安全、食品卫生等新闻频频发生&#xff0c;比如某火锅店、某网红奶茶&#xff0c;食材以次充好、后厨卫生被爆堪忧&#xff0c;种种问题引起大众关注和热议。这些负面新闻不仅让餐饮门店的品牌口碑暴跌&#xff0c;附带的连锁…

DRF 缓存

应用环境 django4.2.3 &#xff0c;python3.10 由于对于服务而言&#xff0c;有些数据查询起来比较费时&#xff0c;所以&#xff0c;对于有些数据&#xff0c;我们需要将其缓存。 最近做了一个服务&#xff0c;用的时 DRF 的架构&#xff0c;刚好涉及缓存&#xff0c;特此记…