【MySql】数据库的增删改查

news2024/11/26 13:34:47

本篇的主要目的:对于数据库如何去增加删除查询修改

文章目录

  • 创建数据库create
  • 查看数据库show
  • 删除数据库drop
  • 修改数据库alter

创建数据库create

主要细节在于选项问题,编码选项

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

  • 查看当前用户数据库的列表show databases;

image-20230606163930320

  • 创建数据库create database db_name;

image-20230606164020469

当我们创建数据没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则:utf_general_ci;

简单验证一下:创建一个数据库create database d1,然后去/var/lib/mysql/d1/db.opt查看:、

image-20230606170835046

  • 删除数据库drop database db_name;

image-20230606164118583

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

比如我们在/var/lib/mysql下创建一个目录youcanseeme,而用mysql命令show databases;自然也可以看到。(但是在/var/lib/mysql手动mkdir创建目录这是非常不合理的)

  • 创建不存在(if not exists)的数据库create database if not exists database1;

image-20230606164534363

  • 数据库编码问题

创建数据库的时候,有两个编码集:1.数据库编码集 2.数据库校验集

数据库编码集——数据库未来存储数据

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

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

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

编码集:show variables like ‘character_set_database’;

image-20230606165232619

校验集:show variables like ‘collation_database’;

image-20230606165436555

除了database之外,其他的呢:show variables like ‘collation_%’;

image-20230606165535828

如果想查看数据库支持的字符集:show charset;

如果想查看数据库支持的字符集校验规则:show collation;

  • 创建指定编码集的数据库

如果没有指定,默认以配置文件为主

两种方式创建字符集为utf8的表:

create database d2 charset=utf8;
create database d3 character set utf8;

image-20230606171035300

image-20230606171058791

同时设置字符集与校验集:

image-20230606171552333

image-20230606171633156

image-20230606171914824

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

为了说明这个情况,现在我们创建两个数据库:

test1数据库校验集设置为utf8_general_ci;字符集默认为utf8;校验规则使用utf8_ general_ ci[不区分大小写]

test2数据库校验集设置为utf8_bin;字符集默认为utf8;校验规则使用utf8_ bin[区分大小写]

image-20230606174058107

image-20230606174309208

  • test1数据库

现在先来看数据库test1,往数据库test1插入数据,先使用数据库use test1;创建表person

 create table if not exists person (name varchar(20));

插入数据:

mysql> insert into person (name) values ('a');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person (name) values ('b');
Query OK, 1 row affected (0.00 sec)

mysql> insert into person (name) values ('A');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person (name) values ('B');
Query OK, 1 row affected (0.00 sec)

mysql> insert into person (name) values ('c');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person (name) values ('D');
Query OK, 1 row affected (0.00 sec)

此时的表person,查询表person:

image-20230606184457001

查询person表中的a:结果是大写小写都能够查出来,则是utf8_general_ci不区分大小写:

image-20230606184745103

看一下排序结果:

image-20230606185739270

test1中的校验规则是utf8_general_ci进行比较的时候,进行校验的时候大小写不做区分,校验集是会影响结果的,一般我们按照默认的

  • test2数据库

现在再来看数据库test2,使用数据库use test2;,创建表person:

create table if not exists person (name varchar(20));

插入数据,查看表person:

image-20230606185157251

查询person表中的a:结果是只查出来小写:这是utf8_bin区分大小写:

image-20230606185257603

对于排序,数据库test2中的person默认是升序的,按照ascii值小到大:

image-20230606185545237

查看数据库show

show databases;

image-20230606190034481

  • 使用数据库use db_name;

查看到之后并不能直接使用数据库,想使用数据库使用use+数据库名称;如使用数据库helloworld;

use helloworld;
  • 确认当前使用的数据库select database();
select database();

当前正在使用test1数据库

image-20230606190917925

删除数据库drop

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

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

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

//删除数据d5\d4\d3;
mysql> drop database d5;
Query OK, 0 rows affected (0.00 sec)

mysql> drop database d4;
Query OK, 0 rows affected (0.00 sec)

mysql> drop database d3;
Query OK, 0 rows affected (0.00 sec)

修改数据库alter

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

采用alter的方式对数据库进行修改

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

alter database test2 charset=gbk collate gbk_chinese_ci;

修改完查看数据库test2的信息:

image-20230606192003148

/*!40100 DEFAULT CHARACTER SET gbk */:这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

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

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

相关文章

让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer

让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer implement Transformer Model by Tensor flow Kerasimplement Bert model by Tensor flow Kerasimplement GPT model by Tensor flow Keras 本文主要展示Transfomer, Bert, GPT的神经网络结构之间的关系和差异。网络上…

空间权重矩阵总结

前言 建立空间计量模型的前提,一般要引入空间权重矩阵 W W W来表达 n n n个位置的空间区域邻近关系。 但空间权重矩阵的构造一直是备受争议的,理论是不存在最优的空间矩阵,那么在实证分析中,通常用一个词总结试一试。下文总结了目…

chatgpt赋能python:Python怎么全加井号

