iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >有哪些MySQL必会的基础命令
  • 948
分享到

有哪些MySQL必会的基础命令

2024-04-02 19:04:59 948人浏览 八月长安
摘要

下文我给大家简单讲讲关于有哪些Mysql必会的基础命令,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完有哪些mysql必会的基础命令对大家多少有点帮助吧。1.1 登陆数据库。m

下文我给大家简单讲讲关于有哪些Mysql必会的基础命令,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完有哪些mysql必会的基础命令对大家多少有点帮助吧。


1.1 登陆数据库

mysql -uroot -poldboy123 -S /data/3306/mysql.sock


1.2 查看数据库版本及当前登录用户是什么。

select version();
select user();


1.3 创建GBK字符集的数据库oldboy,并查看已建库的完整语句。

create database oldboy character set gbk collate gbk_chinese_ci;
show create database oldboy\G


1.4 创建用户oldboy,使之可以管理数据库oldboy。

grant all on oldboy.* to 'oldboy'@'localhost' identified by 'oldboy123';


1.5 查看创建的用户oldboy拥有哪些权限。

show grants for oldboy@localhost\G


1.6 查看当前数据库里有哪些用户。

select user,host from mysql.user;


1.7 创建管理员帐户admin

grant all on *.* to 'admin'@'localhost' identified by 'admin123' with grant option;


1.8 进入oldboy数据库

use oldboy;


1.9 创建test表:innodb引擎,字符集为GBK,字段为id int(4)和name varchar(16),查看建表结构及SQL语句。

create table test (
id int(4),
name varchar(16)
)ENGINE=innodb DEFAULT CHARSET=gbk;

desc test; #<==等价于命令:show columns from test;
show create table test\G


1.10 插入一条数据 1,oldboy

insert into test values('1','oldboy');


1.11 批量插入数据 2,老男孩,3,etiantian。要求中文不能乱码。

insert into test values('2','老男孩'),('3','etiantian');


1.12 查询插入的所有记录,查询名字为oldboy的记录。查询id大于1的记录。

select * from test where name='oldboy';
select * from test where id>1;


1.13 把数据id等于1的名字oldboy更改为oldgirl。

update test set name='oldgirl' where id=1;


1.14 在字段name前插入age字段,类型tinyint(2)。

alter table test add name tinyint(2) after id;


1.15 备份oldboy库及mysql库。

mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock --events -B oldboy mysql >/opt/bak_$(date +%F).sql

egrep -v "#|^$|--|\/" /opt/bak_2017-06-06-13时36分37秒.sql


1.16 删除表中的所有数据,并查看。

truncate table test; #<==物理删除,一次性清空,不可以rollback
delete from test; #<==逻辑删除,一行一行的删,比较慢,可以rollback


1.17 删除表test和oldboy数据库并查看

drop table test;
drop database oldboy;


1.18 linux命令行恢复以上删除的数据。

mysql -uroot -poldboy123 -S /data/3306/mysql.sock </opt/bak_2017-06-07-22时13分20秒.sql


1.19 把GBK字符集修改为UTF8(可选,注意,此题有陷阱)。

1.先导出表中数据

mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B oldboy >/opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==可以看到这一行:ENGINE=MyISAM DEFAULT CHARSET=gbk;


2.修改字符集

sed -i 's#CHARSET=gbk#CHARSET=utf8#g' /opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==验证:) ENGINE=MyISAM DEFAULT CHARSET=utf8;


3.恢复数据

在sql文件中添加一条 set names utf8;并恢复
mysql -uroot -poldboy123 -S /data/3306/mysql.sock  oldboy </opt/test.sql



1.20 MySQL密码丢了,如何找回实战?

