MySQL——操作

一.库的操作

1.基本操作

创建数据库

create database 数据库名称;

查看数据库

show databases;

删除数据库

drop database 数据库名称;

执行删除之后的结果:

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

所以不要随意删除数据库

使用数据库

use 数据库名称;

查看当前所处数据库

select database();

修改数据库

alter database 数据库名称 新字符集 新校验规则;

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

查看创建数据库的详细信息

show create database 库名称;

能够查看当时创建该数据库时所编写的语句的信息。


2.数据库编码

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

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

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

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

show variables like 'character_set_database';

show variables like 'collation_database'****;

查看数据库支持的字符集

show charset;

字符集主要是控制用什么语言。比如utf8就可以使用中文。

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

show collation;

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

create database db3 charset=utf8 collate utf8_general_ci;

不同的校验码规则,会影响数据库的数据读取,例如:

校验规则使用utf8_ general_ ci,不会区分数据的大小写

校验规则使用utf8_ bin,会区分数据的****大小写


3.备份与恢复

备份

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

这里的路径,最终要是一个以".sql"为后缀的文件

打开.sql 文件,会发现备份实际上把整个创建数据库,建表,导入数据的语句都装载这个文件中。

还原

source 数据库备份存储的文件路径**;**

还原要在MySQL服务中操作。

备份的不是整个数据库,而是其中的一张表

mysqldump -u root -p 数据库名 表名1 表名2 >数据库备份存储的文件路径

同时备份多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库备份存储的文件路径

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


4.查看库连接状态

show processlist

可以查看当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。


二.表的操作

1.基本操作

创建表

create table 表名称(

列名称 列类型 comment '列的描述',

...

)character set 字符集 collate 校验规则 engine 存储引擎;

列名可以有很多个,字符集和校验规则如果没有指定,则保持与所在数据库一致。comment也可以省略。

查看表列表

show tables;

查看表结构

desc 表名称;

查看创建表的详细信息

show create table 表名称;

能够查看当时创建表的具体语句信息。

表插入数据

insert into 表名称 (列名称...) values (列数据...);

可以仅给指定的列添加数据,如果不指定特定的列,则默认表示为所有的列添加数据。

修改表名称

alter table 表名称 rename to 新名称;

删除表

drop table 表名称;

表添加新列

alter table 表名称 add 列名 列类型 comment '列的描述' after 列名称;

after表示要将新列添加在那一列的后边,如果不使用,则默认添加为最后一列。

修改列类型

alter table 表名称 modify 列名称 新类型;

删除列

alter table 表名称 drop 列名称;

修改列名称

alter table 表名称 change 列原名称 列新名称 列类型;

修改列名称需要给出完整的列定义。


三.视图

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表基表的数据变化也会影响到视图

创建视图:

create view 视图名 as select语句;

删除视图:

drop view 视图名;

视图规则:

  • 与表一样,必须唯一命名(不能出现同名视图或表名)
  • 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
  • 视图不能添加索引,也不能有关联的触发器或者默认值
  • 视图可以提高安全性,必须具有足够的访问权限
  • order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图 中的 order by 将被覆盖
  • 视图可以和表一起使用

视图的作用主要是将一张表中常用的若干字段提取出来作为单独的一张虚拟表,以方便读取数据。

相关推荐
bing.shao21 小时前
Golang select多路复用踩坑
数据库·golang·php
摇滚侠21 小时前
索引失效,数据库引擎,索引失效的六种情况
数据库·面试
QT 小鲜肉21 小时前
【Linux命令大全】001.文件管理(理论篇)
linux·数据库·chrome·笔记
小年糕是糕手21 小时前
【C++同步练习】模板初阶
服务器·开发语言·前端·javascript·数据库·c++·改行学it
morliz子轩21 小时前
在Docker上安装MYSQL 8.x—RelationalDb with SQL
sql·mysql·docker
Sammyyyyy21 小时前
Django 6.0 发布,新增原生任务队列与 CSP 支持
数据库·后端·python·django·sqlite·servbay
就叫飞六吧1 天前
innodb 更新存储的索引大小以及记录数
数据库·oracle
yumgpkpm1 天前
hadoop集群搭建 (超详细) 接入Impala、Hive,AI 大模型的数据底座
hive·hadoop·mysql·zookeeper·flink·kafka·hbase
TDengine (老段)1 天前
直播回放 | IDMP 无问智推技术详解
数据库·人工智能·物联网·ai·时序数据库·tdengine·涛思数据
DemonAvenger1 天前
Redis内存管理与优化策略:避免OOM的最佳实践
数据库·redis·性能优化