MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置

news2024/11/19 20:29:41

目录

1 MySQL的使用演示(8.0和5.7版本对比)

1、查看所有的数据库

2、创建自己的数据库

3、使用自己的数据库

4、查看某个库的所有表格

5、创建新的表格

6、查看一个表的数据 

7、添加一条记录  

8、查看表的创建信息

9、查看数据库的创建信息 

10、删除表格

11、删除数据库

2 MySQL的编码设置

MySQL5.7中

步骤1:查看MySQL5.7 编码命令

步骤2:修改mysql的数据目录下的my.ini配置文件  

步骤3:重启服务

步骤4:查看编码命令 

步骤五:重新建库,建表验证

 MySQL8.0中


1 MySQL的使用演示(8.0和5.7版本对比)

1、查看所有的数据库

show databases;

8.0版本: 

5.7版本:

  • “information_schema”              MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等
  • “performance_schema”            MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。
  • “sys”数据库是 MySQL           系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。
  • “mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等
为什么 Workbench 里面我们只能看到 “demo” “sys” 2 个数据库呢?
这是因为, Workbench 是图形化的管理工具,主要面向开发人 员, “demo” “sys” 2 个数据库已经够用了。如果有特殊需求,比如,需要监控 MySQL 数据库各项性能指标、直接操作 MySQL 数据库系统文件等,可以由 DBA 通过 SQL 语句,查看其它的系统数据库。  

2、创建自己的数据库

create database 数据库名;

#创建atguigudb数据库,该名称不能与已经存在的数据库重名。

create database atguigudb;

3、使用自己的数据库

use 数据库名;

#使用atguigudb数据库

use atguigudb;
说明:如果没有使用 use 语句,后面针对数据库的操作也没有加 数据名 的限定,那么会报 “ERROR 1046 (3D000): No database selected”(没有选择数据库)
使用完 use 语句之后,如果接下来的 SQL 都是针对一个数据库操作的,那就不用重复 use 了,如果要针对另一个数据库操作,那么要重新use

 

4、查看某个库的所有表格

show tables; #要求前面有use语句
show tables from 数据库名;

当前还没创建表,还是空!!! 

5、创建新的表格

create table 表名称(
字段名 数据类型,
字段名 数据类型
);
说明:如果是最后一个字段,后面就用加逗号,因为逗号的作用是分割每个字段
#创建学生表
create table student(
id int,
name varchar(20) #说名字最长不超过20个字符
);

6、查看一个表的数据 

select * from 数据库表名称;
#查看学生表的数据
select * from student;

7、添加一条记录  

insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');

MySQL8.0版本: 

MySQL5.7版本:

 报错:

mysql> insert into student values(1,'张三');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1
mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at row 1
字符集的问题。 

8、查看表的创建信息

show create table 表名称\G
#查看student表的详细创建信息
show create table student\G


#结果如下
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
上面的结果显示 student 的表格的默认字符集是 “latin1” 不支持中文

 

9、查看数据库的创建信息 

show create database 数据库名\G
#查看atguigudb数据库的详细创建信息
show create database atguigudb\G
*************************** 1. row ***************************
       Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)

 上面的结果显示atguigudb数据库也不支持中文,字符集默认是latin1

10、删除表格

drop table 表名称;
#删除学生表
drop table student;

11、删除数据库

drop database 数据库名;
#删除atguigudb数据库
drop database atguigudb;

2 MySQL的编码设置

MySQL5.7

问题再现:命令行操作 sql 乱码问题
mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at
row 1
问题解决:
 

步骤1:查看MySQL5.7 编码命令

show variables like 'character_%';
show variables like 'collation_%';

步骤2:修改mysql的数据目录下的my.ini配置文件  

 my.ini配置文件路径:即安装MySQL时的ProgramData路径,可参考文章:

MySQL 2 环境搭建(MySQL5.7.43和8.0.34的下载;8.0.34的安装、配置教程 )-CSDN博客

这里我的位置在:D:\Software\MySQL\MySQL_data\MySQL Server 5.7

注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会 导致文件编码修改为“含BOM头”的编码,从而服务重启失败。 

