做行程的网站/seo权重查询
数据库相关操作
数据库表创建
定义逻辑库、数据表
- DML
- 添加
- 修改
- 删除
- 查询
- DCL
- 用户
- 权限
- 事务
- DDL
- 逻辑库
- 数据表
- 视图
- 索引
DCL (Data Control Language) 示例
DCL(数据控制语言)主要用于控制数据库用户的访问权限和管理事务。DCL 主要包含两类语句:用户和权限管理语句,以及事务管理语句。
1. 用户管理
创建用户
创建一个新的数据库用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
删除用户
删除一个数据库用户:
DROP USER 'newuser'@'localhost';
修改用户密码
修改用户的密码:
ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
2. 权限管理
授予权限
授予用户对某个数据库的所有权限:
GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
授予用户对某个表的特定权限:
GRANT SELECT, INSERT, UPDATE ON mydatabase.mytable TO 'newuser'@'localhost';
撤销权限
撤销用户对某个数据库的所有权限:
REVOKE ALL PRIVILEGES ON mydatabase.* FROM 'newuser'@'localhost';
撤销用户对某个表的特定权限:
REVOKE SELECT, INSERT, UPDATE ON mydatabase.mytable FROM 'newuser'@'localhost';
刷新权限
刷新权限表,使权限变更生效:
FLUSH PRIVILEGES;
查看权限
查看用户的权限:
SHOW GRANTS FOR 'newuser'@'localhost';
3. 事务管理
事务管理用于确保数据库操作的原子性、一致性、隔离性和持久性(ACID)。
开始事务
开始一个事务:
START TRANSACTION;
提交事务
提交当前事务,使所有更改永久生效:
COMMIT;
回滚事务
回滚当前事务,撤销所有未提交的更改:
ROLLBACK;
设置保存点
设置一个事务的保存点,可以部分回滚到该保存点:
SAVEPOINT savepoint_name;
回滚到保存点
回滚到指定的保存点:
ROLLBACK TO SAVEPOINT savepoint_name;
释放保存点
释放指定的保存点,使其无法再回滚:
RELEASE SAVEPOINT savepoint_name;
示例操作
示例 1:创建用户并授予权限
-- 创建用户
CREATE USER 'alice'@'localhost' IDENTIFIED BY 'alice123';-- 授予对整个数据库的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'alice'@'localhost';-- 刷新权限
FLUSH PRIVILEGES;-- 查看权限
SHOW GRANTS FOR 'alice'@'localhost';
示例 2:管理事务
-- 开始事务
START TRANSACTION;-- 插入数据
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');-- 更新数据
UPDATE users SET email = 'bob@newdomain.com' WHERE username = 'bob';-- 设置保存点
SAVEPOINT before_delete;-- 删除数据
DELETE FROM users WHERE username = 'bob';-- 回滚到保存点
ROLLBACK TO SAVEPOINT before_delete;-- 提交事务
COMMIT;
这些示例展示了如何使用 DCL 语句来管理 MySQL 数据库中的用户、权限和事务。通过掌握这些操作,可以有效地控制数据库的访问权限和确保数据的一致性和完整性。
DDL (Data Definition Language) 示例
DDL(数据定义语言)用于创建、修改和删除数据库对象,包括逻辑库、数据表、视图和索引等。以下是针对逻辑库、数据表、视图和索引的常见 DDL 操作示例。
1. 逻辑库
创建逻辑库
CREATE DATABASE mydatabase;
删除逻辑库
DROP DATABASE mydatabase;
2. 数据表
创建数据表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
修改数据表
添加新的列:
ALTER TABLE users ADD COLUMN age INT;
修改列的数据类型:
ALTER TABLE users MODIFY COLUMN email VARCHAR(255);
删除列:
ALTER TABLE users DROP COLUMN age;
删除数据表
DROP TABLE users;
3. 视图
创建视图
CREATE VIEW user_emails AS
SELECT username, email FROM users;
删除视图
DROP VIEW user_emails;
4. 索引
创建索引
在单个列上创建索引:
CREATE INDEX idx_username ON users (username);
在多个列上创建复合索引:
CREATE INDEX idx_username_email ON users (username, email);
删除索引
DROP INDEX idx_username ON users;
示例操作
示例 1:创建逻辑库和数据表
-- 创建逻辑库
CREATE DATABASE mydatabase;-- 使用逻辑库
USE mydatabase;-- 创建数据表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
示例 2:创建视图和索引
-- 创建视图
CREATE VIEW user_emails AS
SELECT username, email FROM users;-- 创建索引
CREATE INDEX idx_username ON users (username);
通过这些示例,你可以学习如何使用 DDL 操作来管理数据库的逻辑库、数据表、视图和索引。掌握这些基本操作能够有效地设计和维护数据库结构,以满足应用程序的需求。
DML (Data Manipulation Language) 示例
DML(数据操纵语言)用于对数据库中的数据进行增、删、改、查操作。以下是关于添加、修改、删除和查询数据的 DML 操作示例。
1. 添加数据
单行添加数据
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');
批量添加数据
INSERT INTO users (username, email)
VALUES ('alice', 'alice@example.com'),('bob', 'bob@example.com'),('charlie', 'charlie@example.com');
2. 修改数据
更新单行数据
UPDATE users SET email = 'new_email@example.com' WHERE username = 'john';
批量更新数据
UPDATE users SET email = 'new_email@example.com' WHERE id > 10;
3. 删除数据
删除单行数据
DELETE FROM users WHERE username = 'john';
删除多行数据
DELETE FROM users WHERE id > 10;
4. 查询数据
查询所有数据
SELECT * FROM users;
查询特定数据
SELECT * FROM users WHERE username = 'alice';
查询特定列
SELECT username, email FROM users;
查询排序结果
SELECT * FROM users ORDER BY created_at DESC;
查询分页结果
SELECT * FROM users LIMIT 10 OFFSET 20;
示例操作
示例 1:添加数据
-- 单行添加数据
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');-- 批量添加数据
INSERT INTO users (username, email)
VALUES ('alice', 'alice@example.com'),('bob', 'bob@example.com'),('charlie', 'charlie@example.com');
示例 2:修改数据
-- 更新单行数据
UPDATE users SET email = 'new_email@example.com' WHERE username = 'john';-- 批量更新数据
UPDATE users SET email = 'new_email@example.com' WHERE id > 10;
示例 3:删除数据
-- 删除单行数据
DELETE FROM users WHERE username = 'john';-- 删除多行数据
DELETE FROM users WHERE id > 10;
示例 4:查询数据
-- 查询所有数据
SELECT * FROM users;-- 查询特定数据
SELECT * FROM users WHERE username = 'alice';-- 查询特定列
SELECT username, email FROM users;-- 查询排序结果
SELECT * FROM users ORDER BY created_at DESC;-- 查询分页结果
SELECT * FROM users LIMIT 10 OFFSET 20;
通过这些示例,你可以学习如何使用 DML 操作对数据库中的数据进行添加、修改、删除和查询操作。这些基本操作是数据库应用开发中的常见需求,掌握它们能够有效地管理和操作数据库中的数据。
相关文章:

MySQL之数据库相关操作学习笔记(一)
数据库相关操作 数据库表创建 定义逻辑库、数据表 DML 添加修改删除查询 DCL 用户权限事务 DDL 逻辑库数据表视图索引 DCL (Data Control Language) 示例 DCL(数据控制语言)主要用于控制数据库用户的访问权限和管理事务。DCL 主要包含两类语句&…...

【Node】node的Events模块(事件模块)的介绍和使用
文章目录 简言EventsPassing arguments and this to listeners 向监听器传递参数Asynchronous vs. synchronous 异步和同步Handling events only once 只一次处理事件Error events 错误事件Capture rejections of promises 捕捉拒绝承诺的情况Class: EventEmitter 事件类Event:…...

C#中字节数组(byte[])末尾继续添加字节的示例
方法一:使用List 使用List可以很容易地在末尾添加字节,然后如果需要,可以将其转换回byte[]。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin…...

Socket编程学习笔记之TCP与UDP
Socket: Socket是什么呢? 是一套用于不同主机间通讯的API,是应用层与TCP/IP协议族通信的中间软件抽象层。 是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面&#…...

JavaScript第九讲BOM编程的练习题
前言 上一节有BOM的讲解,有需要的码客们可以去看一下 以下是一个结合了上述BOM(Browser Object Model)相关内容的练习题及其源代码示例: 练习题: 编写一个JavaScript脚本,该脚本应该执行以下操作&#…...

