(重要)MYSQL知识点

4 篇文章 0 订阅

前言

一、mysql安装位置

 安装数据库的位置 /var/lib/mysql/
 配置文件存放目录 /usr/share/mysql-8.0/
 启停相关脚本  /etc/init.d/

在这里插入图片描述

二、MySql内部组件结构:

连接层、服务层、引擎层、存储层

三、MyISM和InnoDB区别

在这里插入图片描述

四、(重要)join的7种查询

在这里插入图片描述

-- 1.内连接   查询USER和dept中都有的
select * from t_user u inner join t_dept d where u.dept_id=d.id;

-- 2.左连接   查询dept中没有的
select * from t_user u left join t_dept d on u.dept_id=d.id where d.id is null;

-- 3.右连接   查询user中没有的
select * from t_user u right join t_dept d on u.dept_id=d.id where u.dept_id is null;

-- 4. 左外连接
select * from t_user u left join t_dept d on u.dept_id=d.id;

-- 5. 右外连接
 select * from t_user u right join t_dept d on u.dept_id=d.id;
 
 -- 6. 全外连接
 select * from t_user u left join t_dept d on u.dept_id=d.id union  select * from t_user u right join t_dept d on u.dept_id=d.id;
 
 -- 7. 两表独有的数据集
 select * from t_user u left join t_dept d on u.dept_id=d.id where d.id is null union select * from t_user u right join t_dept d on u.dept_id=d.id where u.dept_id is null;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_dept
-- ----------------------------
DROP TABLE IF EXISTS `t_dept`;
CREATE TABLE `t_dept`  (
  `id` bigint(20) NOT NULL,
  `dept` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `create_time` datetime NULL DEFAULT NULL,
  `update_time` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_dept
-- ----------------------------
INSERT INTO `t_dept` VALUES (1, '研发部', '2021-09-05 14:20:33', '2021-09-05 14:20:33');
INSERT INTO `t_dept` VALUES (2, '客服部', '2021-09-05 14:20:33', '2021-09-05 14:20:33');
INSERT INTO `t_dept` VALUES (3, '市场部', '2021-09-05 14:20:33', '2021-09-05 14:20:33');
INSERT INTO `t_dept` VALUES (4, '财务部', '2021-09-05 14:20:33', '2021-09-05 14:20:33');
INSERT INTO `t_dept` VALUES (8, '直播部', '2021-09-05 14:20:33', '2021-09-05 14:20:33');

SET FOREIGN_KEY_CHECKS = 1;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user`  (
  `id` bigint(20) NOT NULL,
  `dept_id` bigint(20) NULL DEFAULT NULL,
  `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `create_time` datetime NULL DEFAULT NULL,
  `update_time` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES (1, 1, '小红', '1582611@163.com', '2021-09-05 14:19:15', '2021-09-05 14:19:15');
INSERT INTO `t_user` VALUES (2, 2, '小华', '1583461@163.com', '2021-09-05 14:19:15', '2021-09-05 14:19:15');
INSERT INTO `t_user` VALUES (3, 3, '张三', '1547881@163.com', '2021-09-05 14:19:15', '2021-09-05 14:19:15');
INSERT INTO `t_user` VALUES (4, 6, '李四', '1320451@163.com', '2021-09-05 14:19:15', '2021-09-05 14:19:15');
INSERT INTO `t_user` VALUES (5, 7, '王五', '1356777@163.com', '2021-09-05 14:19:15', '2021-09-05 14:19:15');

SET FOREIGN_KEY_CHECKS = 1;

五、什么是索引

索引(Index)是帮助MySQL高效获取数据的数据结构。类比字典
索引的本质:索引是数据结构。

排好序的快速查找数据结构

数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。

六、优势:

1、提高数据检索的效率,降低了io的成本。
2、通过索引列对数据进行排序,降低了对数据排序的成本,降低cpu 的消耗。

七、mysql索引结构

在这里插入图片描述

八、什么情况下添加索引

1:主键自动建立唯一索引
2:频繁作为查询条件的字段应该创建索引
3:查询中与其它表关联的字段,外键关系建立索引 (例如:员工和部门表,之间的部门id )
4:频繁更新的字段不适合创建索引
5:Where条件里用不到的字段不创建索引
6:单键/组合索引的选择问题,who?(在高并发下倾向创建组合索引)
7:查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
8:查询中统计或者分组字段

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到MySQL知识点整合时,以下是一些重要的主题和概念: 1. 数据库管理系统(DBMS):MySQL是一种开源的关系型数据库管理系统,用于存储和管理数据。 2. 数据库和表:MySQL允许您创建多个数据库,每个数据库可以包含多个表。表是数据的结构化表示,由列和行组成。 3. 数据类型:MySQL支持多种数据类型,包括整数、浮点数、字符、日期和时间等。选择正确的数据类型可以提高性能和存储效率。 4. SQL语言:结构化查询语言(SQL)是一种用于与数据库进行交互的标准语言。MySQL使用SQL来查询、插入、更新和删除数据。 5. 查询语句:MySQL的SELECT语句用于从表中检索数据。您可以使用WHERE子句对数据进行过滤,使用ORDER BY子句对结果进行排序。 6. 索引:索引是一种数据结构,用于加快数据检索速度。在MySQL中,您可以为表中的列创建索引,以提高查询性能。 7. 关系和关联:MySQL支持关系型数据库模型,其中不同表之间可以建立关系和关联。通过使用JOIN操作,您可以联接多个表以获取相关数据。 8. 数据完整性:MySQL提供了各种机制来确保数据的完整性,包括主键约束、唯一约束、外键约束和检查约束。 9. 事务:事务是一组数据库操作,被视为单个逻辑单元。MySQL使用事务来确保数据的一致性和完整性,并支持ACID属性(原子性、一致性、隔离性和持久性)。 10. 数据库备份和恢复:MySQL允许您创建数据库备份,以防止数据丢失。您可以使用备份文件来恢复数据库到先前的状态。 这只是MySQL的一些基本知识点,但它们可以帮助您开始使用MySQL并理解关系型数据库的基本概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值