MySQL数据库查缺补漏——基础篇

2023-09-19 16:56:34

MySQL数据库查缺补漏-基础篇

基础篇

net start mysql80[服务名]

net stop mysql80

create database pshdhx default charset utf8mb4;

为什么不使用utf8?因为其字符占用三个字节,有四个字节的字符,所有需要设置为utf8mb4;

数值类型:

在这里插入图片描述

字符串类型:

在这里插入图片描述

日期类型:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用户管理

use mysql;

create user ‘pshdhx’@‘localhost’ identified by ‘123456’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

alter user ‘pshdhx’@‘%’ identified with mysql_native_password by ‘123456789’;

用户权限控制:

在这里插入图片描述

查询权限:

show grants for ‘pshdhx’@‘localhost’;

授予权限

grant all on db1.* to ‘pshdhx’@‘localhost’

撤销权限:

revoke all on db1.* from ‘pshdhx’@‘localhost’

MySQL函数

字符串函数:

在这里插入图片描述

数值函数:

在这里插入图片描述

日期函数:

在这里插入图片描述

流程函数:

在这里插入图片描述

MySQL约束

在这里插入图片描述

alter table emp add constraint fk_emp_detp_id foreign key (dept_id) references dept(id);

alter table emp drop foreign key fk_emp_dept_id;

cascade:级联删除外键。

alter table emp add constraint fk_emp_detp_id foreign key (dept_id) references dept(id) on update cascasd on delete cascade;

set null:设置 null

多表查询

内连接

​ SELECT * FROM emp ,dept where emp.emp_id = dept.dept_id and dept.dept_id = 2;

​ SELECT * FROM emp INNER JOIN dept on emp.emp_id = dept.dept_id;

​ 注意:如果emp的id为空,则该条记录不展示,取的是交集

外连接

​ 左外连接

​ 右外连接

​ 通常,右外连接可以调换顺序可以改成左外连接

自连接

​ 注意都要起别名

联合查询

union 【合并后去重】,union all 【不去重】

子查询

​ 单行子查询:=

​ select * from emp where (salary,managerid) = (12500,1);

​ select * from emp where (salary,managerid) = (select salary,managerid from emp where name=‘pshdhx’);

​ 多行多列子查询:in

事务

操作的集合。

查看事务的提交方式:

​ select @@autocommit; 为1就是自动提交。为0就是手动提交。

​ set @@autocommit=0; 设置手动提交。

事务操作:

​ 开启事务:start transaction 或者是begin

​ 提交事务:commit

​ 回滚事务:rollback

事务四大特性:

​ 1、原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全失败。

​ 2、 一致性(Consistence):事务完成时,必须使所有的数据都保持一致。

​ 3、隔离性(Isolation):数据库提供的隔离机制,保证事务不受外部并发操作影响的独立环境下运行。

​ 4、持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变是永久的。【持久化到data目录下】

并发事务问题:

​ 1、脏读:一个事务读取到另外一个事务没有提交的数据。

​ 2、不可重复度【修改】:一个事务先后读取同一条记录,但是两次读取的数据不同。

​ 3、幻读【新增】:一个事务按照条件查询数据时,没有对应的数据行。但是在插入数据时,又发现这行数据已经存在。

事务隔离级别:

脏读不可重复度幻读
读未提交
读已提交[Oracle默认]
可重复度[Mysql默认]
串行化【加锁】

select @@Transactoin_isolation

set [session | global] transaction isolation level {read uncommitted | read committed | repeatable read| serializable}

更多推荐

低代码之IVX

低代码之IVX一、如何去分析不同的低代码平台🧝‍♂️1.看自己的网站和平台是不是通过自己的低代码/无代码平台生成的2.生成源代码的能力3.可视化的逻辑编排二、低代码平台未来的发展方向👨‍🌾三、优质低代码平台介绍👨‍💼1.什么是iVX:2.iVX和其它低代码平台的区别上手步骤1.1iVX线上集成环境进入1.2创

