mysql数据库SQL语句大全详解(下)

六、事务管理

1、开始事务

START TRANSACTION;

2、提交事务

COMMIT;

3、回滚事务

ROLLBACK;

4、保存点

设置保存点:

SAVEPOINT savepoint_name;

回滚到保存点:

ROLLBACK TO SAVEPOINT savepoint_name;

七、视图

1、创建视图

CREATE VIEW view_name AS SELECT columns FROM table WHERE condition;

示例:

CREATE VIEW user_emails AS SELECT username, email FROM users;

2、查询视图

SELECT * FROM view_name;

3、删除视图

DROP VIEW view_name;

八、存储过程和函数

1、创建存储过程

CREATE PROCEDURE procedure_name (parameters)
BEGINSQL statements;
END;

示例:

CREATE PROCEDURE GetUserEmails()
BEGINSELECT username, email FROM users;
END;

2、调用存储过程

CALL procedure_name(parameters);

3、创建函数

CREATE FUNCTION function_name (parameters) RETURNS datatype
BEGINSQL statements;RETURN value;
END;

示例:

CREATE FUNCTION GetUserCount() RETURNS INT
BEGINDECLARE count INT;SELECT COUNT(*) INTO count FROM users;RETURN count;
END;

4、调用函数

SELECT function_name(parameters);

九、触发器

1、创建触发器

CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGINSQL statements;
END;

示例:

CREATE TRIGGER before_insert_user BEFORE INSERT ON users
FOR EACH ROW
BEGINSET NEW.created_at = NOW();
END;

2、删除触发器

DROP TRIGGER trigger_name;

十、用户和权限管理

1、创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

2、删除用户

DROP USER 'username'@'host';

3、授予权限

GRANT privileges ON database.table TO 'username'@'host';

示例:

GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'username'@'localhost';

4、撤销权限

REVOKE privileges ON database.table FROM 'username'@'host';

示例:

REVOKE INSERT, UPDATE ON mydb.* FROM 'username'@'localhost';

5、刷新权限

FLUSH PRIVILEGES;

在对用户权限进行修改后,刷新MySQL的权限缓存以确保更改生效。

十一、备份与恢复

1、备份数据库 

使用 mysqldump 命令可以备份整个数据库或单个表。

mysqldump -u username -p database_name > backup_file.sql

示例:

mysqldump -u root -p mydb > mydb_backup.sql

2、恢复数据库

使用 mysql 命令可以从备份文件恢复数据库。

mysql -u username -p database_name < backup_file.sql

示例:

mysql -u root -p mydb < mydb_backup.sql

十二、优化和性能

1、查询性能分析 

使用 EXPLAIN 语句分析查询性能。

EXPLAIN SELECT * FROM table_name WHERE condition;

2、优化表

OPTIMIZE TABLE table_name;

3、更新表统计信息

ANALYZE TABLE table_name;

4、缓存查询结果

​​​​​​​ 配置 query_cache 参数来缓存查询结果,提高查询性能。

SET GLOBAL query_cache_size = value;
SET GLOBAL query_cache_type = ON;

十三、安全和备份策略

1、数据加密

加密连接:配置MySQL使用SSL/TLS进行客户端与服务器之间的加密通信。

加密数据:使用MySQL的原生加密函数,如 AES_ENCRYPT() 和 AES_DECRYPT() 进行数据加密。

2、备份策略

定期备份:设置定期备份策略,确保数据的定期备份。

异地备份:将备份文件存储在异地,以防止物理灾害。

3、访问控制

最小权限原则:只授予用户所需的最小权限。

审计日志:开启审计日志,记录用户的所有操作。

十四、常用函数和操作符

1、字符串函数:
CONCAT(str1, str2, ...):连接字符串。
UPPER(str):转换为大写。
LOWER(str):转换为小写。
SUBSTRING(str, pos, len):提取子字符串。2、日期和时间函数:
NOW():当前日期和时间。
CURDATE():当前日期。
DATE_ADD(date, INTERVAL value unit):日期加上时间间隔。
DATEDIFF(date1, date2):计算两个日期之间的天数。3、数学函数
ABS(x):绝对值。
CEIL(x):向上取整。
FLOOR(x):向下取整。
ROUND(x, d):四舍五入到d位小数。4、聚合函数:
COUNT(column):计算列的数量。
SUM(column):计算列的总和。
AVG(column):计算列的平均值。
MAX(column):计算列的最大值。
MIN(column):计算列的最小值。5、逻辑和比较操作符:
=:等于。
<> 或 !=:不等于。
>:大于。
<:小于。
>=:大于或等于。
<=:小于或等于。
AND:逻辑与。
OR:逻辑或。
NOT:逻辑非。

