【MySQL笔记】库操作与表操作

🔥个人主页🔥:孤寂大仙V
🌈收录专栏🌈:MySQL
🌹往期回顾🌹:【MySQL】认识MySQL
🔖流水不争,争的是滔滔不


  • 一、库操作
    • 1.1 显示数据库
    • 1.2 创建数据库
    • 1.3 字符集和校验规则
    • 1.4 显示创建语句
    • 1.5 修改数据库
    • 1.6 数据库删除
    • 1.7 备份与还原
    • 1.8 查看连接情况
  • 二、表操作
    • 2.1 创建表
    • 2.2 查看当前数据库有哪些表
    • 2.2 查看表结构
    • 2.3 修改表
      • 删除表
      • 修改表名字
      • 向表中插入内容
      • 查看表的内容
      • 向表结构中新增行 表内容新增列
      • 修改表结构中信息的存储大小
      • 删除表结构中的行 表内容中的列

一、库操作

1.1 显示数据库

show databases;

show databases;” 是 MySQL 中的一条 SQL 语句,用于显示当前 MySQL 服务器上,当前用户权限范围内的所有可用数据库。

语法格式为SHOW DATABASES (LIKE ‘数据库名’);其中LIKE从句是可选项,用于匹配指定的数据库名称,支持部分匹配和完全匹配 。

在这里插入图片描述


1.2 创建数据库

语法

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

大写的表示关键字
[] 是可选项
CHARACTER SET: 指定数据库采用的字符集
COLLATE: 指定数据库字符集的校验规则


创建名为test1的数据库

create database test;

在这里插入图片描述


1.3 字符集和校验规则

创建数据库的时候,有两个编码集:
1.数据库编码集——数据库未来的存储数据
2.数据库效验集——支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式。

数据库对数据进行任何操作,必须保证操作和编码是一致的。

创建指定字符集与指定校对规则的数据库
创建一个使用utf8字符集的数据库

create database db2 charset=utf8;

创建一个使用utf字符集并带校队规则的数据库

create database db3 charset=utf8 collate utf8_general_ci;

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

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci
在这里插入图片描述
查看数据库支持的字符集

show charset

字符集主要是控制用什么语言
在这里插入图片描述
查看数据库支持的字符集校验规则

show collation;

在这里插入图片描述
效验数据对数据库的影响

我们用能不能区分字母大小写的效验码举例

创建一个数据库,效验规则使用utf8_general_ci 不能区分大小写

create database test1 collate utf8_general_ci;

在这里插入图片描述

use test1;
create table person(name varchar(20));
mysql> insert into person (name) values ('a');mysql> insert into person (name) values ('A');mysql> insert into person (name) values ('b');mysql> insert into person (name) values ('B');mysql> insert into person (name) values ('c');mysql> insert into person (name) values ('C');
select * from person;

在这里插入图片描述


创建一个数据库,效验规则使用utf8_bin 区分大小写

create database test2 collate utf8_bin;

在这里插入图片描述

create table person(name varchar(20));
mysql> insert into person (name) values ('a');mysql> insert into person (name) values ('A');mysql> insert into person (name) values ('b');mysql> insert into person (name) values ('B');mysql> insert into person (name) values ('c');mysql> insert into person (name) values ('C');
select * from person;

在这里插入图片描述


校验集是会影响我们的数据库的结果的。

1.4 显示创建语句

show create database 数据库名;

