【MySQL】初始MySQL、库与表的操作

目录

基本使用

使用案例

SQL分类

存储引擎

库的操作

字符集和校验规则

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

查看数据库支持的字符集

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

指定编码常见数据库

 校验规则对数据库的影响

操纵数据库

库的备份与恢复

表的操作

创建表

查看表

修改表

删除表


基本使用

连接服务器 

 mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h:指明登录部署了mysql的主机;
  • -P:指明我们要访问的端口号
  • -u:指明登录用户;
  • -p:指明需要输入密码。

什么是数据库 

mysql--数据库服务的客户端,mysqld--数据库服务的服务器端(带d表明是一种守护进程),mysql本质是基于C(mysql)和S(mysqld)模式的网络服务,

mysql既然是一种网络服务,就要绑定端口号,默认是3306。mysql是一套给我提供数据存取的服务的网络程序。数据库一般指在磁盘或者内存中存储的特定结构组织的数据(将来在磁盘上存储的一套数据库方案)。数据库服务特指mysqld。

存储数据用文件就行了,为什么还要有数据库?

一般文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(用户角度)。

数据库本质:对数据内容存储的一套解决方案,你给我字段或要求,我(数据库)给你直接返回结果。

文件保存有如下缺点:

  1. 文件的安全性问题;
  2. 文件不利于数据查询和管理;
  3. 文件不利于存储海量数据;
  4. 文件在程序控制中不方便。

使用案例

  • 创建数据库
create database helloworld;

建立数据库,本质就是linux下的一个目录。

  • 使用数据库
use helloworld;
  • 创建数据库表
create table student(
    id int,
    name varchar(32),
    gender varchar(32)
);

在数据库内建立表,本质就是在Linux下创建对应的文件即可!

  • 表中插入数据
insert into student (name, age, gender) values ('姓名',20,'男');
  • 查询表中数据
select * from student;

这个工作实际上是mysqld帮我们做的。数据库本质也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。

服务器,数据库,表关系

数据逻辑存储

SQL分类

  1. DDL,数据定义语言,用来维护存储数据的结构代表指令:create、drop、alter;
  2. DML,数据操纵语言,用来对数据进行操作的代表指令:insert、delete、update;其中还包括数据查询语言,代表指令select;
  3. DCL,数据控制语言,主要负责权限管理和事务代表指令:grant,revoke、commit。

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。其中,最常用的是InnoDB和MylSAM。

库的操作

  • 创建数据库:create database db_name; -- 本质就是在/var/lib/mysql创建一个目录
  • 删除数据库:drop database db_name; -- 删除目录

字符集和校验规则

创建数据库的时候,有两个编码集:

  1. 数据库编码集:数据库未来存储数据;
  2. 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据所采用的编码格式。

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

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

show variables like 'character_set_database';
show variables like 'collation_database';

查看数据库支持的字符集

show charset;

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

show collation;

指定编码常见数据库

1.创建名为d1的数据库,当没有指定字符集和校验规则时,系统默认采用默认字符集:utf8,校验规则:utf8_general_ci;        

create database d1;

2.创建一个使用utf8字符集的d2数据库;

create database d2 charset=utf8;

3.创建一个utf8字符集,并指定检验集utf8_general_ci(这种不区分大小写)的d3数据库

create database d3 charset=utf8 collate utf8_general_ci;

 校验规则对数据库的影响

  • 不区分大小写:校验规则使用utf8_general_ci;
  • 区分大小写:校验规则使用utf8_bin;

采用哪种校验规则,会对查询结果或排序结果有影响。

操纵数据库

数据库删除

drop database [if exists] db_name;

在执行删除数据库操作后,里面的数据表都会被删除,所以,不要随意删除数据库,最好做备份再删除。

查看数据库

show database;

显示创建语句

show create database db_name;

查看当前在哪个数据库

select database();

修改数据库

alter database db_name charset=gbk collate gbk_chinese_ci;

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

库的备份与恢复

备份

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

例如,我们将数据库test备份,形成test.sql,test.sql中其实是我们整个创建数据库,建表,导入数据的语句都放在这个文件中。

还原

source 文件路径;

