MySQL基础---库的操作和表的操作(配着自己的实操图,简单易上手)

news2024/11/25 19:33:08

绪论​
勿问成功的秘诀为何,且尽全力做您应该做的事吧。–美华纳;本章是MySQL的第二章,本章主要写道MySQL中库和表的增删查改以及对库和表的备份处理,本章是基于上一章所写若没安装mysql可以查看Linux下搭建mysql软件及登录和基本使用,同时也强烈建议先上一章在看本章。
在这里插入图片描述
话不多说安全带系好,发车啦(建议电脑观看)。

思维导图:
在这里插入图片描述


1.库的操作

1.1创建库

创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]

create_specification:
[DEFAULT] CHARACTER SET charset_name #字符集
[DEFAULT] COLLATE collation_name #校验规则

[] 是可选项,也就表示着括号内的内容可填可不填的。
其中 IF NOT EXISTS:表示判断下创建的库是否存在(创建的文件存在了就会报错误信息)
在这里插入图片描述

1.1.1指定编码在创建数据库时:

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci(在配置文件中写的)

设置库的字符集和校验规则
语法:
create database dbname charset=字符集 collate 校验规则;

在这里插入图片描述
单独的设置字符集:
在这里插入图片描述

1.1.2字符集和校验规则:

  1. 数据库字符集 — 数据库未来存储的数据
  2. 数据库校验集 — 支持数据库,进行字段比较时使用的编码,本质是一种读取数据库中数据的采用的编码格式
    写和读的编码集必须是统一的,也就是数据库无论对数据的任何操作,都必须保证操作和编码必须保持一致

查看系统默认字符集以及校验规则:

查看字符集:
show variables like 'character_set_database';
查看校验集;
show variables like 'collation_database';

在这里插入图片描述
在这里插入图片描述
查看数据库支持的字符集和校验规则:

查看数据库所有支持的字符集:
show charset;
查看数据库支持的校验规则:
show collation;

在这里插入图片描述
在这里插入图片描述

1.1.3校验规则对数据库的影响

上面所用到的的utf8_general_ci是不区分大小写的、而utf8_bin区分大小写

验证utf8_general_ci是不区分大小写的如下(附:db数据库的校验规则是utf_general_ci):

在表中查找某个数据验证
语法:
select * from table_name where row_name=check_information;
具体使用:
select * from person where name='a';

在这里插入图片描述
上图发现排序后的a、A是一样的,故是不区分大小写的。

排序方法验证(默认升序)
语法:
select * from table_name order by Row_name; 
具体使用:
select * from person order by name;

在这里插入图片描述


utf8_bin区分大小写的:

在表中查找某个数据
语法:
select * from table_name where row_name=check_information;
具体使用:
select * from person where name='a';

在这里插入图片描述
上图只查出了一个就表示是区分大小写的(a!=A)

排序(默认升序):
语法:
select * from table_name order by Row_name; 
具体使用:
select * from person order by name;

在这里插入图片描述

1.2删除库

语法:

DROP DATABASE [IF EXISTS] db_ name;

附:强烈不建议轻易的删除数据库
在这里插入图片描述
执行删除之后的结果:

  1. 数据库内部看不到对应的数据库
  2. 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

1.3查看库

查看数据库的语法:
show databases;

在这里插入图片描述

查看当前所在数据库的语法:
select database();

如当前在db数据库下:
在这里插入图片描述

显示创建库的语句
语法:
show create database dbname; #dbname就是数据库名

在这里插入图片描述

  • 其中在查看到创建库的语句中的 /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

1.4修改库

语法:

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]

alter_spacification:
[DEFAULT] CHARACTER SET charset_name #字符集
[DEFAULT] COLLATE collation_name #校验规则
具体使用sql语句方法:
alter database db charset=gbk collate gbk_general_ci;

在这里插入图片描述

2.表的操作

2.1创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

具体使用:
1.
create table if not exists user1(
    id int,
    name varchar(20) comment '用户名',
    password char(32) comment '密码',
    birthday date comment '生日'
)character set utf8 collate utf8_general_ci engine MyIsam;

2.
create table user2(
    id int,
    name varchar(20) comment '用户',
    password char(32) comment '密码',
    birthday date comment '生日'
)charset=utf8 collate=utf8_general_ci engine=InnoDB;

在这里插入图片描述
在这里插入图片描述
对比两次创表过程:最后的字符集和校验规则以及存储引擎有两种自定义的方法(自行选择顺手的使用- -)

character set utf8 collate utf8_general_ci engine MyIsam;
charset=utf8 collate=utf8_general_ci engine=InnoDB;

