MYSQL篇二:数据库的操作

文章目录

  • 1. 创建数据库
    • 1.1 查看数据库列表
    • 1.2 创建与删除数据库
  • 2. 数据的编码问题
  • 3. 字符集和校验规则
    • 3.1 查看系统默认字符集以及校验规则
    • 3.2 查看数据库支持的字符集
    • 3.3 查看数据库支持的字符集校验规则
    • 3.4 校验规则对数据库的影响
  • 4. 操纵数据库
    • 4.1 查看当前是哪一个数据库
    • 4.2 显示创建语句
    • 4.3 修改数据库
    • 4.4 数据库删除
    • 4.5 备份和恢复
      • 4.5.1 备份
      • 4.5.2 还原
      • 4.5.3 注意事项
    • 4.6 查看连接情况
  • 5. 表的操作
    • 5.1 创建表
    • 5.2 创建表案例
    • 5.3 查看表结构
    • 5.4 修改表
    • 5.5 删除表

1. 创建数据库

  语法:

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: 指定数据库字符集的校验规则

1.1 查看数据库列表

show databases;

在这里插入图片描述

1.2 创建与删除数据库

  本质就是在/var/lib/mysql目录下创建一个目录。

create database 数据库的名字;

在这里插入图片描述
  本质上就是删除目录。

drop database 数据库的名字;

在这里插入图片描述

2. 数据的编码问题

  数据库有两个编码集:

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

  数据库无论对数据进行任何操作,都必须保证操作和编码必须保持编码一致。
  创建一个使用utf8字符集的 db2 数据库:

create database db2 charset=utf8;

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

create database db3 charset=utf8 collate utf8_general_ci;

  当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci。

3. 字符集和校验规则

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

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

在这里插入图片描述

3.2 查看数据库支持的字符集

show charset;

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

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

show collation;

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

  不区分大小写。
  创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]:

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

  区分大小写。
  创建一个数据库,校验规则使用utf8_ bin[区分大小写]:

create database test2 collate utf8_bin;
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

4. 操纵数据库

4.1 查看当前是哪一个数据库

select database();

在这里插入图片描述

4.2 显示创建语句

show create database 数据库名;

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

4.3 修改数据库

  语法:

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

  说明:
  1. 对数据库的修改主要指的是修改数据库的字符集,校验规则。
  实例: 将 test1 数据库字符集改成 gbk。

alter database test1 charset=gbk;

在这里插入图片描述

4.4 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

  执行删除之后的结果:
  1. 数据库内部看不到对应的数据库。
  2. 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

4.5 备份和恢复

4.5.1 备份

  语法:

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

  示例:将mytest库备份到文件(退出连接)

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

  这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

4.5.2 还原

source D:/mysql-5.7.22/mytest.sql;

4.5.3 注意事项

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

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

  同时备份多个数据库:

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

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

4.6 查看连接情况

  语法:

show processlist;

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

5. 表的操作

5.1 创建表

  语法:

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

  说明:

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

5.2 创建表案例

create table users (id int,name varchar(20) comment '用户名',password char(32) comment '密码是32位的md5值',birthday date comment '生日'
) character set utf8 engine MyISAM;

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

  1. users.frm:表结构 (users.sdi)
  2. users.MYD:表数据
  3. users.MYI:表索引

在这里插入图片描述

  备注:创建一个engine是innodb的数据库,观察存储目录

5.3 查看表结构

  查看当前数据库有几张表:

show tables;

在这里插入图片描述
  查看一张表的信息:

show create table 表名 \G

在这里插入图片描述

  查看一张表的结构:

desc 表名;

在这里插入图片描述

5.4 修改表

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

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename DROP (column)

  增加一个字段:

alter table user add assets varchar(100) comment '图片路径' after birthday;

在这里插入图片描述
  对原数据没有影响:
在这里插入图片描述
  修改name,改变其长度为60:

alter table user modify name varchar(80);

在这里插入图片描述
  删除password列:
在这里插入图片描述
  注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

  修改表名字:

alter table 原名字 rename to 修改后的名字;

在这里插入图片描述
  将name列修改为xingming:
在这里插入图片描述

5.5 删除表

  语法格式:

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

  示例:

drop table user1;

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

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

相关文章

小程序渗透测试的两种方法——burpsuite、yakit

首先呢主要是配置proxifier,找到小程序的流量,然后使用burpsuite或者yakit去抓包。 一、使用burpsuiteproxifier的抓包测试 1、先配置proxifier,开启http流量转发 勾选确定 2、配置burp对应代理端口,选择profile,点…

《梦醒蝶飞:释放Excel函数与公式的力量》8.7 STDEV函数

8.7 STDEV函数 STDEV函数是Excel中用于计算一组数值的标准偏差的函数。标准偏差是统计学中的一个重要指标,用于衡量数据集中各数值偏离平均值的程度。它反映了数据的离散程度或波动大小。 8.7.1 函数简介 STDEV函数用于返回样本数据的标准偏差,标准偏…

软件测试面试1000问(含答案)

1、自动化代码中,用到了哪些设计模式? 单例设计模式工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化…

地图下载工具

1 概述 做仿真的,一般都要用到地图。各大地图厂商,都提供了地图测试接口。只不过,这些接口有限制,用多了就容易被封IP。于是我写了一个瓦片地图下载工具,把地图下载到本地,就可以愉快的玩耍了。 2 操作 …

