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

server/2025/1/31 13:42:55/

目录

基本使用

使用案例

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;查询)。

删除表

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


http://www.ppmy.cn/server/163804.html

相关文章

leetcode——对称二叉树(java)

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 解题方法:&#xff08…

【Block总结】PConv,部分卷积|即插即用

论文信息 标题: Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 论文链接: https://arxiv.org/pdf/2303.03667 GitHub链接: https://github.com/JierunChen/FasterNet 创新点 该论文的核心创新在于提出了一种新的运算符——部分卷积(PCo…

二叉树的最大深度(遍历思想+分解思想)

Problem: 104. 二叉树的最大深度 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(实则二叉树的先序遍历) 1.欲望求出最大的深度,先可以记录一个变量res,同时记录每次当前节点所在的层数depth 2.在递的过程中,每次递一层&#xff0…

Debian或Ubuntu系统中重置MySQL的root密码

你提供的步骤是针对在Debian或Ubuntu系统中重置MySQL的root密码的过程。以下是对你提供的步骤的详细说明和补充: 步骤 1.1 - 1.3:进入MySQL配置目录并使用debian-sys-maint账户登录MySQL # 进入MySQL配置目录 cd /etc/mysql/ # 使用vim编辑器打开debia…

Ubuntu Server连接wifi

背景 家里服务器放在客厅太吵了, 准备挪到阳台, 所以买了TP wifi接收器, 因此需要配置wifi连接. 刚开始买了Tenda Ax300, 结果不支持服务器系统, 买前还是得和客服交流交流. 准备 驱动安装 对于windows系统来说, 这款接收器是免驱的, 但在linux上需要安装相应型号驱动 安装…

C# OpenCV机器视觉:实现农作物病害检测

在酷热难耐的夏日,阳光似火舌般舔舐大地。阿强惬意地躺在老家院子摇椅上,哼着小曲,手边放着一碗冰镇西瓜,头顶大槐树宛如巨大遮阳伞,洒下斑驳阴凉。他本想趁假期回老家放松,远离城市喧嚣与代码 “纠缠”。 …

【信息系统项目管理师-选择真题】2005下半年综合知识答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7~8题】【第9~10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题…

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置(TY_TRIGGER_PARAM_EX)1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…