2.1.1当创建的表在库目录使用不同的存储引擎,创建表的文件也是不一样的

  1. user1 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

    1. user1.frm:表结构
    2. user1.MYD:表数据
    3. user1.MYI:表索引
  2. user2 表存储引擎是 InnoDB ,在数据目中有的文件是:

    1. user2.frm:表结构
    2. user2.ibd:表空间文件,用于存储数据和索引
      在这里插入图片描述
      附:当不指定写字符集和校验规则以及存储引擎的话就会默认成配置文件所默认的。
      配置文件所在的地址:/etc/my.cnf
      在这里插入图片描述
      在这里插入图片描述

1.2查看表

语法:
show tables;

在这里插入图片描述


查看表结构(详细信息)
语法:
desc 表名;

在这里插入图片描述
在这里插入图片描述


查看创建表的语句
语法:
show create table 表名;
show create table 表名 \G;#加上\G格式化展示

在这里插入图片描述


查看创建表的详细数据
语法:
select * form 表名;

在这里插入图片描述


1.3修改表

插入信息
语法:
insert into 表名 (列名)values(对应信息);

在这里插入图片描述
上图看出若不加列名表示在所有的行都添加信息,反之在values前面加上括号就指定了在某列中添加信息(下图在指定id处添加4)
在这里插入图片描述


插入新的一列
语法:
alter table 表名 add 新列名 列的类型 comment '描述' after 放在那一行后面

具体使用:
在这里插入图片描述

修改某一列的属性
语法:
alter table tablename modify rowname 新属性;

在这里插入图片描述
注:
其中我们在修改时,最好写全了(包括描述),因为这是覆盖式的修改在这里插入图片描述
不写全的话:
在这里插入图片描述

在这里插入图片描述


修改表名
语法:
alter table 表名 rename to 新的表名;

其中 to 可以省略
在这里插入图片描述


修改列名
语法:
alter table 表名 change 列名 新列名;

在这里插入图片描述
注:在重命名列名时必须要加类型,并且的同样的最好写全了!


1.4删除表

语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
具体使用:
drop table user1;

在这里插入图片描述


删除列
语法:
alter table 表名 drop 列名;

注:一般不要删,删除后该行的数据就再也找不到了,并且也会影响所有上层用到该数据库的地方
在这里插入图片描述


3.数据库中的备份和恢复

3.1备份数据:

通过在服务器上输入bash指令:
备份库:
mysqldump -P3306 -uroot -p -B db > db.sql

将会生成一个db.sql备份文件

查看内部内容的语法:
vim db.sql

内部内容就是在数据库主要的sql语句:
在这里插入图片描述

3.2恢复数据

source 备份文件的路径;

在这里插入图片描述
在这里插入图片描述

附:

  1. 备份某张表(恢复一样)
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

其实也就发现和备份库不一样的是少了 -B 选项,所以也就表明了 -B 选项的含义就是在备份文件中加一个创建数据库的SQL语句
同时也侧面说明了,该还原时是需要在一个已经创建好的数据库下使用source来进行还原的!

  1. 同时备份多份数据库(也很简单类似于备份一个数据库)
mysql -uroot -p -B 数据库名1 数据库名2 ... > 数据库存放的路径 
  1. 查看连接状态
show processlist;

在这里插入图片描述


本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量MySQL细致内容,早关注不迷路。

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

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

相关文章

Android.基本用法学习笔记

设置文本的内容 先在strings.xml声明变量 方法1. 方法2. 设置文本的大小 1.单位dp,大家可以去学一下有关的单位换算 2. 设置文本颜色 1. 2. 4.设置文本背景颜色 1. 2. 设置视图的宽高 与上级视图一致,也就是上一级有多宽就有多少 1. 2. 3. 4. 设置视图…

1.VMware软件的安装与虚拟机的创建

1. VMware软件的安装 1.1 为什么需要虚拟机 嵌入式Linux开发需要在Linux系统下运行,我们选择Ubuntu。   1、双系统安装     有问题,一次只能使用一个系统。Ubuntu基本只做编译用。双系统安装不能同时运行Windows和Linux。   2、虚拟机软件   …

pytorch 实现语义分割(Pytorch 27)

一 语义分割 在目标检测问题中,我们一直使用方形边界框来标注和预测图像中的目标。下面探讨语义分割(semantic segmentation)问题,它重点关注于 如何将图像分割成属于不同语义类别的区域。 与目标检测不同,语义分割可…

k8s 1.28 搭建rabbitmq集群

1.环境 1.1 k8s 1.28 1.2 rabbit 3.8 1.3 工作空间default 1.4 注意,内存最好充足一点,因为我就两个节点一个master、一个node,起初我的node是8g,还剩3~4G,集群竟然一直起不来,后来将虚拟机内存扩大&#x…

ROS1配置husky仿真环境遇到的一些问题+方法论

ROS 系列学习教程(总目录) 本文目录 一、问题描述二、问题分析2.1 分析日志2.2 尝试一(失败)2.3 尝试二(成功) 三、husky仿真需要安装的软件包四、总结 - 方法论4.1 文件路径不合法4.2 文件内容不合法4.3 ROS 环境变量4.3.1 方法一…