在这里插入图片描述
MySQL 建议我们关键字使用大写,但是不是必须的。
数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
/*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

1.5 修改数据库

语法

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则


修改test1数据库字符集改为gbk

alter database test1 charset=gbk;

在这里插入图片描述

1.6 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

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

注意:不要随意删除数据库


删除test2数据库

drop database test2;

在这里插入图片描述

1.7 备份与还原

语法

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

将test1库备份到文件(退出连接),在我们Linux想要下,你自己想要进行备份的路径下进行备份。

mysqldump -P3306 -uroot -p -B test1> test_25_3_11

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

发现备份文件,在数据中做的有效操作都备份起来了。


如果把数据库中的test1这一数据库删除,进行还原要进行一下操作

source后跟备份文件所在的路径

source /root/learn/test_25_3_11/test_25_3_11;

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


如果备份的不是整个数据库,而是其中的一张表,怎么做

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

1.8 查看连接情况

就是看当前有哪些人用这个数据库

show processlist;

在这里插入图片描述

二、表操作

2.1 创建表

语法

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

创建表之前要有数据库,表是存在数据库里的。
在这里插入图片描述
在这里插入图片描述

mysql> 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;
mysql> create table if not exists user2(-> id int,-> name varchar(20) comment '用户名',-> password char(32) comment '用户的密码',-> birthday date comment '用户的生日'-> )charset=utf8 collate=utf8_general_ci engine=InnoDB;

在这里插入图片描述


不同的存储引擎,创建表的文件不一样
users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

存储引擎是 InnoDB,有两个文件,分别是:

  • user2.frm
  • user2.ibd
    在这里插入图片描述

2.2 查看当前数据库有哪些表

show tables;

在这里插入图片描述

2.2 查看表结构

desc 表名;

在这里插入图片描述

在这里插入图片描述

查看更详细信息

在这里插入图片描述

2.3 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表

删除表

语法

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

把一个表删除

drop table user2;

在这里插入图片描述

修改表名字

alter table 原来的名字 rename to 新名字;

在这里插入图片描述

向表中插入内容

insert into user values(1,'张三''12345','2005-10-1');
insert into user values (2,'李四','54321','2004-10-1');

在这里插入图片描述

查看表的内容

select * from 表名称;

在这里插入图片描述

向表结构中新增行 表内容新增列

alter table 表名 add 新增的列的名称 大小 comment 描述 after birthday
alter table user add image_path varchar(128) comment '这个是用户的头像路径' after birthday;

在这里插入图片描述
新增后发现表结构中新增了一行,表内容中新增了一列。

修改表结构中信息的存储大小

alter table 表名称 modify name 新的字段
alter table user modify name varchar(60);

在这里插入图片描述

删除表结构中的行 表内容中的列

alter table 表名称 drop 想要删除的内容; 
alter table user drop password;	

在这里插入图片描述

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

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

相关文章

SpringBoot3实战(SpringBoot3+Vue3基本增删改查、前后端通信交互、配置后端跨域请求、数据批量删除(超详细))(3)

目录 一、从0快速搭建SpringBoot3工程、SpringBoot3集成MyBatis、PageHelper分页查询的详细教程。(博客链接) 二、实现前端与后端通信对接数据。(axios工具) &#xff08;1&#xff09;安装axios。(vue工程目录) &#xff08;2&#xff09;封装请求工具类。(request.js) <1&…

单播、广播、组播和任播

文章目录 一、单播二、广播三、组播四、任播代码示例&#xff1a; 五、各种播的比较 一、单播 单播&#xff08;Unicast&#xff09;是一种网络通信方式&#xff0c;它指的是在网络中从一个源节点到一个单一目标节点对的传输模式。单播传输时&#xff0c;数据包从发送端直接发…

【实战】deepseek数据分类用户评论数据

在平时的工作中&#xff0c;我们会遇到数据分类的情况&#xff0c;比如将一些文本划分为各个标签。如果人工分类这块的工作量将是非常大&#xff0c;而且分类数据的准确性也不高。我们需要用到一些工具来实现。提高效率的同时也提高准确率。 1.示例数据 用户ID 时间戳 评论场…

技术视角解读:游戏出海如何借助AWS全球架构突破性能与合规瓶颈

【场景痛点】 某二次元卡牌手游团队在东南亚市场遭遇联机延迟投诉率高达37%&#xff0c;日本地区因数据合规问题面临下架风险。在传统IDC架构下&#xff0c;运维团队需要同时管理3个区域的物理服务器&#xff0c;版本更新耗时长达6小时。 【技术架构升级】 通过AWS Local Zones…

【JavaEE】网络编程socket

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

第16届蓝桥杯单片机4T模拟赛三

本次模拟赛涉及的模块&#xff1a;基础三件套&#xff08;Led&Relay&#xff0c;按键、数码管&#xff09; 进阶单件套&#xff08;pcf8591的AD模块&#xff09; 附件&#xff1a; 各模块底层代码在文章的结尾 一、数码管部分 1.页面1 页面1要显示的格式是&#xff1a; …

网络华为HCIA+HCIP IPv6

目录 IPv4现状 IPv6基本报头 IPv6扩展报头 IPv6地址 IPv6地址缩写规范 ​编辑 IPv6地址分配 IPv6单播地址分配 IPv6单播地址接口标识 IPv6常见单播地址 - GUA &#xff08;2 / 3 开头&#xff09; IPv6常见单播地址 - ULA IPv6常见单播地址 - LLA IPv6组播地…

基于YOLOv8深度学习的智能小麦害虫检测识别系统

作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参与学生毕业答辩指导&#xff0c;…

Mac:Maven 下载+安装+环境配置(详细讲解)

&#x1f4cc; 下载 Maven 下载地址&#xff1a;https://maven.apache.org/download.cgi &#x1f4cc; 无需安装 Apache官网下载 Maven 压缩包&#xff0c;无需安装&#xff0c;下载解压后放到自己指定目录下即可。 按我自己的习惯&#xff0c;我会在用户 jane 目录下新建…

XSS-labs(反射型XSS) 靶场 1-13关 通关

目录 前言 XSS漏洞概述 XSS漏洞分类 通关日记 level1 分析 解题 ​level2 分析 解题 方法一&#xff1a;闭合标签 方法二&#xff1a;闭合双引号 level3 分析 解题 level4 分析 解题 level5 分析 解题 level6 分析 解题 level7 分析 解体 level8 …

GPT-5 将免费向所有用户开放?

GPT-5 将免费向所有用户开放&#xff1f; 硅谷知名分析师 Ben Thompson 最近与 OpenAI CEO Sam Altman 进行了一场深度对谈&#xff0c;其中Sam Altman透漏GPT-5将免费向大家发放。 OpenAI 这波操作可不是一时冲动&#xff0c;而是被逼出来的。DeepSeek 这个新秀横空出世&am…

【杂记二】git, github, vscode等

一、前言 暂时空着... 二、git 2.1 可能的疑问 1. VSCode 项目名和 GitHub 仓库名是否需要一致&#xff1f; 不需要一致。 VSCode 项目名&#xff08;也就是你本地的文件夹名字&#xff09;和 GitHub 仓库名可以不一样。 Git 是一个分布式版本控制系统&#xff0c;它主要关…

数学爱好者写的编程系列文章

作为一个数学爱好者&#xff0c;我大学读的专业却不是数学专业&#xff0c;而是跟计算机有关的专业。原本我对编程一窍不通&#xff0c;平时上课也是在看数学文献&#xff0c;作业基本靠同学&#xff0c;考试及格就行。不过后来因为毕业的压力&#xff0c;我还是拥抱编程了&…

FPGA 以太网通信(四)网络视频传输系统

一、网络视频传输系统 网络视频传输系统使用ov5640摄像头采集数据&#xff0c;通过组件UDP帧将视频数据实时传输给上位机。 ov5640视频传输带宽 像素分辨率设为640x480&#xff0c;帧率设为60帧&#xff0c;像素格式为RGB565&#xff0c;传输带宽为 640 x 480 x 16bit x 60 fps…

[leetcode]1631. 最小体力消耗路径(bool类型dfs+二分答案/记忆化剪枝/并查集Kruskal思想)

题目链接 题意 给定 n m n\times m nm地图 要从(1,1) 走到 (n,m) 定义高度绝对差为四联通意义下相邻的两个点高度的绝对值之差 定义路径的体力值为整条路径上 所有高度绝对差的max 求所有路径中 最小的路径体力值是多少 方法1 这是我一开始自己写的记忆化剪枝 比较暴力 时…

DeepSeek写打台球手机小游戏

DeepSeek写打台球手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件&#xff1a; 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…

webpack使用详细步骤

项目描述 本项目 webpack 的基本使用。 webpack 官方&#xff1a;https://webpack.docschina.org/concepts/ Element-plus 官方&#xff1a;https://element-plus.sxtxhy.com/zh-CN/ Vue3 官方&#xff1a;https://cn.vuejs.org/ 项目组成明细 每个步骤完成后重新执行 npm run …

【STM32实物】基于STM32的太阳能充电宝设计

基于STM32的太阳能充电宝设计 演示视频: 基于STM32的太阳能充电宝设计 硬件组成: 系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。 功能…

【记一次】AI微调训练步数计算方式

llama微调训练步数计算方式,以下数据为假设 一、关键参数解析 总样本数&#xff1a;Num examples 1,047 表示训练数据集包含 1,047 个样本。 训练轮数&#xff1a;Num Epochs 300 表示整个训练集将被遍历 300 次。 总批次大小&#xff1a;Total train batch size 80 表示…

python-selenium 爬虫 由易到难

本质 python第三方库 selenium 控制 浏览器驱动 浏览器驱动控制浏览器 推荐 edge 浏览器驱动&#xff08;不容易遇到版本或者兼容性的问题&#xff09; 驱动下载网址&#xff1a;链接: link 1、实战1 &#xff08;1&#xff09;安装 selenium 库 pip install selenium&#…