[root@db01 ~]# netstat -tuNLP|grep 3306 #<==先查看服务是否正常
tcp        0      0 0.0.0.0:3306            0.0.0.0:*          LISTEN      62358/mysqld
[root@db01 ~]# kill 62358 #<==kill掉进程的pid
[root@db01 ~]# netstat -tunlp|grep 3306 #<==mysql进程已关闭
[root@db01 ~]# mysqld_safe --help #<==利用mysqld_safe命令指定配置文件,跳过授权表来破密码
[root@db01 ~]# mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 >/dev/null &
[root@db01 ~]# mysql -S /data/3306/mysql.sock #<==无密码登录进多实例3306
mysql> select user,host,passWord from mysql.user where user='root' and host='localhost';
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |
+------+-----------+-------------------------------------------+
1 row in set (0.00 sec)#<==先看下mysql库,user表里的字段内容
mysql> update mysql.user set password=PASSWORD("oldboy123") where user='root' and host='localhost'; #<==利用update命令来更新root@localhost用户的密码
mysql> flush privileges; #<==记得刷新授权表,否则不会立马生效的
Query OK, 0 rows affected (0.00 sec)
[root@db01 ~]# sed -i 's#mysql_pwd="oldboy456"#mysql_pwd="oldboy123"#g' /data/3306/mysql
[root@db01 ~]# grep mysql_pwd= /data/3306/mysql #<==修改启动脚本的密码,才能利用命令来停止服务
mysql_pwd="oldboy123"
[root@db01 ~]# /data/3306/mysql stop #<==先停掉服务,因为有跳过授权表的参数在
Stoping MySQL...
[1]+  Done   mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 > /dev/null
[root@db01 ~]# /data/3306/mysql start #<==启动
Starting MySQL...
[root@db01 ~]# ss -tunlp|grep 3306 #<==侦听正常
tcp    LISTEN     0      600          *:3306        *:*      users:(("mysqld",66695,12))
[root@db01 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock #<==成功登录


1.21 MySQL内中文数据乱码的原理及如何防止乱码?(可选)。

保证以下的字符集一致即可

mysql> show VARIABLES like 'character_set%';               
+--------------------------+--------------+
| Variable_name            | Value        |
+--------------------------+--------------+
| character_set_client     | utf8         |#<==客户端字符集
| character_set_connection | utf8         |#<==客户端连接字符集,配置文件指定或建库表指定
| character_set_database   | utf8         |#<==数据库的字符集
| character_set_filesystem | binary       |#<==文件系统字符集
| character_set_results    | utf8         |#<==客户端返回结果字符集
| character_set_server     | utf8         |#<==云服务器字符集,配置文件指定或建库表指定
| character_set_system     | utf8         |#<==Linux系统的字符集
| character_sets_dir       | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.01 sec)


1.22 在把id列设置为主键,在name字段上创建普通索引

alter table test add primary key (id);
alter table test add index index_name (name);


1.23 在字段name后插入手机号字段(shouji),类型char(11)。

alter table test add shouji char(11);


1.24 所有字段上插入2条记录(自行设定数据)

insert into test val-ues('4','18','chen','15298914487'),('5','19','he','15298913929');


1.25 在手机字段上对前8个字符创建普通索引。

alter table test add index index_shouji (shouji(8));


1.26 查看创建的索引及索引类型等信息。

desc test;
show create table test\G
show index from test\G


1.27 删除name,shouji列的索引。

alter table test drop index index_name;
alter table test drop index index_shouji;


1.28 对name列的前6个字符以及手机列的前8个字符组建联合索引。

alter table test drop index index_shouji;


1.29 查询手机号以152开头的,名字为chen的记录(此记录要提前插入)。

select * from test where name='chen' and shouji like '152%';


1.30 查询上述语句的执行计划(是否使用联合索引等)。

explain select * from test where name='chen' and shouji like '152%'\G


1.31 把test表的引擎改成MyISAM。

alter table test ENGINE=MYISAM;

大家觉得有哪些MySQL必会的基础命令这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的数据库板块。 

您可能感兴趣的文档:

--结束END--

