第03章 MySQL的简单使用命令

一、MySQL的登录

1.1 服务的启动与停止

MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库。 在前面的配置过程中,已经将MySQL安装为Windows服务,并且勾选当Windows启动、停止时,MySQL也 自动启动、停止。

方式一:使用图形界面工具

步骤1:打开windows服务

方式1:计算机(点击鼠标右键)→ 管理(点击)→ 服务和应用程序(点击)→ 服务(点 击)

方式2:控制面板(点击)→ 系统和安全(点击)→ 管理工具(点击)→ 服务(点击)

方式3:任务栏(点击鼠标右键)→ 启动任务管理器(点击)→ 服务(点击)

方式4:单击【开始】菜单,在搜索框中输入"services.msc",按Enter键确认

步骤2:找到MySQL80(点击鼠标右键)→ 启动或停止(点击)

方式2:使用命令行工具

|------------------------------------------------------------------------|
| # 启动 MySQL 服务命令: net start MySQL服务名 # 停止 MySQL 服务命令: net stop MySQL服务名 |

说明:

1、start和stop后面的服务名应与之前配置时指定的服务名一致。

  1. 如果当你输入命令后,提示"拒绝服务",请以 系统管理员身份 打开命令提示符界面重新尝试。

1.2 自带客户端的登录与退出

当MySQL服务启动完成后,便可以通过客户端来登录MySQL数据库。注意:确认服务是开启的。

登录方式1:MySQL自带客户端

开始菜单 → 所有程序 → MySQL → MySQL 8.0 Command Line Client

|---------------|
| 注意:仅限于root用户。 |

登录方式2:Windows命令行

格式:

|-------------------------------------------------------------------------------------|
| mysql -h 主机名 -P 端口号 -u 用户名 -p密码 #注意:参数和值之间的空格可省略。"-p密码"是明文显示密码,直接-p之后回车则能够密文输入。 |

举例:

|---------------------------------------------|
| mysql -h localhost -P 3306 -u root -pabc123 |

注意:

(1)-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格。如:

|------------------------------------------|
| mysql -hlocalhost -P3306 -uroot -pabc123 |

(2)密码建议在下一行输入,保证安全

|---------------------------------------------------------------|
| mysql -h localhost -P 3306 -u root -p Enter password:**** |

(3)客户端和服务器在同一台机器上,所以输入localhost或者IP地址127.0.0.1。同时,因为是连接本 机: -hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略。可以简写为:

|------------------------------------------|
| mysql -u root -p Enter password:**** |

连接成功后,有关于MySQL Server服务版本的信息,还有第几次连接的id标识。

也可以在命令行通过以下l两种方式获取MySQL Server服务版本的信息:

|----------------------------------------------------------------------------------------|
| 方式一 c:\> mysql -V 方式二 c:\> mysql --version 方式三 mysql> select version(); 登录后使用的方式。 |

退出登录mysql

|-------------|
| exit 或 quit |

二、MySQL演示使用

2.1 MySQL的使用演示

2.1.1 查看所有的数据库

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 命令:show databases; * "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.1.2 创建自己的数据库

|------------------------------------------------------------------------------------------|
| 命令:create database 数据库名; 举例:#创建atguigudb数据库,该名称不能与已经存在的数据库重名。 create database atguigudb; |

2.1.3 使用自己的数据库

|------------------------------------------------|
| 命令:use 数据库名; 举例:#使用atguigudb数据库 use atguigudb; |

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

2.1.4 查看某个库的所有表格

|-------------------------------------------------------------------|
| 命令方式一:show tables; #要求前面有use语句使用了某个库 命令方式二:show tables from 数据库名; |

2.1.5 创建新的表格

|-----------------------------------------|
| create table 表名称( 字段名 数据类型, 字段名 数据类型 ); |

说明:如果是最后一个字段,后面就不用加逗号,因为逗号的作用是分割每个字段。

举例:

|-------------------------------------------------------------------------|
| #创建学生表 create table student( id int, name varchar(20) #说名字最长不超过20个字符 ); |

2.1.6 查看一个表的数据

|----------------------------------------------------------------|
| 命令:select * from 数据库表名称; 举例:#查看学生表的数据 select * from student; |

2.1.7 添加一条记录

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

报错:字符集问题

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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 mysql> show create table student; #查看表的创建信息 |

2.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"不支持中文。

2.1.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。(8.0的默认字符集是utf-8已经支持中文)

2.1.10 删除表格

|-------------------------------------------------|
| 命令:drop table 表名称; 举例:删除学生表 drop table student; |

2.1.11 删除数据库

|--------------------------------------------------------------------|
| 命令:drop database 数据库名; 举例:#删除atguigudb数据库 drop database atguigudb; |

2.2 MySQL的编码设置

2.2.1 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 |

问题解决:

步骤一:查看编码命令

|----------------------------------------------------------------------------------------|
| show variables like 'character_%'; #查看字符集 show variables like 'collation_%'; #查看字符比较规则 |

步骤二:修改mysql的数据目录(data)下的my.ini配置文件

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

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

步骤三:重启服务

步骤四(同步骤一):查看编码命令

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

2.2.2 MySQL8.0

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计 的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0 开始,数据库的默认编码改为 utf8mb4 ,从而避免了上述的乱码问题。

相关推荐
floret*10 分钟前
在 hiveSQL 中判断一个字段是否包含某个值
前端·javascript·数据库
冰红茶兑滴水29 分钟前
MySQL 数据库之库操作
数据库·mysql
从未完美过1 小时前
ClickHouse集成Mysql表引擎跨服务器读表说明
服务器·mysql·clickhouse
Fireworkitte1 小时前
MongoDB
数据库·mongodb
来一杯龙舌兰2 小时前
【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)
数据库·mongodb·mapreduce·索引·aggregate·pipline
爱吃烤鸡翅的酸菜鱼3 小时前
MySQL初学之旅(1)配置与基础操作
java·数据库·mysql·database
三日看尽长安花5 小时前
【分布式数据库】
数据库·分布式
hummhumm6 小时前
Oracle 第22章:数据仓库与OLAP
java·javascript·后端·python·sql·mysql·database
一 乐10 小时前
家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
java·数据库·小程序·家庭点餐小程序·家庭家常菜点餐
小小不董10 小时前
Oracle OCP认证考试考点详解082系列08
linux·运维·服务器·数据库·oracle·dba