consul做配置中心

1. 分布式配置中心 consul不仅可做注册中心,还可做配置中心 applicaiton.yml与bootstrap.yml: applicaiton.yml是用户级的资源配置项bootstrap.yml是系统级的,优先级更加高 Spring Cloud会创建一个“Bootstrap Context”,作为Spring应用…

blender

通用设置: 仅显示/取消隐藏:数字键盘/ 移动视角:shift鼠标中键 Blender如何给场景添加参考图片-百度经验 (baidu.com) 进入编辑模式:Tab 编辑模式:点-线-面 两个视图 法向显示:就能变成恶心的蓝红色 显…

AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

设计软件有哪些?照明工具篇,渲染100邀请码1a12

阴影和照明涉及到图片的真实感和氛围,所以熟练使用照明工具是设计师的必备能力,这次我们介绍一些照明工具。 1、VRaySun VRaySun是VRay渲染器中的一个功能,用于模拟太阳光源。它是一种方便易用的光源类型,能够产生逼真的日光效果…

高考分数查询结果自动推送至微信(卷II)

祝各位端午节安康!只要心中无结,每天都是节,开心最重要! 在上一篇文章高考分数查询结果自动推送至微信(卷Ⅰ)-CSDN博客中谈了思路,今天具体实现。文中将敏感信息已做处理,读者根据自…

2024-6-10-Model-Agnostic Meta-Learning (MAML)

摘自:Meta-Transfer Learning for Zero-Shot Super-Resolution 近年来,提出了各种元学习算法。它们可以分为三类: 基于度量的方法:这些方法通过学习度量空间,使得在少量样本内进行高效的学习。例如[35, 38, 39]。基于…

认识和使用 Vite 环境变量配置,优化定制化开发体验

Vite 官方中文文档:https://cn.vitejs.dev/ 环境变量 Vite 内置的环境变量如下: {"MODE": "development", // 应用的运行环境"BASE_URL": "/", // 部署应用时使用的 URL 前缀"PROD": false, //应用…

第1章Hello world 3/5:Cargo.lock:确保构建稳定可靠:运行第一个程序

讲动人的故事,写懂人的代码 1.6 Cargo.lock:确保构建稳定可靠 “看!”席双嘉一边指着屏幕一边说,“终端窗口提示符的颜色,从绿变黄了。这就意味着代码在上次提交后有点变化。” 赵可菲:“但是我们只是运行了程序,代码应该没动呀。” 席双嘉敲了下git status -uall,这…

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中,需要开…

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划: 1.基础环境准备: (1)保证可以连接外网 (2)关闭禁用防火墙和selinux (3)同步阿里云服务器时间(达到集群之间时间同步) &…

上心师傅的思路分享(三)--Nacos渗透

目录 1. 前言 2. Nacos 2.1 Nacos介绍 2.2 鹰图语法 2.3 fofa语法 2.3 漏洞列表 未授权API接口漏洞 3 环境搭建 3.1 方式一: 3.2 方式二: 3.3 访问方式 4. 工具监测 5. 漏洞复现 5.1 弱口令 5.2 未授权接口 5.3.1 用户信息 API 5.3.2 集群信息 API 5.3.3 配置…

前端开发部署:Visual Studio Code + vue

〇 说明 本教程全部采用默认安装路径,因为在进行自定义路径安装的时候,需要配置各种环境变量,在这个配置过程中,可能出现各种很混乱的问题。 一 安装Node.js 1 下载https://nodejs.org/en 2 按照默认NEXT执行 C:\Program Files…

flutter日历范围选择器

1.传入日期跨度,选择上架日期时,自动显示下架日期 2.手动选择上架日期和下架日期(图中下架日期自动填了只需CalendarDateRangePicker在initState方法中使用_startDate widget.initialStartDate; _endDate widget.initialEndDate;,而不直接…

史上最详细四叉树地图不同技术应用和代码详解

四叉树地图在计算机和机器人领域应用的很广,但是初学者可能会发现四叉树地图有各种不同的实现方式,很多在机器人领域不适用或是在计算机存储领域不适用。今天我就讲解下各类四叉树的实现方式和应用场景。 史上最详细四叉树地图不同技术应用和代码详解 本…

出现 Navicat 和 Cmd 下SQL 版本 | 查询不一致的解决方法

目录 1. 问题所示1.1 查询表格不一致1.2 版本不一致2. 原理分析3. 解决方法1. 问题所示 命令行和数据库使用工具出现不一致的情况,分别有如下情况 1.1 查询表格不一致 使用工具查询当地表格: 使用命令行查询当地表格: 1.2 版本不一致 在cmd命令下mysql --version 查询…