注意:

  • 如果备份的是数据库中的一张表,那么这样做:
mysqldump -u root -p 数据库名 表名1 表名2 > 路径
  • 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库(可以换成别的名字),然后使用数据库,再使用source还原。

查看连接情况

show processlist;

可以告诉当前有哪些用户连接到我们的MySQL,这可以帮助我们看有没有异常用户,是不是数据库被入侵了。

表的操作

创建表

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

其中,field表示列名,datatype表示列的类型,character set表示字符集,如果没有指定字符集,则以所在数据库的校验规则为准;collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。

下面创建一个表实例:

创建表的存储引擎是InnoDB。

存储引擎是MyIsam。(在当前云服务器上,要使用utf8mb4而不能utf8)

不同的存储引擎,创建表的文件不一样。

查看表

查看表结构

desc 表名;

查看表的更详细信息

加\G可以清晰看到主要字段。

修改表

修改表名 

关于表的修改,我们需要有表的增加列,删除列,修改列,修改表名字,修改列名字等。 

alter table user1 rename to user;

案例:

  • 先向表中插入两条记录:
insert into user values(1, '张三', '123456', '1');
insert into user values(1, '李四', '54321', '2');
  • 在user中添加一个字段,用于保存图片路径
mysql> alter table user add image_path varchar(200) comment '这个是图片路径' after sex;

  • 修改name,将其长度修改为60,

修改的结果是,把原来name所有的属性用新设置的属性全都覆盖掉了。

  • 删除password列

注意,删除字段及其对应的列数据全都没了。

  • 修改表名为User

其中,to可以省略。

  • 修改表中某一列的名称。
alter table User change name xingming varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL;

其中,新名称xingming后面必须加上对应的属性(可以通过show create table User;查询)。

删除表

温馨提示:不要轻易修改表名字以及列名字,如果一改,那上层所有都得改。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型开发原理篇-2:语言模型雏形之词袋模型

基本概念 词袋模型(Bag of Words,简称 BOW)是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法,它将文本看作是一组单词的集合,并忽略文本中的语法、词序等信息,仅关注每个词的出现频率。 文本…

“爱”之浅谈(一)

《九重紫》里 陈嘉有了爱情 从粗糙的一介武夫和赌徒,变得温柔细致 万皇后伤于爱情 从温柔的眼里有爱有光的小姑娘,变成狠毒的残害忠良的、意图谋反的、卷动举国风云的操盘手 “爱让怯懦者勇敢,让高傲者低头” “爱是软肋,也是…

图漾相机搭配VisionPro使用简易教程

文章目录 1.下载并安装VisionPro软件2.下载PercipioCameraForVisionPro软件包3.软件部署4.测试流程4.1 遍历VisionPro SDK支持的参数4.2 设置示例4.2.1_cameraSingle.SetTriggerMode4.2.2 _cameraSingle.SetRegistration4.2.3_cameraSingle.SetInt4.2.4 _cameraSingle.GetInt4.…

Versal - 基础3(AXI NoC 专题+仿真+QoS)

目录 1. 简介 2. 示例 2.1 示例说明 2.2 创建项目 2.2.1 平台信息 2.2.2 AXI NoC Automation 2.2.3 创建时钟和复位 2.3 配置 NoC 2.4 配置 AXI Traffic 2.5 配置 Memory Size 2.6 Validate BD 2.7 添加观察信号 2.8 运行仿真 2.9 查看结果 2.9.1 整体波形 2.9…

iperf 测 TCP 和 UDP 网络吞吐量

注:本文为 “iperf 测网络吞吐量” 相关文章合辑。 未整理去重。 使用 iperf3 监测网络吞吐量 Tom 王 2019-12-21 22:23:52 一 iperf3 介绍 (1.1) iperf3 是一个网络带宽测试工具,iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽…

ResNeSt: Split-Attention Networks论文学习笔记

这张图展示了一个名为“Split-Attention”的神经网络结构,该结构在一个基数组(cardinal group)内进行操作。基数组通常指的是在神经网络中处理的一组特征或通道。图中展示了如何通过一系列操作来实现对输入特征的注意力机制。 以下是图中各部…

自动驾驶---苏箐对智驾产品的思考