Python怎么全加井号 在SEO优化中,适当的标记和排版对文章排名起到重要作用。在这篇文章中,我们将介绍如何使用井号(#)在Python中全加井号,以帮助优化文章搜索引擎排名。 什么是井号? 在Python中&#xf…

chatgpt赋能python:Python怎么再添一格的SEO

Python怎么再添一格的SEO Python作为一门高效、多用途、自由、易于学习的编程语言,已经被广泛地应用在各个领域,包括Web开发、数据分析、机器学习、人工智能等。在这篇文章中,我们将探讨如何使用Python来提高网站的SEO排名。 1. 了解SEO 在…

chatgpt赋能python:Python怎么写表格:介绍与结论

Python怎么写表格:介绍与结论 在数据分析或者开发领域,表格是非常常见的数据展示形式。Python作为一门流行的编程语言,在表格的处理上也有很好的支持。今天我们来介绍一下Python怎么写表格。 1. Pandas库的使用 Pandas是Python中非常流行的…

chatgpt赋能python:Python怎么入侵手机

Python怎么入侵手机 现在移动设备已经成为人们生活中必不可少的一部分,因此,攻击者越来越多地将目光转向移动设备。 进入移动设备的主要方式之一是通过应用程序漏洞进行攻击。而Python编程语言的出现可以让攻击者更容易地发掘和利用这些漏洞&#xff0c…

chatgpt赋能python:Python创建SEO文章的指南

#Python创建SEO文章的指南 在当今数字化世界中,SEO(搜索引擎优化)对于拥有一个成功的在线业务至关重要。SEO文章不仅可以帮助提高网站的排名,还可以吸引更多的访问者并提高转化率。在本文中,我们将介绍如何使用Python…

基于统计检验的空间计量经济模型选择方法

前言 当前空间计量模型的实证研究中,国内的文献均是基于LM检验的空间自相关和空间误差模型进行选择与分析,但是LM检验确实存在局限性。故此,需要对空间计量模型选择进行一个阐述。下列出现在空间计量模型选择方法。 原理方法基于统计检验方…

chatgpt赋能python:Python怎么做选择题?

Python怎么做选择题? 作为一种最广泛使用的编程语言之一,Python被广泛应用于数据科学、机器学习、人工智能、Web开发等领域,而我们今天要聚焦的是Python如何实现选择题的功能。 选择题是什么? 选择题是一种常见的考试题型&…

ICMP协议详解

目录 1.ICMP协议简介 2.ICMP报文格式 2.1 ICMP报文以太网数据帧格式 2.2 ICMP首部格式 2.3 ICMP报文类型列表 3.ICMP故障排查工具 3.1 ping工具 3.2 traceroute工具 4.常见ICMP报文 4.1 ICMP请求和应答 4.2 ICMP差错报告报文 4.3 目标主机不可达 5.ICMP校验和计算 …

ROS学习——通信机制(话题通信④—自定义msg)

052话题通信_自定义msg_实现_Chapter2-ROS通信机制_哔哩哔哩_bilibili 2.1.4 话题通信自定义msg Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 一、自定义msg实现 需求:创建自定义消息,该消息包含人的信息:姓名、身高、年龄等。 1.定义msg文件 &am…

python基础语法学习--字面量

1、字面量的定义 在代码中,被写下来的固定的值。 2、常见值类型 数字:Number,包含整数int、浮点数float、复数complex、布尔bool四类。 整数int:如10、-10等 浮点数float:如13.14、-13.14等 复数complex:如…

Cracking C++(6): 准确打印浮点数

文章目录 1. 目的2. 准确打印浮点数: 使用 fmt 库3. 准确算出被表示的值3.1 直观感受IEEE-754: float-toy3.2 获取浮点数二进制表示3.3 float 类型3.4 double 类型3.5 fp16 类型3.6 验证 4. 结论和讨论5. References 1. 目的 给 float 或 double 类型的变量赋值后&…

chatgpt赋能python:Python教程:如何倒序输出字典?

Python教程:如何倒序输出字典? Python是一种强大的编程语言,广泛用于各种类型的应用程序开发。在开发应用程序时,访问和操作数据是至关重要的一步,而字典是Python中最有用的数据结构之一。字典允许开发人员使用键值对…

Linux安装myql8.0操作步骤

1. 创建software目录,目录可以自定义 mkdir /usr/local/softwar 2. 进入目录software,获取安装包文件 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz 3. 解压文件 tar -vxf mysql-8.0.32-…

【MySQL数据库 | 第十六篇】存储引擎

目录 前言: MySQL体系结构图: 存储引擎简介: 1. InnoDB存储引擎: 2. MyISAM存储引擎: 3. MEMORY存储引擎: 4. NDB Cluster存储引擎: 5. ARCHIVE存储引擎: 存储引擎语法&#…

chatgpt赋能python:Python再次运行快捷键介绍及使用技巧

Python再次运行快捷键介绍及使用技巧 如果你是一名经验丰富的Python工程师,你一定知道如何使用Python快捷键加速代码调试和开发。然而,在实际开发中有许多情况下,你需要再次运行刚刚输入的代码块或函数,这个时候,你必…

JavaWeb开发聊天功能 聊天信息如何实现自动将其他消息上移 最新消息出现在界面下方

问题 JavaWeb开发聊天功能 聊天信息如何实现自动将其他消息上移 最新消息出现在界面下方 详细问题 笔者基于开发JavaWeb开发聊天功能,当用户处于聊天室中,若用户发送一条信息或用户接收到聊天对象的信息,若要查看信息,需要下滑…

Storm超实用教程详解-附示例

一、理论基础 Storm 是一个免费并开源的分布式实时计算系统。利用 Storm 可以很容易做到可靠地处理无限的 数据流,像 Hadoop 批量处理大数据一样,Storm 可以实时处理数据。在Storm中,topology的构建是一个有向无环图。结点就是Spout或者Bolt&…

CKA 04_部署 harbor 仓库 containerd 连接 harbor 仓库 kubeadm 引导集群

文章目录 1. 清空之前的策略1.1 kubeadm 重置1.2 刷新 IPtables 表 2. 查看 Kubernetes 集群使用的镜像3. 搭建 harbor 仓库3.1 部署 docker3.1.1 准备镜像源3.1.2 安装 docker3.1.3 开机自启 docker3.1.4 修改内核参数,打开桥接3.1.5 验证生效 3.2 准备 harbor 仓库…