[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci

步骤3:重启服务

 

步骤4:查看编码命令 

show variables like 'character_%';
show variables like 'collation_%';

如果是以上配置就说明对了。接着我们就可以新创建数据库、新创建数据表,接着添加包含中文的 数据了。 

步骤五:重新建库,建表验证

# 创建数据库:
create database atguigudb;

# 查看数据库:
show create database atguigudb;

# 使用数据库:
use atguigudb;

# 建表:
create table student( id int, name varchar(20));

# 查看表:
show create table student;

 

# 查看学生表的数据
select * from student;

# 添加两条记录到student表中 
insert into student values(1,'张三');
insert into student values(2,'李四');

 

 MySQL8.0中

 VS:对比8.0的编码看下:

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。

网站开发人员在数据库设计 的时候往往会将编码修改为utf8字符集。

如果遗忘修改默认的编码,就会出现乱码的问题。

从MySQL 8.0 开始,数据库的默认编码改为 utf8mb4 ,从而避免了上述的乱码问题。

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

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

相关文章

pip安装总是失败怎么办

换国内好几个镜像也是总是失败,这里不再说这种方法,主要讲将本地安装 WHL文件安装 首先,要从官网(https://pypi.org/project/)上下载指定的.whl文件,进入官网后搜索Flask-SQLAlchemy,选择最近版本点击,在Do…

ICC2:skip route

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 一些net,不需要工具去绕线的时候可以用skip route功能,可以是没绕线,不需要绕线的情况,也可以是绕了线不希望被工具动到的情况。…

计算机基础知识32

Socket抽象层(socket编程) # Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单 的接口供应用层调用已实现进程在网络中通信 socket () 对象 bind () 函数来绑定 listen () 监听,等别人电话 accept(&#…

C++使用openssl对AES-256-ECB PKCS7 加解密

/** AES-256-ECB PKCS7 加密 函数* input:经过PKCS7填充后的明文数据* outhex:加密后的命名数据16进制数,可以使用base64_encode转换为base64格式字符串密文* key:密钥* len:经过PKCS7填充后的明文数据长度*/ void AesEcb256Pkcs7Encrypt(u8 *input, u8 *outhex, u8 *key, int …

18.项目开发之前端项目搭建测试

项目开发之前端项目搭建测试 解压文件,将前端项目目录,拖拽到HBuilder中 前端项目QuantTrade_vue地址:传送门 后端项目QuantTrade地址: https://pan.baidu.com/s/1GF45B0QepApH8JbRIOLY7w?pwd1016 开启idea的项目,先…

连连国际:助力跨境卖家在TikTok Shop全球平台轻松收款

数字化时代的崛起已经改变了人们的生活方式,也彻底颠覆了传统商业模式。社交媒体平台,如TikTok,已经不仅仅是人们分享生活的地方,也成为了商业增长的重要渠道之一。 TikTok Shop,作为TikTok社交媒体巨头的电子商务延伸…

换低挡装置(Kickdown, ACM/ICPC NEERC 2006, UVa1588)rust解法

给出两个长度分别为n1,n2(n1,n2≤100)且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器(如图3-8所示),问能够容纳它们的最短容器长度。 样例 2112112112 2212112 1012121212 2121…

使用 Github Actions 工作流自动部署 Github Pages

GitHub-Actions actions顾名思义就是一堆动作,是一个持续集成服务,持续集成包含了拉代码、运行测试、编译代码、登录远程服务器,发布到第三方服务等等的操作,GitHub将这些操作称为actions。 概念:Workflows, Events,…

fastDFS实现文件上传与下载

前言 我们在做项目的时候经常会遇到文件的上传与下载。你们是怎么做的呢?现在有一个技术可以非常简单的实现这个功能——fastDFS 简介 FastDFS是一个分布式文件系统,使用FastDFS可以非常容易搭建一套高性能的文件服务器集群提供文件上传、下载服务。 …

RocketMq(六)消息传输方式

在前面的基础上, 一、消息传输方式:在RocketMQ中,可以通过设置消费组的方式实现消息的广播和点对点传输。 1、默认方式:多个消费者轮询消费,若只有一个消费者则全部消费。通过下面的举例可以看到这其实就是点对点模式。 (1&…

Rockchip 3588 开关HDMI

需求 上层Android要控制hdmi,dp等等(带有节点的功能)的开关,配置,获取状态。 方案 我们可以从Settings的源码中找到方法: 从HdmiSettings.java的源码中可以看到如下注释: 相关节点定义: 控制函数如下&…

云服务器ip使用细节(公网、私有)

场景: 当我们对tcp服务器进行监听的时候,可能需要用到ip地址,比如使用httplib::Service::listen(ip, port),而当我们访问tcp服务器时也需要ip地址 但这两个ip是不同的! 每个云服务器通常都会有一个公网IP地址和一个私有…

Redis删除过期key策略

文章目录 前言Redis中key的的过期时间在创建 key 时使用 EXPIRE 命令设置过期时间(秒级)使用 EXPIREAT 命令设置一个精确的过期时间(unix 时间戳)使用 PEXPIRE 命令设置过期时间(毫秒级)使用 PEXPIREAT 命令设置毫秒级精确过期时间在 Redis 配置文件中设置所有 key 的默认过期时…

C语言--好题

目录 题目一:二维数组传参 题目二: malloc开辟二维数组 题目三: 位段 题目四: 联合体 题目五:位段 题目六:找单身狗2 题目一:二维数组传参 下面代码中print_arr函数参数设计哪个是正确的…

某985证书站挖掘记录

0x1.前言 ​ 本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台,现已修复…

​ModbusTCP转Profibus-DP从站网关把modbus的数据传到300plc上的应用方法​​

远创智控YC-DPS-TCP,让Profibus和ModbusTcp总线之间的通讯协议转换更简单。 远创智控YC-DPS-TCP 是一种将Profibus和ModbusTcp总线连接的通讯协议转换设备。这个设备非常符合ModbusTcp协议的设备,比如各种仪表、传感器、交换机等,它们可以通过…

odoo笔记

后台运行项目 nohup python odoo-bin -c ./debian/odoo.conf & 查看当前odoo进程 (更新项目模型类时,1.先重启项目,2.再去网页更新模块) ps -fA | grep odoo kill 进程id 删库 /web/database/manager 查找文件夹 find …

linux centos7 环境下 no such file or directory

目录 1.问题描述2.主要原因2.1修改后代码2.2修改前代码 总结参考 1.问题描述 预览excel文件时无法找到对应的html文件 2.主要原因 异常原因:代码获取的是系统的tmp文件,但是linux环境环境中心tmp目录是没有权限的,所以不能获取系统的根目录…

Python如何获取动态加载的数据呢 ?

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 例子1:爬取dy电影中的电影详情数据 url:https://movie.douban.com/ 1.什么是动态加载的数据: 我们通过requests模块进行数据爬取无法每次都是可见…

vue使用高德地图轨迹活动效果demo(整理)

在html页面引入您自己的key <script language"javascript" src"https://webapi.amap.com/maps?v1.4.15&key6b26c2c58770d13a4ecf2b96615dbaee"></script><template><div class"index"><div id"amapContain…