python爬虫——爬取豆瓣top250电影数据(适合初学者)

前言:爬取豆瓣top250其实是初学者用于练习和熟悉爬虫技能知识的简单实战项目,通过这个项目,可以让小白对爬虫有一个初步认识,因此,如果你已经接触过爬虫有些时间了,可以跳过该项目,选择更有挑战性的实战项目来提升技能。当然,如果你是小白,这个项目就再适合不过了。那么就让我们开始吧!目录一、实战1.对豆瓣网网站进行Ajax

数据库设计与建模

数据库设计与建模1数据库设计的三范式2数据库建模2.1建模工具2.2使用pd建模1数据库设计的三范式三范式:1.第一范式(1NF):确保每一列的原子性(做到每列不可拆分)2.第二范式(2NF):在第一范式的基础上,非主字段必须依赖于主字段(一个表只做一件事)3.第三范式(3NF):在第二范式的基础上,消除传递依赖反三范

IOS数据管理

在iOS中,没有直接与Android中的SharePreference相对应的概念。而是使用不同的机制来处理应用程序的持久化数据。在iOS中,你可以使用以下几种方法来保存和读取应用程序的数据:UserDefaults(用户默认设置):UserDefaults提供了一种简单的键值存储机制,用于存储应用程序的配置和用户偏好

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 页面跳转 action 添加跳转动画 )

文章目录一、为NavigationGraph添加跳转动画1、进入NavigationGraph配置的Design模式2、选中action跳转3、为action跳转设置enterAnim进入动画4、为action跳转设置exitAnim退出动画5、通过代码为action跳转设置进入/退出动画6、执行效果代码地址:CSDN

Qt/C++音视频开发54-视频监控控件的极致设计

一、前言跌跌撞撞摸爬滚打一步步迭代完善到今天,这个视频监控控件的设计,在现阶段水平上个人认为是做的最棒的(稍微自恋一下),理论上来说应该可以用5年不用推翻重写,推翻重写当然也是程序员爱干的事情,这个就要考验个人的功底,设计的好框架搭建的好,可以很多年不用变,只需要在现有框架小修小补即可,最多就是继承基类实现一些特殊性的

【机器学习】详解回归(Regression)

文章目录是什么的问题案例说明是什么的问题回归分析(RegressionAnalysis)是研究自变量与因变量之间数量变化关系的一种分析方法,它主要是通过因变量Y与影响它的自变量Xi(i1,2,3…)X_i(i1,2,3…)Xi​(i1,2,3…)之间的回归模型,衡量自变量XiX_iXi​对因变量Y的影响能力的,进而可以

【SpringCloud】微服务技术栈入门1 - 远程服务调用、Eureka以及Ribbon

目录远程服务调用RestTemplateEureka简要概念配置Eureka环境设置EurekaClientEureka服务发现Ribbon工作流程配置与使用Ribbon饥饿加载远程服务调用RestTemplateRestTemplate可以模拟客户端来向另外一个后端执行请求黑马给出的微服务项目中,有两个boot项目,

03使用Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件开发步骤第一步:创建Maven工程配置生成的pom.xml文件,添加springcontext基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17)当添加Spring的基础依赖springcontext之后,Maven会自动关联并引入其他依赖spri

M2 MacbookPro配置Spark源码运行环境

零、版本信息MacBook:MacBookProM2JDK:1.8.0_381Scala:2.12.15Maven:3.6.3Homebrew:4.1.12(可选,下载Git需要)Git:2.42.0(下载Spark源码需要)Spark:3.2.5整体配置流程参考@来自遥远的水星【Spark源码01【搭建Spark源码

用什么命令看Linux系统的体系架构

要查看Linux系统的体系架构,可以使用uname命令。在终端中运行以下命令:uname-m该命令将返回系统的体系架构,例如x86_64表示64位系统,i686表示32位系统。uname使用方法uname命令用于获取操作系统的相关信息。它可以用于显示操作系统的名称、内核版本、主机名、硬件架构等信息。以下是uname命令

热文推荐