从 SQL 语句到数据库操作

1. SQL 语句分类
  • 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。createdrop alter

  • 数据操作语言 DML : 用于添加、删除、更新数据库中的数据。selectinsert alterdrop

  • 数据控制语言 DCL : 用于控制访问权限和管理数据库的安全性。grantrevokecommit

2. 存储引擎

存储引擎是数据库管理系统中的关键组件,它决定了数据如何被存储、组织以及检索

在 MySQL 中创建一个新的数据库时,会在文件系统上为该数据库创建一个对应的目录。

这个数据库通常包含了与该数据库相关的、所有表的数据文件、索引文件、以及其它文件。

不同的存储引擎可能会以不同的方式组织这些文件。

  • InnoDB : 默认存储引擎,支持事务处理、行级锁定和外键约束。InnoDB 设计用于最大化数据完整性和高并发环境下的性能。

​ 适用于需要频繁写入操作,和事务支持的应用场景。

  • MyISAM : 不支持事务和行级锁定,但提供高速的查询性能和简单的维护管理。MyISAM 使用表级锁定,在执行写操作时,整个表会被锁定。

​ 适合读密集型应用,但在高并发写场景时可能会遇到性能瓶颈。

3. 字符集和校验规则
3.1 数据库默认的字符集和校验规则

查看系统默认字符集:

show variables like 'character_set_database';

查看系统默认校验规则:

show variables like 'collation_database';

  • utf8mb4 : 字符集名称,表示支持完整的 Unicode 字符集,包括 4 字节的 UTF-8 编码字符。
  • utf8mb4_0900_ai_ci : 一种基于 Unicode 9.0.0 标准、忽略重音和大小写的校验规则,适用于 utf8mb4 字符集。
3.2 数据库支持的字符集和校验规则

查看数据库支持的字符集和字符集校验规则:

show charset;    # 查看数据库支持的字符集
show collation;  # 查看数据库支持的字符集校验规则
3.3 校验规则对数据库的影响
  • 不区分大小写
create database temp2 charset=utf8mb4; # 使用默认字符串校验规则,不区分大小写
use temp2;
create table person (name varchar(20));insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');

在这里插入图片描述

  • 区分大小写
create database temp3 charset=utf8mb4 collate=utf8mb4_bin; # utf8mb4_bin 区分大小写
use temp3;
create table person (name varchar(20));insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');

在这里插入图片描述

4. 修改、备份和恢复数据库
4.1 修改数据库
show create database temp2; # 查看数据库`temp2`是如何创建的

alter database temp2 charset=gbk; # 修改数据库`temp2`字符集为 gbk
show create database temp2;

4.2 备份数据库
mysqldump -P3306 -uroot -p -Btemp2 > /home/ZhengTongren/MySQL/temp2.bak
  • mysqldump 是一个命令行工具,而不是 SQL 语句,不能在 MySQL 客户端中直接运行。
  • mysqldump 需要指定一个具体的文件路径来保存文件;如果想备份保存到 /home/ZhengTongren/MySQL/ 路径下,需要确保该目录存在,并提供一个具体的文件名。

4.3 恢复数据库

登入 MySQL 客户端。

source /home/ZhengTongren/MySQL/temp2.bak;
5. 修改表
desc person; # 查看表`person`的结构信息# 插入两条数据
insert into person values (1, '张三');
insert into person values (2, '李四');

5.1 在 person 表中添加一个字段,保存 ‘年龄’
alter table person add age int comment '年龄' after name; # 在 name 后加入 age 列
select * from person;

插入新字段后,对原来表中的数据没有影响。

update person set age = 18 where name='张三';
update person set age = 21 where name='李四';

5.2 修改 name 字段长度,修改表名
# 修改 name 字段长度为 30
alter table person modify name varchar(30);
desc person;
# 修改表名
alter table person rename employee;
select * from employee;

5.3 删除 id 列

删除表中的一个字段时,该字段及其对应的所有数据都将被永久删除。

alter table employee drop id; # 前面修改过表名
select * from employee;

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

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

相关文章

Excel中SUM求和为0?难道是Excel有Bug!

大家好,我是小鱼。 在日常工作中有时会遇到这样的情况,对Excel表格数据进行求和时,结果竟然是0,很多小伙伴甚至都怀疑是不是Excel有Bug!其实,在WPS的Excel表格中数据求和,结果为0无法正确求和的…

【简博士统计学习方法】第2章:3. 感知机——学习算法之对偶形式:算法解说

3. 感知机——学习算法之对偶形式:算法解说 3.4 对偶形式 在原始形式中,若 ( x i , y i ) (x_i,y_i) (xi​,yi​)为误分类点,可如下更新参数: w ← w η y i x i ; b ← b η y i w \leftarrow w\eta y_{i} x_{i} ; \quad b …

YARN 集群

一、集群角色 1.1 概述 Apache Hadoop YARN是一个标准的Master/Slave集群(主从架构)。其中ResourceManager(RM) 为Master, NodeManager(NM) 为 Slave。常见的是一主多从集群,也可以…

ASP.NET Core - .NET 6 以上版本的入口文件

ASP.NET Core - .NET 6 以上版本的入口文件 自从.NET 6 开始,微软对应用的入口文件进行了调整,移除了 Main 方法和 Startup 文件,使用顶级语句的写法,将应用初始化的相关配置和操作全部集中在 Program.cs 文件中,如下&…