1 前言 对于更高级别的自动驾驶,很多人都有不同的思考,方案也好,产品也罢。最近在圈内一位知名的自动驾驶专家苏箐发表了他自己对于自动驾驶未来的思考。 苏箐是地平线的副总裁兼首席架构师,同时也是高阶智能驾驶解决方案SuperDri…

【C++】内联函数inline、关键字auto与新式for

内联函数 内联函数背景 我们在使用C语言中我们都学过函数,我们知道函数在调用的过程中需要开辟栈帧。如果我们需要频繁的调用一个函数,假设我们调用10次Add()函数,那我们就需要建立10次栈帧。我们都知道在栈帧中要做很多事情,例如…

Day24-【13003】短文,数据结构与算法开篇,什么是数据元素?数据结构有哪些类型?什么是抽象类型?

文章目录 13003数据结构与算法全书框架考试题型的分值分布如何? 本次内容概述绪论第一节概览什么是数据、数据元素,数据项,数据项的值?什么是数据结构?分哪两种集合形式(逻辑和存储)&#xff1f…

论文阅读(十六):利用线性链条件随机场模型检测阵列比较基因组杂交数据的拷贝数变异

1.论文链接:Detection of Copy Number Variations from Array Comparative Genomic Hybridization Data Using Linear-chain Conditional Random Field Models 摘要: 拷贝数变异(CNV)约占人类基因组的12%。除了CNVs在癌症发展中的…

深入理解若依RuoYi-Vue数据字典设计与实现

深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components:数据字典组件、字典标签组件 工具目录src/utils:字典工具类 store目录src/store:字典数据 main.js:字典数据初始化 页面使用字典例子&#xf…

思维练习题

目录 第一章 假设法1.题目1. 如何问问题2. 他们的职业是分别什么3. 谁做对了4. 鞋子的颜色 2.答案 空闲时间写一些思维题来锻炼下思维逻辑(题目均收集自网上,分析推理为自己所写)。 第一章 假设法 一个真实的假设往往可以让事实呈现眼前&…

亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘

解决PyCharm下PyEMD安装报错 PyEMD安装报错解决方案 PyEMD安装报错 PyCharm下通过右键自动安装PyEMD后运行报错ModuleNotFoundError: No module named ‘PyEMD’ 解决方案 通过PyCharm IDE python package搜索EMD-signal,选择版本后点击“install”执行安装

DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展

文章目录 一、关于 DVC二、快速启动三、DVC的工作原理四、VS代码扩展五、安装Snapcraft(Linux)Chocolatey (Windows)Brew (mac OS)Anaconda (Any platform)PyPI(Python)Package (Platform-specific)Ubuntu / Debian (deb)Fedora /…

实现前端当中的页面过渡动画

使用 HTML、CSS 和 JavaScript 实现页面过渡动画 在现代网页设计中,用户体验是至关重要的。而页面切换时的平滑过渡效果,不仅能让界面更加美观,也能增强用户的互动体验。 引言 作为一名热爱前端开发的程序员,我一直在寻找能提…

AJAX笔记入门篇

黑马程序员视频地址: 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

ts 进阶

吴悠讲编程 : 20分钟TypeScript进阶!无废话快速提升水平 前端速看 https://www.bilibili.com/video/BV1q64y1j7aH

望获实时Linux系统:2024回顾与2025展望

2024年回顾 功能安全认证 2024年4月,望获操作系统V2获ISO26262:2018功能安全产品认证(ASIL B等级),达到国际功能安全标准。 EtherCAT实时性增强 2024年5月,发布通信实时增强组件,EtherCAT总线通信抖…

linux监控脚本+自动触发邮件发送

linux脚本 需求: CPU 负载:使用 uptime 命令,我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务,可能会导致性能下降或服务响应延迟…

软件工程概论试题一

一、单选 1.下面关于“发布测试”的观点错误的是( )。 A.系统开发团队不应该负责发布测试 B.发布测试是一个确认检查的过程 C.发布测试的目的是让系统供应商确信系统足够好可以使用了 D.发布测试通常采用白盒测试 正答:D 2.下图最有可能是()体系结构风格。 A. C…