本文标题: 有哪些MySQL必会的基础命令

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL基础命令有哪些
    这篇文章主要介绍了MySQL基础命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 -- 查询用户权限s...
    99+
    2024-04-02
  • MySQL基础常用命令有哪些
    这篇文章主要为大家展示了“MySQL基础常用命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL基础常用命令有哪些”这篇文章吧。一、连接MySQL...
    99+
    2024-04-02
  • MySQL基础之常用命令有哪些
    这篇文章主要介绍MySQL基础之常用命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql命令介绍mysql 是数据库管理命令通过mysql --help来查看相关参数及...
    99+
    2024-04-02
  • Linux基础命令有哪些
    这篇文章主要讲解了“Linux基础命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令有哪些”吧!1. tail -fcat命令可以用...
    99+
    2024-04-02
  • docker的基础命令有哪些
    这篇文章主要讲解了“docker的基础命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker的基础命令有哪些”吧!1.0引入1.1docker...
    99+
    2024-04-02
  • DOS的基础命令有哪些
    本篇内容介绍了“DOS的基础命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DOS 基础命令  cd     改变当前目录     ...
    99+
    2023-06-09
  • PHP基础命令有哪些
    这篇文章主要介绍PHP基础命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!      一、名词解释:  ...
    99+
    2024-04-02
  • python基础命令有哪些
    这篇文章主要讲解了“python基础命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python基础命令有哪些”吧!常见的占位符有:%d整数%f浮点...
    99+
    2024-04-02
  • Docker有哪些基础命令
    这篇文章主要为大家展示了“Docker有哪些基础命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Docker有哪些基础命令”这篇文章吧。一:概述使用docker或者docker help 可以...
    99+
    2023-06-04
  • 有哪些DOS基础命令
    本篇内容介绍了“有哪些DOS基础命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DOS的概况DOS(Disk Operating Syst...
    99+
    2023-06-10
  • linux中有哪些基础命令
    今天就跟大家聊聊有关linux中有哪些基础命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。用who命令显示当前Linux系统的用户名 使用下列命令显示有关计算机系统信息:...
    99+
    2023-06-12
  • .NET开发必会的Linux命令有哪些
    这篇文章给大家介绍.NET开发必会的Linux命令有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编和大家分享一下Linux系统中.NET开发必会的Linux命令,下面并不是对所有的命令进行详解,具体的可以使用h...
    99+
    2023-06-28
  • Linux中基础命令有哪些
    这篇文章主要为大家展示了“Linux中基础命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中基础命令有哪些”这篇文章吧。有啥好处逼格是程序员的安身立命之本。而且实际上 Linu...
    99+
    2023-06-16
  • MongoDB中有哪些基础命令
    本篇文章为大家展示了MongoDB中有哪些基础命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、MongoDB中的三要素数据库集合文档2、MongoDB中的数据...
    99+
    2024-04-02
  • MySQL必备基础知识有哪些
    这篇文章给大家分享的是有关MySQL必备基础知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、SQL的概念    结构化查询语言...
    99+
    2024-04-02
  • MySQL数据库基础操作命令有哪些
    这篇文章给大家分享的是有关MySQL数据库基础操作命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、使用帮助信息登陆数据库就不介绍了哦,比如说想做创建的数据库的操作,不...
    99+
    2024-04-02
  • Linux系统的基础命令有哪些
    这篇文章给大家分享的是有关Linux系统的基础命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。权限问题文件夹:d开头文件:-开头r:read对应权限4(读的权限)w:write对应权限3(写的权限)x:i...
    99+
    2023-06-03
  • 基础的Linux网络命令有哪些
    今天就跟大家聊聊有关基础的Linux网络命令有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Linux 基础网络命令列表我在计算机网络课程上使用 FreeBSD,不过这些 UNI...
    99+
    2023-06-28
  • Linux网络基础命令有哪些
    这篇文章主要介绍“Linux网络基础命令有哪些”,在日常操作中,相信很多人在Linux网络基础命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux网络基础命令有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-27
  • Dos常用基础命令有哪些
    这篇文章给大家分享的是有关Dos常用基础命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、基础命令1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录已经其所有子目录的文件和文件夹。...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作