云平台一键部署【Video-Background-Removal】视频换背景,无任何限制,随意换

Video-Background-Removal 是一款革命性的视频背景替换工具,旨在让用户轻松实现视频背景的快速更换。无论你是专业创作者还是普通用户,这款软件都能让你在几秒钟内改变背景,完全消除限制,随心所欲,随时随地想换就换&am…

独立开发者工具集:AppSumo网站科普

独立开发者经常会访问 AppSumo,原因在于以下几点: 推广自己的产品: AppSumo 对独立开发者来说是一个很好的分发平台,能够帮助他们快速触达大量潜在用户。通过在 AppSumo 上发布限时优惠,开发者可以获得更多的曝光、用…

Apache Hop从入门到精通 第三课 Apache Hop下载安装

1、下载 官方下载地址:https://hop.apache.org/download/,本教程是基于apache-hop-client-2.11.0.zip进行解压,需要jdk17,小伙伴们可以根据自己的需求下载相应的版本。如下图所示 2、下载jdk17(https://www.microsoft…

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found.

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found. 1. 故障现象2. 解决思路3. 故障分析4. 案件回溯5. 解决问题 1. 故障现象 有一台服务器业务报无法连接. 尝试用Ping命令发现无法ping通. 通过控制台查看发现有以下报错: error: ..…

解决:ubuntu22.04中IsaacGymEnv保存视频报错的问题

1. IsaacGymEnvs项目介绍 IsaacGymEnvs:基于NVIDIA Isaac Gym的高效机器人训练环境 IsaacGymEnvs 是一个基于 NVIDIA Isaac Gym 的开源 Python 环境库,专为机器人训练提供高效的仿真环境。Isaac Gym 是由 NVIDIA 开发的一个高性能物理仿真引擎&#xf…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 AI浪…

010:传统计算机视觉之大津算法初探

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 上一节学习了利用 Canny 算法来完成一个图片的边缘检测,从而可以区分出图像的边缘。 本节再了解一个计算机视觉中更常见的应用,那就是把图片的前景和…

【Redis】初识分布式系统

目录 单机架构 分布式系统 应用数据分离架构 应用服务集群架构 读写分离/主从分离架构 冷热分离架构 垂直分库 微服务架构 分布式名词概念 本篇博文,将根据分布式系统的演进一步一步介绍每一种架构的形式,最后为大家总结了一些分布式中常用的…

计算机网络 笔记 数据链路层3(局域网,广域网,网桥,交换机)

局域网: LAN:在某一区域内由多台计算机互联成的计算机组,使用广播信道 特点: 覆盖范围有限:通常局限在几千米范围内,比如一栋办公楼、一个校园或一个工厂等相对较小的地理区域。 数据传输速率高:一般能达到 10Mbps…

配置 One API + ChatGPT-Next-Web,以讯飞星火认知大模型为例

配置 One API ChatGPT-Next-Web,以讯飞星火认知大模型为例 1.0 One API 配置1.1 获取大模型 API1.2 配置 OneAPI 渠道1.3 配置OneAPI 令牌 2.0 ChatGPT-Next-Web 配置 同步发布在个人笔记配置 One API ChatGPT-Next-Web,以讯飞星火认知大模型为例 上一…

Leetcode - 147双周赛

目录 一、3407. 子字符串匹配模式二、3408. 设计任务管理器三、3409. 最长相邻绝对差递减子序列四、3410. 删除所有值为某个元素后的最大子数组和 一、3407. 子字符串匹配模式 题目链接 字符串匹配问题,把字符串 p 分成两段 、,i 是 ’ * ’ 的下标&am…

SqlSugar连接达梦数据库集群超时或异常缓慢

《SqlSugar配置连接达梦数据库集群》文章中介绍SqlSugar连接达梦数据库集群,只需按下图所示位置添加dm_svc.conf文件,并在SqlSugar的连接字符串中指定服务名即可。   但在使用过程中发现,基于.net 6开发的WebApi,编译为ANYCPU&…

探秘 JMeter (Interleave Controller)交错控制器:解锁性能测试的隐藏密码

嘿,小伙伴们!今天咱们要把 JMeter 里超厉害的 Interleave Controller(交错控制器)研究个透,让你从新手直接进阶成高手,轻松拿捏各种性能测试难题! 一、Interleave Controller 深度剖析 所属家族…

C++内存泄露排查

内存泄漏是指程序动态分配的内存未能及时释放,导致系统内存逐渐耗尽,最终可能造成程序崩溃或性能下降。在C中,内存泄漏通常发生在使用new或malloc等分配内存的操作时,但没有正确地使用delete或free来释放这块内存。 在日常开发过程…

服务器/电脑与代码仓gitlab/github免密连接

git config --global user.name "xxxx" git config --global user.email "xxxxxx163.com" #使用注册GitHub的邮箱 生成对应邮箱的密码对 ssh-keygen -t rsa -b 4096 -C "xxxxxx163.com" 把公钥id_rsa.pub拷贝到github中 Setting----->…

Rubyer-WPF:打造优雅、精致的 WPF 用户界面

在桌面应用开发领域,WPF(Windows Presentation Foundation)凭借其强大的 UI 设计能力和丰富的功能,始终是开发者们青睐的工具之一。今天,我将为大家介绍一款专注于 WPF UI 设计的优秀项目——Rubyer-WPF,它…