十五、示例综合应用

以下是一个综合示例,展示了如何创建数据库、表、插入数据、查询、更新和删除数据,以及创建视图、存储过程和触发器。

-- 创建数据库
CREATE DATABASE company;-- 选择数据库
USE company;-- 创建员工表
CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,position VARCHAR(50),salary DECIMAL(10, 2),hire_date DATE
);-- 插入数据
INSERT INTO employees (name, position, salary, hire_date)
VALUES ('Alice', 'Manager', 75000, '2020-01-15'),('Bob', 'Developer', 60000, '2019-03-22'),('Charlie', 'Analyst', 55000, '2021-07-11');-- 查询数据
SELECT * FROM employees;-- 更新数据
UPDATE employees SET salary = 65000 WHERE name = 'Bob';-- 删除数据
DELETE FROM employees WHERE name = 'Charlie';-- 创建视图
CREATE VIEW manager_view AS
SELECT name, salary FROM employees WHERE position = 'Manager';-- 查询视图
SELECT * FROM manager_view;-- 创建存储过程
CREATE PROCEDURE RaiseSalary(IN employee_id INT, IN increase DECIMAL(10, 2))
BEGINUPDATE employees SET salary = salary + increase WHERE id = employee_id;
END;-- 调用存储过程
CALL RaiseSalary(2, 5000);-- 创建触发器
CREATE TRIGGER before_insert_employee
BEFORE INSERT ON employees
FOR EACH ROW
BEGINSET NEW.hire_date = IFNULL(NEW.hire_date, CURDATE());
END;

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

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

相关文章

昇思25天学习打卡营第3天|数据集 Dataset

文章目录 要训练AI&#xff0c;大量的数据是基础。就像我们人去学习写作文一样&#xff0c;得先有大量的输入&#xff0c;然后才能有一个不错的输出。AI也一样&#xff0c;需要喂大量的数据以后&#xff0c;才可能有一个不错的预测。 我们产生的数据多种多样 乱七八糟。但计算…

海外短剧系统:一扇窥探多元文化的奇妙之窗

随着全球化的推进&#xff0c;文化交流的壁垒逐渐消融&#xff0c;我们得以更加便捷地领略到世界各地的独特风情。在这一背景下&#xff0c;海外短剧系统应运而生&#xff0c;它如同一扇扇虚拟的窗户&#xff0c;将我们带入不同国家、不同民族、不同文化的世界&#xff0c;让我…

Spark算法之ALS模型(附Scala代码)

Spark算法之ALS模型&#xff08;附Scala代码&#xff09; 在大数据时代&#xff0c;个性化推荐系统已成为连接用户与信息的桥梁&#xff0c;而算法则是构建这一桥梁的基石。Apache Spark&#xff0c;作为一款强大的分布式计算系统&#xff0c;提供了丰富的机器学习库&#xff…

比特币生态系统的现状与流动性提升的新路径

自2009年中本聪发布比特币白皮书以来&#xff0c;比特币一直被誉为“数字黄金”&#xff0c;在加密货币领域占据着不可动摇的地位。其去中心化、稀缺性和安全性&#xff0c;增强了其作为长期价值储存工具的吸引力。 相比之下&#xff0c;以太坊自2015年问世以来&#xff0c;凭…

超低排放标准

据朗观视觉小编了解发现&#xff0c;超低排放标准作为衡量一个行业或企业环保水平的重要指标&#xff0c;越来越受到社会各界的关注。本文将深入探讨超低排放标准的内涵、实施意义以及未来展望。 一、超低排放标准的定义 超低排放标准&#xff0c;是指在特定工业生产过程中&am…

electron的托盘Tray

1.在主进程文件background.js中引入需要的文件 import { Tray, Menu } from "electron"; const path require("path");2.获取托盘图标 const baseSRC process.cwd(); //这里不能使用__dirname,使用dirname会直接获取dist_electron中的文件&#xff0c;…

视频共享融合赋能平台LntonCVS统一视频接入平台数字化升级医疗体系

医疗健康事关国计民生&#xff0c;然而&#xff0c;当前我国医疗水平的地区发展不平衡、医疗资源分布不均和医疗信息系统老化等问题&#xff0c;制约了整体服务能力和水平的提升。视频融合云平台作为推动数字医疗的关键工具&#xff0c;在医疗领域的广泛应用和普及&#xff0c;…

Oracle - 数据库打补丁实践