文字识别技术升级:Airtest与PaddleOCR模型的协作小技巧

一、前言 在进行自动化测试的过程中,ocr文字识别一直是大家最想要实现以及最需要的能力,今天就来介绍一个由百度飞浆提供的一个免费的ocr识别库——PaddleOCR,以及探讨一下,PaddleOCR与Airtest协作能擦出怎么样的火花~ 二、Padd…

打包 最新血液净化器制作技术和资料

网盘 https://pan.baidu.com/s/1fm3LF20dCvy4iSMQklHpug?pwd4je2 便携可穿戴可血液净化用器件及其制备方法和应用.pdf 基于贻贝仿生化学的血液净化材料及其制备方法.pdf 膜分离式一体化血液净化系统.pdf 血液净化器固定夹.pdf 血液净化膜及其制备方法和应用.pdf 评估血液净化…

【手机取证】如何使用360加固助手给apk加固

文章关键词:手机取证、电子数据取证、数据恢复 一、前言 APP加固是对APP代码逻辑的一种保护。原理是将应用文件进行某种形式的转换,包括不限于隐藏,混淆,加密等操作,进一步保护软件的利益不受损坏,下面给…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发:助手还是取代者? 生成式人工智能(AIGC)正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试,AI工具在提高开发效率的同时,也引发了对开发者职业前景的讨论…

Java面试八股之MySQL的pconenct和connect有什么区别

MySQL的pconenct和connect有什么区别 在PHP中,mysql_pconnect() 和 mysql_connect() 是用来建立与MySQL数据库服务器连接的两个函数,它们的主要区别在于连接的持久性。 mysql_connect(): 这个函数每次调用都会尝试创建一个新的数据库连接。 当PHP脚本…

天猫超市卡怎么用

猫超卡是在天猫超市里面消费用的卡 但是我们现在买东西都喜欢货比三家,肯定是哪家划算在哪买,要是淘宝其他店铺或京东卖的更便宜,猫超卡自然就用不上了 这种情况的话,还不如直接把猫超卡的余额提出来,买东西也不受限…

【网络安全】漏洞挖掘之Spring Cloud注入漏洞

漏洞描述 Spring框架为现代基于java的企业应用程序(在任何类型的部署平台上)提供了一个全面的编程和配置模型。 Spring Cloud 中的 serveless框架 Spring Cloud Function 中的 RoutingFunction 类的 apply 方法将请求头中的“spring.cloud.function.routing-expression”参数…

【Python学习笔记】菜鸟教程Scrapy案例 + B站amazon案例视频

背景前摇(省流可以跳过这部分) 实习的时候厚脸皮请教了一位办公室负责做爬虫这块的老师,给我推荐了Scrapy框架。 我之前学过一些爬虫基础,但是用的是比较常见的BeautifulSoup和Request,于是得到Scrapy这个关键词后&am…

数据结构-循环链表和双向链表

目录 前言一、循环链表1.1 循环链表的介绍1.2 循环链表的实现 二、双向链表2.1 双向链表的介绍2.2 双向链表的实现 三、循环双链表总结 前言 本篇文章介绍数据结构中的循环链表和双向链表 一、循环链表 1.1 循环链表的介绍 将单链表的形式稍作改变,单链表的最后…

c++习题05-斐波那契数列

目录 一,问题 二,思路 三,代码 一,问题 二,思路 根据题目,可以自己列出斐波那契数列(前四个)如下: 通过列出来的值,可以发现,前两个都是1&…

设置和取消Excel“打开密码”的3种方法

在日常工作中,Excel文件中常常包含敏感数据。为了防止未经授权的访问,给Excel文件设置打开密码是一个非常有效的方法。下面分享3种设置Excel打开密码的方法,以及如何取消这些密码。 先来看看设置Excel打开密码的3种方法。 方法一&#xff1…

hnust 1815: 算法10-6~10-8:快速排序

hnust 1815: 算法10-6~10-8:快速排序 题目描述 快速排序是对起泡排序的一种改进。它的基本思想是,通过一趟排序将待排序的记录分割成两个独立的部分,其中一部分记录的关键字均比另一部分的关键字小,在分成两个部分之后则可以分别…

【人工智能】--强化学习(2.0)

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉强化学习与有监督学习的区别 🍈数据特点 🍈学习目标 🍈反馈机制 🍈策略…

打赢网络免疫升级战!看聚铭铭察高级威胁检测系统如何重塑网络安全防线

在信息洪流的今天,企业如航行于暗礁密布的数字海洋,面对的不仅仅是已知的病毒与漏洞,更有高级威胁这股暗流,悄无声息地侵蚀着网络的肌理。常规的安全措施,犹如常规体检,虽能捕捉表面的异常,却难…

【论文速读】|FuzzAug:探索模糊测试作为神经网络测试生成的数据增强

本次分享论文:FuzzAug: Exploring Fuzzing as Data Augmentation for Neural Test Generation 基本信息 原文作者:Yifeng He, Jicheng Wang, Yuyang Rong, Hao Chen 作者单位:University of California, Davis 关键词:软件测试…

使用随机生成的随机数过程中,保存数据到数组中 出现很多null

如果 randomId 是一个较大的数字,那么会在 temp 数组中留下很多空位。可能会导致很多 null 值。将 temp 从数组改为对象,以避免稀疏数组的问题。 稀疏数组:当一个数组中大部分元素为0,或者为同一值(也就是说可以不是0…