JavaScript 中创建函数的多种方式
在 JavaScript 中,可以通过多种方式创建函数。每种方式都有其特定的用途、优点和缺点,以及适用的使用场景。以下是几种常见的创建函数的方式及其详细说明。 1. 函数声明(Function Declaration) 示例 function add(a, b) {retur…...

对称二叉树[简单]
优质博文:IT-BLOG-CN 一、题目 给你一个二叉树的根节点root, 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出…...

判断GIF类型并使用ImageDecoder解析GIF图
一、判断是否为GIF图片类型 在JavaScript中,判断用户上传的文件是否为GIF文件类型时,通常可以通过检查文件的type属性或文件的拓展名来判断,但是由于文件拓展名可以轻易被用户修改,type属性是由浏览器根据文件拓展名猜测得出的&a…...

数组对象数据修改后页面没有更新,无法进行编辑,校验失效问题
在 Vue 中,当你通过 Object.assign 或其他方式修改了对象中的某个属性时,Vue 并不会触发组件重新渲染,因此表单中的 input 框无法及时更新。这可能导致在修改表单数据后,页面没有更新,而且表单校验也失效的情况。这是因…...

什么是低代码?有什么特点?
低代码是一种高效的软件开发方法,它允许开发者通过图形化界面和预构建的代码块,以最小化传统手写代码的方式快速构建应用程序。这种方法旨在加速应用程序的开发周期,同时降低技术门槛和成本。以下是根据驰骋低代码设计者的观念与主张…...

Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析
目录 Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析Kafka 消息存储机制保留时长对生产速度的影响保留时长对消费速度的影响底层分析与优化建议附加:将 Kafka 消息保留时长从 24 小时更改为 72 小时后,CPU 使用率从 40% 上升到 70% 的现象1. 增加…...

MySQL A表的字段值更新为B表的字段值
MySQL A表的字段值更新为B表的字段值 准备数据表 create table person (id int unsigned auto_increment comment 主键 primary key,uuid varchar(32) not null comment 系统唯一标识符32个长度的字符串,mobile varchar(11) null comment 中国国内手机号,nickn…...

TCP 建链(三次握手)和断链(四次握手)
TCP 建链(三次握手)和断链(四次挥手) 背景简介建链(三次握手)断链(四次挥手)序号及标志位延伸问题为什么建立连接需要握手三次,两次行不行?三次握手可以携带数…...

SpringBoot集成JOOQ加Mybatis-plus使用@Slf4j日志
遇到个问题记录下,就是SpringBoot使用Mybatis和Mybatis-plus时可以正常打印日志,但是JOOQ的操作日志确打印不出来? 下面的解决方法就是将JOOQ的日志单独配置出来,直接给你们配置吧! 在项目的resources目录下创建日志…...

浅谈JavaScript中的对象赋值
目录 常见的对象赋值方式 直接赋值和对象扩展(浅拷贝)两种赋值方式区别 区别 联系 常见的对象赋值方式 1. 直接赋值:this.info this.deviceInfo,将一个对象的引用赋给另一个变量,它们引用同一个对象。 2. 对象扩…...

Java面试题-集合
Java面试题-集合 1、什么是集合?2、集合和数组的区别是什么?3、集合有哪些特点?4、常用的集合类有哪些?5、List, Set, Map三者的区别?6、说说集合框架底层数据结构?7、线程安全的集合…...

从当当网批量获取图书信息
爬取当当网图书数据并保存到本地,使用request、lxml的etree模块、pandas保存数据为excel到本地。 爬取网页的url为: http://search.dangdang.com/?key{}&actinput&page_index{} 其中key为搜索关键字,page_index为页码。 爬取的数据…...

python爬虫之JS逆向——网页数据解析
目录 一、正则 1 正则基础 元字符 基本使用 通配符: . 字符集: [] 重复 位置 管道符和括号 转义符 转义功能 转义元字符 2 正则进阶 元字符组合(常用) 模式修正符 re模块的方法 有名分组 compile编译 二、bs4 1 四种对象 2 导航文档树 嵌套选择 子节点、…...

VL53L4CX TOF开发(2)----修改测距范围及测量频率
VL53L4CX TOF开发.2--修改测距范围及测量频率 概述视频教学样品申请完整代码下载测距范围测量频率硬件准备技术规格系统框图应用示意图生成STM32CUBEMX选择MCU串口配置IIC配置 XSHUTGPIO1X-CUBE-TOF1app_tof.c详细解释测量频率修改修改测距范围 概述 最近在弄ST和瑞萨RA的课程…...

C++之noexcept
目录 1.概述 2.noexcept作为说明符 3.noexcept作为运算符 4.传统throw与noexcept比较 5.原理剖析 6.总结 1.概述 在C中,noexcept是一个关键字,用于指定函数不会抛出异常。如果函数保证不会抛出异常,编译器可以进行更多优化,…...

Kafka之Broker原理
1. 日志数据的存储 1.1 Partition 1. 为了实现横向扩展,把不同的数据存放在不同的 Broker 上,同时降低单台服务器的访问压力,我们把一个Topic 中的数据分隔成多个 Partition 2. 每个 Partition 中的消息是有序的,顺序写入&#x…...

RabbitMQ docker安装及使用
1. docker安装RabbitMQ docker下载及配置环境 docker pull rabbitmq:management # 创建用于挂载的目录 mkdir -p /home/docker/rabbitmq/{data,conf,log} # 创建完成之后要对所创建文件授权权限,都设置成777 否则在启动容器的时候容易失败 chmod -R 777 /home/doc…...

篇3:Mapbox Style Specification
接《篇2:Mapbox Style Specification》,继续解读Mapbox Style Specification。 目录 Spec Reference Root 附录: MapBox Terrain-RGB...

C#WPF数字大屏项目实战11--质量控制
1、区域划分 2、区域布局 3、视图模型 4、控件绑定 5、运行效果 走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,动动你的金手指,财务自由...

第九十七节 Java面向对象设计 - Java Object.Finalize方法
Java面向对象设计 - Java Object.Finalize方法 Java提供了一种在对象即将被销毁时执行资源释放的方法。 在Java中,我们创建对象,但是我们不能销毁对象。 JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象。 垃圾回收器给我们一个…...

【scikit-learn009】异常检测系列:单类支持向量机(OC-SVM)实战总结(看这篇就够了,已更新)
1.一直以来想写下机器学习训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架OCSVM模型相关知识体系。 3.欢迎批评指正,欢迎互三,跪谢一键三连! 4.欢迎…...

网络管理与运维
文章目录 网络管理与运维概念:传统网络管理:基于SNMP集中管理:基于iMaster NCE的网络管理:传统网络管理方式: 基于SNMP集中管理:交互方式:MIB:版本:SNMPv3配置网管平台&a…...

数据库查询字段在哪个数据表中
问题的提出 当DBA运维多个数据库以及多个数据表的时候,联合查询是必不可少的。则数据表的字段名称是需要知道在哪些数据表中存在的。故如下指令,可能会帮助到你: 问题的处理 查找sysinfo这个字段名称都存在哪个数据库中的哪个数据表 SELEC…...

第 400 场 LeetCode 周赛题解
A 候诊室中的最少椅子数 计数:记录室内顾客数,每次顾客进入时,计数器1,顾客离开时,计数器-1 class Solution {public:int minimumChairs(string s) {int res 0;int cnt 0;for (auto c : s) {if (c E)res max(res, …...

数据结构与算法之Floyd弗洛伊德算法求最短路径
目录 前言 Floyd弗洛伊德算法 定义 步骤 一、初始化 二、添加中间点 三、迭代 四、得出结果 时间复杂度 代码实现 结束语 前言 今天是坚持写博客的第18天,希望可以继续坚持在写博客的路上走下去。我们今天来看看数据结构与算法当中的弗洛伊德算法。 Flo…...