原文&#xff1a;https://www.cnblogs.com/ddzj01/p/12097467.html 一、概述 本文将介绍如何给oracle数据库打最新补丁&#xff0c;数据库版本为11.2.0.4单实例&#xff0c;操作系统为redhat6.5 二、下载相关升级包 1. 登录MOS&#xff0c;查阅(ID 2118136.2)&#xff0c;下载…

vue3中引入echarts图表

1.下载echarts npm install echarts 2.在使用的页面引入echarts // 按需引入 echarts import * as echarts from "echarts"; 3.准备dom节点 <div id"chartLine"></div> 4.将数据渲染到dom节点 import { ref, onMounted, markRaw } from "…

如何快速把一篇文章或企业介绍变为视频?

随着科技和数字化的不断发展&#xff0c;企业的营销手段也在不断变革。尤其对于产品宣传来说&#xff0c;用生动的视觉语言直观地展示产品特点和优势&#xff0c;能够彰显企业实力&#xff0c;让社会不同层面的人士对企业产生正面、良好的印象&#xff0c;从而建立对该企业的好…

2024.06.18【读书笔记】丨生物信息学与功能基因组学(第十五章 真菌基因组 第二部分)【AI测试版】

读书笔记&#xff1a;《生物信息学与功能基因组学》第十五章 - 第二部分 摘要 本部分深入探讨了真菌基因组的生物信息学分析&#xff0c;包括基因组测序策略、基因识别与功能注释&#xff0c;以及基因组复制对真菌进化的影响。此外&#xff0c;还讨论了功能基因组学方法在真菌…

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时&#xff0c;想将其中的一个元素删除&#xff0c;就遍历了 list &#xff0c;使用了 remove()&#xff0c;发现效果并不是想…

打破僵局:Foxit Reader无法打开的终极解决方案

打破僵局&#xff1a;Foxit Reader无法打开的终极解决方案 在数字化阅读时代&#xff0c;Foxit Reader作为一款广受欢迎的PDF阅读器&#xff0c;其打不开的问题无疑会给用户带来诸多不便。本文将为您提供全面的解决方案&#xff0c;从基础检查到高级技巧&#xff0c;确保您能够…

CircuitBreaker断路器-Resilience4j

目录 背景分布式架构面临的问题&#xff1a;服务雪崩如何解决&#xff1f; CircuitBreakerResilience4jCircuitBreaker 服务熔断服务降级三种状态转换例子参数配置案例demo作业 BulkHead隔离特性SemaphoreBulkhead使用了信号量FixedThreadPoolBulkhead使用了有界队列和固定大小…

Opencv中RotatedRect和ellipse的角度方向

版本&#xff1a;opencv-4.7.0-windows Opencv中&#xff0c;大多数时候&#xff0c;逆时针旋转是正方向&#xff0c;但在RotatedRect和ellipse中&#xff0c;顺时针旋转是正方向。 //RotatedRect的角度参数是顺时针为正方向 RotatedRect(const Point2f& center, const Si…

OpenCV练习(2)图像校正

1、傅里叶变换 霍夫变换 直线 角度 旋转2、边缘检测 霍夫变换 直线角度 旋转3、四点透视 角度 旋转4、检测矩形轮廓 角度 旋转 1.目的 实现类似全能扫面王的图像校正功能 2. 基于轮廓提取和透射变换 基于轮廓提取和透射变换的矫正算法更适用于车牌、身份证、人民…

机器人控制系列教程之动力学建模(1)

简介 机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。机器人动力学是以机器人运动为基础&#xff0c;研究在运动过程中连杆与连杆之间、连杆与工件之间力或力矩等关系。 分类&#xff1a; 根据研究方向的不同&#xff0c;机器人的动力学分析也分为正、逆…

javascript设计模式---单例模式

JavaScript设计模式—单例模式 单例模式又称为单体模式&#xff0c;并提供一个访问它的全局访问点&#xff0c;也就是说&#xff0c;第二次使用同一个类创建的对象的时候&#xff0c;应该得到和第一次创建的对象完全相同的对象 特点 一个类只能生成一个实例对象提供一个全局…

6.25杂七杂八

一、毛泽东&#xff1a; 1、三个代表&#xff1a;&#xff08;1&#xff09;核心&#xff1a;保持党的先进性 &#xff08;2&#xff09;关键&#xff1a;与时俱进 &#xff08;3&#xff09;本质&#xff1a;执政为民 2、…

【Qt之·类QTableWidget】

系列文章目录 文章目录 前言一、常用属性二、成员函数2.1 左上角空白区域 三、实例演示总结 前言 一、常用属性 二、成员函数 方法描述selectRow选中行removeRow移除行insertRow插入行rowCount总行数 2.1 左上角空白区域 QTableCornerButton即不属于列表头&#xff0c;也不…