返回顶部
首页 > 资讯 > 数据库 >MySQL | 常用命令示例
  • 458
分享到

MySQL | 常用命令示例

mysqlmysql常用命令mysqldumpmysql-u 2023-08-16 18:08:47 458人浏览 安东尼
摘要

Mysql | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 mysql是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使

mysql是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用Mysql时,我们经常需要编写一些常用脚本来进行数据操作和管理。本文将介绍一些常用的MySQL脚本,帮助更好地使用MySQL。

一、启停MySQL数据库服务

  1. 启动MySQL数据库服务
systemctl start mysqld
  1. 停止MySQL数据库服务
systemctl stop mysqld
  1. MySQL数据库服务状态查看
systemctl status mysqld
  1. MySQL数据库服务开机自启
systemctl enable mysqld
  1. MySQL数据库服务禁止开机自启
systemctl disable mysqld

二、连接MySQL数据库

在使用MySQL之前,我们需要先连接到数据库。可以使用以下脚本进行连接:

  1. 使用用户名和密码连接MySQL数据库
mysql -u username -p passWord或者mysql -u username -p

其中,username为数据库用户名,password为数据库密码。

  1. 使用主机名、用户名和密码连接MySQL数据库
mysql -h 主机名 -P 端口号 -u 用户名 -p 密码或者mysql -h 主机名 -P 端口号 -u 用户名 -p 
  1. 使用数据库

连接到 MySQL 数据库后,可能有多个可以操作的数据库,可使用use 命令选择你要操作的数据库。

use 数据库名;
  1. 关闭MySQL数据库连接的SQL语句
exit;或者quit;

三、创建和管理数据库

  1. 创建数据库:使用CREATE DATABASE语句可以创建新的数据库(mydatabase),例如:
mysql> CREATE DATABASE mydatabase;Query OK, 1 row affected (0.00 sec)mysql>
  1. 删除数据库(慎用):使用DROP DATABASE语句可以删除指定的数据库(mydatabase),例如:
mysql> DROP DATABASE mydatabase;Query OK, 0 rows affected (0.01 sec)mysql> 
  1. 查看数据库:使用SHOW DATABASES语句可以列出当前所有的数据库,例如:
mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mydatabase         || mysql              || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)mysql> 
  1. 查看当前使用的数据库:
mysql> select database();+------------+| database() |+------------+| mydatabase |+------------+1 row in set (0.00 sec)mysql> 
  1. 查看当前数据库包含的表信息
mysql> show tables; +----------------------+| Tables_in_mydatabase |+----------------------+| users                |+----------------------+1 row in set (0.00 sec)mysql> 
  1. 获取表结构
mysql> desc users;+-------+-------------+------+-----+---------+----------------+| Field | Type        | Null | Key | Default | Extra          |+-------+-------------+------+-----+---------+----------------+| id    | int         | NO   | PRI | NULL    | auto_increment || name  | varchar(50) | YES  |     | NULL    |                || age   | int         | YES  |     | NULL    |                || email | varchar(50) | YES  |     | NULL    |                |+-------+-------------+------+-----+---------+----------------+4 rows in set (0.00 sec)mysql> 
  1. 查看数据库版本
mysql> select version();+-----------+| version() |+-----------+| 8.0.32    |+-----------+1 row in set (0.00 sec)mysql> 

四、创建和管理数据表

  1. 创建数据表

数据表是数据库中存储数据的主要方式。可以使用以下脚本创建一个名为users的数据表:

mysql> use mydatabaseDatabase changedmysql> mysql> CREATE TABLE users (    ->   id INT AUTO_INCREMENT PRIMARY KEY,    ->   name VARCHAR(50),    ->   age INT,    ->   email VARCHAR(50)    -> );Query OK, 0 rows affected (0.01 sec)mysql> 
  1. 插入数据

插入数据是将数据添加到数据库中的关键操作。可以使用以下脚本向users表中插入一条数据:

mysql> INSERT INTO users (name, age, email) VALUES ('John', 25, 'john@example.com');Query OK, 1 row affected (0.01 sec)mysql>
  1. 查询数据

查询数据是使用MySQL的常见操作之一。可以使用以下脚本查询users表中的所有数据:

mysql> SELECT * FROM users;+----+------+------+------------------+| id | name | age  | email            |+----+------+------+------------------+|  1 | John |   25 | john@example.com |+----+------+------+------------------+1 row in set (0.00 sec)mysql> 
  1. 更新数据

更新数据是在数据库中修改现有数据的操作。可以使用以下脚本将users表中id为1的记录的age字段更新为30:

mysql> UPDATE users SET age = 30 WHERE id = 1;Query OK, 1 row affected (0.01 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> SELECT * FROM users;+----+------+------+------------------+| id | name | age  | email            |+----+------+------+------------------+|  1 | John |   30 | john@example.com |+----+------+------+------------------+1 row in set (0.00 sec)mysql> 
  1. 删除数据

删除数据是从数据库中删除不再需要的数据的操作。可以使用以下脚本删除users表中id为1的记录:

DELETE FROM users WHERE id = 1;
  1. 排序数据:使用ORDER BY子句可以对查询结果进行排序。以下是按照年龄从小到大对"users"表中的记录进行排序的示例:
SELECT * FROM users ORDER BY age ASC;
  1. 连接表:使用JOIN语句可以将多个表连接起来进行查询。以下是连接"users"表和"orders"表,并检索用户和订单信息的示例:
SELECT users.name, orders.order_number FROM users JOIN orders ON users.id = orders.user_id;
  1. 创建索引:使用CREATE INDEX语句可以为表中的列创建索引,以提高查询效率。以下是为"users"表中的name列创建索引的示例:
CREATE INDEX idx_name ON users (name);
  1. 删除表和数据库(慎用):使用DROP TABLE语句可以删除表,使用DROP DATABASE语句可以删除数据库。以下是删除"users"表和"mydatabase"数据库的示例:
DROP TABLE users;DROP DATABASE mydatabase;
  1. 更改表名
rename table 原表名 to 新表名;mysql>  rename table users to t_users;Query OK, 0 rows affected (0.01 sec)mysql> select *  from t_users;+----+------+------+-------------------+| id | name | age  | email             |+----+------+------+-------------------+ | 1 | John |   30 | john@example.com  |2 | Tom  |   25 | tom@example.com  |3 | Zyl  |   18 | zyl@example.com+----+------+------+-------------------+3 rows in set (0.00 sec)mysql> 
  1. mysql的表中增加字段
###表t_users 中添加了一个字段address ,类型为 varchar(255)。mysql> alter table t_users add column address varchar(255);Query OK, 0 rows affected (0.01 sec)
  1. 授权
    MySQL8.0 以上将创建账户和赋予权限分开了,需要用两个语句创建账号,赋予远程权限;
###1、创建test用户create user 'test'@'%' identified by 'Test##2023';###授权所有权限grant all privileges on *.* to 'test'@'%' with grant option;###部分权限(select, insert),这个用户只能连接到数据库,并拥有select, insert权限。mysql>  grant select, insert  on  mydatabase.* to 'test'@'%' with grant option;Query OK, 0 rows affected (0.01 sec)mysql> ###验证test用户权限mysql> show grants for 'test'@'%';mysql> delete from t_users;ERROR 1142 (42000): DELETE command denied to user 'test'@'localhost' for table 't_users'mysql> ###---->该用户目前没有DELETE 的权限

五、数据备份和恢复

备份数据库:使用mysqldump命令可以备份整个数据库,例如:

mysqldump -u username -p mydatabase > backup.sql
[root@db-server ~]# mysqldump -u root -p mydatabase > backup.sqlEnter password: [root@db-server ~]# lltotal 1964180-rw-r--r--. 1 root root        2036 Jul 29 17:35 backup.sql

恢复数据库:使用mysql命令可以从备份文件中恢复数据库,例如:

mysql -u username -p mydatabase < backup.sql
###删除表数据mysql> delete from users;Query OK, 3 rows affected (0.02 sec)###恢复[root@db-server ~]# mysql -u root -p mydatabase < backup.sqlEnter password: [root@db-server ~]# ###验证mysql> select * from users;+----+------+------+-------------------+| id | name | age  | email             |+----+------+------+-------------------+ | 1 | John |   30 | john@example.com  |2 | Tom  |   25 | tom@example.com  |3 | Zyl  |   18 | zyl@example.com+----+------+------+-------------------+3 rows in set (0.00 sec)mysql> 

导出数据到csv文件:

###创建目录、赋权[root@db-server ~]# mkdir -p /path/to[root@db-server ~]# chmod -R 777 /path/to/[root@db-server ~]# cd /path/[root@db-server path]# lltotal 0drwxrwxrwx. 2 root root 6 Jul 29 17:20 to[root@db-server path]# 

配置 secure_file_priv 变量,在/etc/my.cnf文件中加入

secure_file_priv=/path/to

在这里插入图片描述

重启数据库服务:

systemctl restart mysqld

导出数据是将数据库中的数据导出到文件的操作。可以使用以下脚本将users表中的数据导出到users.csv文件中:

mysql> SELECT * INTO OUTFILE '/path/to/users.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM users;Query OK, 1 row affected (0.00 sec)mysql> 

在这里插入图片描述

从csv文件导入数据:

在这里插入图片描述

导入数据是将文件中的数据导入到数据库中的操作。可以使用以下脚本将users.csv文件中的数据导入到users表中:

mysql> LOAD DATA INFILE '/path/to/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';Query OK, 3 rows affected (0.01 sec)Records: 3  Deleted: 0  Skipped: 0  Warnings: 0mysql> 

在这里插入图片描述

导出数据到txt文件:

使用SELECT INTO OUTFILE语句可以将查询结果导出为文件,例如:

mysql> SELECT * INTO OUTFILE '/path/to/result.txt' FROM users;Query OK, 3 rows affected (0.01 sec)mysql> 

从txt文件导入导入数据:

使用LOAD DATA INFILE语句可以将数据从文件导入到表中,例如:

LOAD DATA INFILE '/path/to/result.txt' INTO TABLE users;

导出一个表:

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名[root@db-server ~]# mysqldump -u root -p mydatabase users > mydatabases_users.sqlEnter password: [root@db-server ~]# lltotal 1964184-rw-r--r--. 1 root root        2036 Jul 29 18:07 mydatabases_users.sql

导出一个数据库结构:

###参数: -d 没有数据  --add-drop-table 在每个create语句之前增加一个drop table [root@db-server ~]#  mysqldump -u root -p -d --add-drop-table mydatabase  > mydatabase-tab.sqlEnter password: [root@db-server ~]# lltotal 1964196-rw-r--r--. 1 root root        2036 Jul 29 17:35 backup.sql-rw-r--r--. 1 root root        2036 Jul 29 18:07 mydatabases_users.sql-rw-r--r--. 1 root root        1732 Jul 29 18:12 mydatabase-tab.sql

source 命令导入数据:

mysql> delete from users;Query OK, 3 rows affected (0.00 sec)####备份文件位置mysql> source /root/backup.sqlQuery OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 3 rows affected (0.01 sec)Records: 3  Duplicates: 0  Warnings: 0Query OK, 0 rows affected (0.04 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql> ###验证:mysql> select * from users;+----+------+------+-------------------+| id | name | age  | email             |+----+------+------+-------------------+ | 1 | John |   30 | john@example.com  |2 | Tom  |   25 | tom@example.com  |3 | Zyl  |   18 | zyl@example.com+----+------+------+-------------------+3 rows in set (0.00 sec)mysql> 

注意: mysqldump导出mysql数据库中某个数据库的数据,用mysqldump只要把输出符号换为输入符号。那样导入后,虽说不报错,但是数据库中是没有任何数据的!需要直接通过mysql命令来实现。

恢复数据库:使用mysql命令可以从备份文件中恢复数据库,例如:

mysql -u username -p mydatabase < backup.sql
###删除表数据mysql> delete from users;Query OK, 3 rows affected (0.02 sec)###恢复[root@db-server ~]# mysql -u root -p mydatabase < backup.sqlEnter password: [root@db-server ~]# ###验证mysql> select * from users;+----+------+------+-------------------+| id | name | age  | email             |+----+------+------+-------------------+ | 1 | John |   30 | john@example.com  |2 | Tom  |   25 | tom@example.com  |3 | Zyl  |   18 | zyl@example.com+----+------+------+-------------------+3 rows in set (0.00 sec)mysql> 

六、查询与优化

查询数据:使用SELECT语句可以从表中查询数据,例如:

mysql> SELECT * FROM users WHERE id = 1;+----+------+------+-------------------+| id | name | age  | email             |+----+------+------+-------------------+ | 1 | John |   30 | john@example.com+----+------+------+-------------------+1 row in set (0.00 sec)mysql> 

优化查询:使用EXPLaiN语句可以分析查询语句的执行计划,例如:

mysql> EXPLAIN SELECT * FROM users WHERE id = 1;+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra |+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+|  1 | SIMPLE      | users | NULL       | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 | NULL  |+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+1 row in set, 1 warning (0.00 sec)mysql> 

来源地址:https://blog.csdn.net/qq_41840843/article/details/131977052

您可能感兴趣的文档:

--结束END--

本文标题: MySQL | 常用命令示例

本文链接: https://lsjlt.com/news/371882.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL | 常用命令示例
    MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使...
    99+
    2023-08-16
    mysql mysql常用命令 mysqldump mysql -u
  • Ubuntu 常用命令50个含示例
    以下是 Ubuntu 常用命令,按照最容易忘记的命令优先,前 50 个: sudo:用于在 Ubuntu 中以管理员权限执行命令的命令。例如:以管理员权限编辑文件 /etc/hosts:sudo nano /etc/hosts。 apt...
    99+
    2023-08-31
    ubuntu linux 服务器
  • git常用命令的示例分析
    本篇文章给大家分享的是有关git常用命令的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。git能敏捷的处理任何大小的项目,因为git是一款免费、开源的分布式版本控制系统...
    99+
    2023-06-28
  • Mysql命令行登录常用操作系统的示例
    小编给大家分享一下Mysql命令行登录常用操作系统的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、从命令行登录MySQL...
    99+
    2024-04-02
  • mysql常用命令
    数据库的基本操作 通过mysql客户端进入mysql后,实际位于所有仓库之外: * 选中要操作的数据库实例 * 操作数据库实例中的表或其他实体. 注意: ";"表示一条SQL命令的结束,当命令结束后才会执行此命令 * 登陆数据库 mysq...
    99+
    2021-06-16
    mysql常用命令
  • mysql 常用命令
    查看innodb的事务表INNODB_TRX是否有正在锁定的事务线程 SELECT * FROM information_schema.INNODB_TRX; 如果ID存在于show full...
    99+
    2024-04-02
  • MySQL命令的示例分析
    小编给大家分享一下MySQL命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL的基本操作可以包括两个方面:M...
    99+
    2024-04-02
  • mysql常用命令-实例-史上最全
    MySQL命令大全(2018.11.22阿星归档) mysql登录MySQL方法1.单实例MySQL登录的方法mysql    #刚装完系统无密码情况登录方...
    99+
    2024-04-02
  • Redis | Redis常用命令及示例总结(API)
    目录前言1. Key(键)1.1 键的基本操作功能del move sort rename renamenx migrate1.2 键的获取功能type exists randomkey keys1.3 生存时间的功能expire pex...
    99+
    2018-03-01
    Redis | Redis常用命令及示例总结(API)
  • MySQL常用命令.md
    链接数据库 ## -h/-u这些后面没有空格 ./bin/mysql -h[ip地址] -P[端口号] -u[用户名] -p[密码] 查看建表语句 show create table [table_name] 列出所有的数据库 s...
    99+
    2018-11-04
    MySQL常用命令.md
  • MySQL - 常用的命令
    当涉及到具体的数据库操作时,我会给出实际的示例,以更清楚地说明每个命令的用法。 创建数据库: CREATE DATABASE students; 列出数据库: SHOW DATABASES; 使用数据库: USE students; 创建表...
    99+
    2023-08-16
    mysql 数据库
  • Linux命令之lz4命令使用示例
    目录一、lz4命令简介二、命令使用示例1、查看命令版本2、获取命令帮助3、命令安装4、压缩单个文件5、压缩多个文件6、压缩目录7、压缩后删除源文件8、解压lz4文件9、解压并删除压缩文件10、高压缩比方式压缩11、压缩并...
    99+
    2023-03-15
    Linuxlz4命令 Linuxlz4命令使用 Linuxlz4命令用法
  • MySQL命令行下18个常用命令
    在日常的网站维护和管理中,会用到非常多的SQL语句, 熟练使用对网站管理有很多好处,尤其是站群管理的时候。 下面列一些常用的命令做备记。 1、显示数据库 show databases 显示表 show...
    99+
    2024-04-02
  • mysql命令行常用命令有哪些
    这篇文章将为大家详细讲解有关mysql命令行常用命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 MySql地址:www.mysql.org 第一招、mysq...
    99+
    2024-04-02
  • MySQL 8.0.18命令的示例分析
    小编给大家分享一下MySQL 8.0.18命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开刚刚解压的文件夹 C:...
    99+
    2024-04-02
  • 常用的Docker命令及示例汇总分析
    目录1、容器生命周期管理(1)docker run(2)start/stop/restart(3)docker kill(4)docker rm(5)pause/unpause(6)...
    99+
    2024-04-02
  • Linuxnano命令使用示例
    目录一、nano命令简介二、nano命令使用示例1、命令安装2、查看命令版本3、获取命令帮助4、编辑一个文件5、不自动换行编辑6、搜索字符串7、往编辑文件中插入1个文件8、其他快捷键...
    99+
    2023-03-15
    Linux nano命令 Linux nano命令用法
  • Linuxchown命令使用示例
    目录一、命令简介二、使用示例1、获取命令帮助2、查看命令版本3、修改文件所有者和属组4、递归修改整个目录属主属组5、修改链接属主属组6、修改属组,属主保留7、显示修改信息8、L和H参...
    99+
    2023-03-15
    Linux chown命令 Linux chown命令用法
  • Linuxnc命令使用示例
    目录一、命令简介二、使用示例1、验证服务器端口是否通2、拷贝文件3、终端之间通信聊天4、端口扫描5、验证UDP端口6、测速网速三、使用语法及参数说明1、使用语法2、参数说明一、命令简...
    99+
    2023-03-15
    Linux nc命令 Linux nc命令用法
  • Linuxtouch命令使用示例
    目录一、touch命令简介二、使用示例1、获取命令帮助2、查看命令版本3、创建一个空文件4、更新atime、mtime、ctime5、-a更新atime和ctime6、-m参数修改m...
    99+
    2023-03-15
    Linux touch命令 Linux touch命令用法 Linux touch命令使用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作