MySQL 常用命令一览(万字好文)

一、使用 mysql

下载链接:
链接:https://pan.xunlei.com/s/VMNHMWaZ-bLa5HltrBnjRPdVA1
提取码:v8rh

1.1 登录登出 mysql

默认登录:mysql -uroot -p ,然后输入密码登录即可
在这里插入图片描述
查看版本信息:mysql -V
在这里插入图片描述

1.2 mysql 退出

有三种退出方法

sql>exit;
sql>quit;
sql>\q

1.3 mysql 登录常用参数

在这里插入图片描述

1.4 mysql 命令提示符修改

当我们登录进 mysql 的时候,可以看到如下信息 mysql> ....
在这里插入图片描述

但是如何修改提示符呢?有两种方式

  1. 在链接客户端的时候通过参数指定
mysql -uroot -proot --prompt 提示符 
  1. 连接上客户端后,通过 prompt 改变
mysql> propmt 提示符

提示符的参数
在这里插入图片描述
接下来把提示符修改为:用户名 + @ + 主机名 + 数据库的形式

prompt '\u@\h \d>'

在这里插入图片描述
补充:这里显示的 none 是因为我们刚登陆,没有指定是使用哪个数据库,所以会显示 none

因此我们可以使用如下命令选择指定数据库

show databases; --这句话的意思是 展示当前系统有哪些数据库可以用

use bank; -- 使用 bank 数据库

在这里插入图片描述

1.6 mysql 常用命令

数据类型代表
mysql -uroot -proot -P3306 -h127.0.0.1 (mysql -uroot -p [常用命令])数据库连接命令 (可以连接指定服务器的数据库)
select version()显示当前服务器版本
select now()显示当前日期时间
select user()显示当前用户
show databases;显示当前的数据库
show tables [from db_name] [like ‘pattern’where expr]
show columns from tb1_name查看表结构
use tb_name使用数据库
select database()显示当前使用的数据库
create database tb_name创建一个数据库
drop database tb_name删除数据库
set names gbk(utf-8)解决编码格式,解决现实乱码问题

1.7 数据库用户及权限

1.7.1 用户
  1. 创建用户
create user username@'host' identified by "password"

eg:
create user happy@"localhost" identified by "happy"
  1. 用户授权 与 收回权限
    权限分为系统权限 和 数据对象权限

系统权限:

  • connect
  • resource
  • DBA

数据对象权限

  • all
  • select
  • update
  • alter
  • insert
  • delete

收回权限

  • revoke
grant permission on database tables to user@'host'

grant connect,resource to 用户名

grant select on 数据库 表 to 用户

# 收回权限
revoke connect,xxx from 用户名

revoke select on 表名 from 用户名

1.8 mysql8 修改为原始登录密码


mysql8密码修改
alter user 'team01'@localhost IDENTIFIED WITH mysql_native_password by '123456';

二、数据库表操作

2.1 数据类型整理

整形
在这里插入图片描述

浮点数:
在这里插入图片描述

日期和时间型
在这里插入图片描述

字符类型:
在这里插入图片描述

2.2 常见数据表操作

2.2.1 DDL 数据库定义语言
  1. create 数据库(表)创建语言
  2. alter 数据库(表)修改语言
  3. drop、delete 数据库(表)删除语言
创建数据表 create

基本语法:

create table [if not exists] table_name(
	column_name data_type,
	.....
);

-- eg  创建一个用户表
create table user(
	username varchar(20),
	age tinyint(3) unsigned, -- 短整型 unsigned 表示无符号,也就是默认大于 0
	salary float(8,2) unsigned
);

表约束系列 —— 和 oracle 的一致

修改数据表 alter
【1】 修改表结构
  1. 增加数据表的列
alter table tb_name add [column] (col_name col_data_tyoe + 约束条件) 
  1. 删除数据表的列
alter table tb_name drop [column] col_name;
  1. 修改数据表
alter table tb_name modify [column] col_name col_definition[约束类型] [first] ;

-- 修改列名称
alter table tb_name change old_name new_name col_definition;
  1. 数据表更名

不建议随意修改数据列和数据表的名称

--一、方式一
alter table rename [to|as] new_tb_name;

-- 二、方式二
rename table tb_name to new_tb_name [, tb_name1 to tb_new_name1]
【2】 修改表约束
  1. 增加约束
alter table tb_name add 关键字 data_type 约束条件;

-- 给余数增加名字,以主键约束为例
alter table tb_name add [constraint] pk_users2_id primary key (id);

alter table tb_name add unique key (username); -- 简写
  1. 删除约束
-- 删除主键约束
alter table tb_name drop primary key;

-- 删除唯一约束
alter table tb_name drop {index | key } index_name;

-- 删除外键约束
alter table tb_name drop foreign key 外键约束名;
【3】其他实用技巧

重新设置编号初始值

alter table 表名 auto_increment=1;
删除表,数据库和记录
  1. 删除表 (表和数据都会删除,一定要谨慎)
drop table 表名;

drop table if exists 表名;-- 存在即删除
  1. 删除所有记录 (不删除表自身,只删除表中记录的方法)删除所有数据
delete from 表名;

DDL 语句会隐式提交,不能 rollback

2.2.2 DML 数据库操作语言
  1. 插入数据 insert
  2. 更新数据 update
  3. 删除数据 delete

插入数据

-- col_name 和 val 的数量要一一对应
insert [into] tb_name (col_name,...) values (val1,---);

-- 插入方式 一 (tb_name 里面的字段有几个,值就对应几个)
insert into tb_name(字段一,字段二,....) values (值1,值2..-- 简化版 (不写字段,直接加 values,这里你必须插入表中所有的字段)
insert into tb_name values(字段1,字段2,字段3); -- 这样写的话,必须包含所有的字段,不然数据库会不匹配

-- eg Student 有 name 和 age
insert into student(name,age) values("xxx",18);
insert into student values("xxx",10);

更新数据

update tb_name set 字段名 = 'xxx'; -- 修改这列的所有数据

update tb_name set 字段名 = 'xxxx' where xxx; -- 修改指定列的数据

删除数据

delete from tb_name where xxxx; -- 删除指定数据
2.2.3 DQL 数据库查询语言

查询语法:
select
简单查询

select * from tb_name; --查询某表的所有数据

select col_name1,col_name2 .... from tb_name; -- 查询字段指定列数据

-- 给查询字段取别名
select col_name1 as xxx from tb_name; -- 给查询的字段的列使用别名替代

字段过滤查询

-- where
select * from tb_name where id%2 = 0; -- 查询偶数列的数据

-- group by 分组查询 (分组查询一般在多表中查询使用的比较多) 
-- 分组条件 having

字段排序

order by 字段名 asc升序,desc 降序

在这里插入图片描述

分页查询

select * from tb_name limit 2; -- 得到两条记录

select * from tb_name limit 3,2; -- 从第三条记录开始,查询两条记录

2.3 高级用法

2.3.1 表复制(结构 | 数据)

在这里插入图片描述

复制表结构和数据

create table tb1A select * from tb1;
create table tb1B select * from tb2;

复制表的列结构

create table 新表名 like 元素名;

复制其他表的记录

insert into 表名 select * from 元素名;

选择一列进行复制

insert into tb1_emp(name) select emp_name from tb_emp; -- 注意参数类型,长度问题
2.3.4 创建索引

当数据库中的数据的数据量过大时,查询效率就会变得非常非常的低,在这种情况下,我们可以在表上建立索引(index)

索引类型:

  1. 主键索引 (primary key)
  2. 唯一索引 (unique)
  3. 普通索引
  4. 普通组合索引

如果事先建立了索引,查询就不会对全表进行扫描,而是利用索引扫描,这样可以减少查询时间。

我们常见创建的主键就是一种索引,它会随着主键的创建而创建

-- 创建普通索引
create index 索引名 on 表名 (列名);

-- 创建普通组合索引
create index 索引名 on 表名 (列名1,列明2,列名3...);

-- 格式化显示索引
show index from 表名 \G;

-- 删除索引
drop index 索引名 from 表名;

索引的创建是影响整个数据库处理效率的重要问题,我们把这种提高效率的策略称为调优(tuning

索引的使用原则:

  1. 索引的创建为 where 子句 或连接子句构成的列
  2. 基数小的列,索引效果较差,没必要为此创建索引
  3. 使用短索引,字符串列需要截取前面一部分的长度
  4. 不要为了使用索引而使用索引

三、mysql 内置函数使用

3.1 字符函数

在这里插入图片描述
在这里插入图片描述

  1. concat 字符连接函数
    在这里插入图片描述

  2. 格式化 format
    在这里插入图片描述

  3. 字符小写 lower()
    在这里插入图片描述

  4. 字符全部大写
    在这里插入图片描述

  5. 字符串截取 left right
    在这里插入图片描述

  6. 获取字符串长度
    在这里插入图片描述

  7. 删除字符串中的空格 trim
    在这里插入图片描述
    删除指定字符
    在这里插入图片描述

  8. 替换 replace (还可以一换多)
    在这里插入图片描述

  9. 字符串截取
    mysql 截取的下标从 1开始在这里插入图片描述截取所有字符串
    在这里插入图片描述
    在这里插入图片描述

  10. 模糊查询 like
    % 代表任意字符
    _ 代表一个字符
    在这里插入图片描述

在这里插入图片描述

3.2 数值运算符和函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 比较运算与函数

between xxx and xxx 在 范围内
[not] in() 一系列数值之内
is [not] null 是否为空

在这里插入图片描述

3.4 日期和和函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5 信息函数

在这里插入图片描述

3.6 聚合函数

在这里插入图片描述

3.7 加密函数

在这里插入图片描述
在这里插入图片描述

四、mysql 自定义函数

自定义函数须有两个必要条件

  1. 参数
  2. 返回值

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用 select fi() 就可以看到结果了

如果是这样的,那就是 unicode 编码问题,我们需要改变数据库的编码方式
在这里插入图片描述

五、mysql 优化

5.1 优化查询的方式

  1. SQL 中 FROM 子句中的表名,执行顺序上最先处理的表叫基表
  2. 在 FROM 子句中包含多个表,选择记录条数最少的表作为基础表
  3. 3个以上的表连接查询,选择交叉表作为基础表

使用 exists 代替 in

exists 只有 true 或 false,而 in 会做全扫描

5.2 其他

  1. 建表和索引
  2. sql优化
  3. 做模块开发使用存储过程
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: MySQL常用命令速查表PDF是一份非常好的MySQL命令学习资料,可以帮助初学者更快地掌握MySQL的常用操作。该速查表包含了MySQL数据库中最常用的命令和操作,包括创建和删除数据库、创建和删除表、插入和更新数据、查询数据等等,对于MySQL的初学者来说是非常有帮助的。 通过使用MySQL常用命令速查表PDF,学习者可以直观地了解MySQL数据库的各种命令和操作,快速上手MySQL,熟练运用各种命令和操作,进而能够更好地进行MySQL数据库的管理和开发工作。比如,当你需要创建一个新的数据库时,只需查找速查表上的“CREATE DATABASE”命令,按照其格式进行输入并执行即可。 MySQL常用命令速查表PDF的另一个优点是其简洁,由于该速查表只包含了MySQL最常用的命令和操作,因此学习者可以快速理解和掌握这些命令和操作,提高学习效率。同时,该速查表还提供了MySQL的一些特殊命令以及常见问题的解决方案,方便学习者在使用MySQL时能够更好地应对各种情况和问题。 总之,MySQL常用命令速查表PDF是一份非常实用的MySQL学习资料,可以帮助初学者快速掌握MySQL数据库的常用命令和操作,提高工作效率。同时,这也是一份很好的MySQL备忘录,方便在日常使用中查阅。 ### 回答2: MySQL常用命令速查表PDF是一个提供MySQL用户进行快速参考的命令表。MySQL是一个流行的开源数据库管理系统,用于存储和检索数据。在使用MySQL过程中,用户需要掌握一些基本的命令来管理和操作数据库。 MySQL常用命令速查表PDF包含了广泛的命令,从创建数据库、表格到数据的插入、更新,再到删除和查询等。使用这些命令能够使用户在处理MySQL时更加高效。 MySQL常用命令包含众多词语,每个命令都有其自己特殊的作用。例如,在创建表格时,用户需要使用CREATE TABLE命令,然后指定表格的名称、列数以及数据类型。另一个例子是SELECT命令,用于检索表格中的数据,使用该命令时需要指定需要检索的列名称、表格名称以及其他过滤条件。 除了基本命令之外,MySQL常用命令速查表PDF还包含一些高级命令,如外键、视图和函数等。这些高级命令可以帮助用户更好地管理和组织数据,使其更具智能化、自动化与可控性。 总而言之,MySQL常用命令速查表PDF适用于MySQL用户快速参考,并提供一些高级命令供用户学习。一旦用户能够熟练运用这些命令,就可以更快地管理和操作数据库。 ### 回答3: MySQL是一种开源的关系型数据库管理系统,它广泛应用于互联网、企业信息化系统和科学研究领域。而作为数据库管理系统,MySQL的命令行操作也是非常重要的,对于开发人员和数据库管理员来说,必须熟练掌握MySQL常用命令,才能高效地完成数据库管理任务。 针对MySQL命令行操作的需求,我们可以在网上轻松地找到相关速查表。其中,mysql常用命令速查表pdf就是一份非常实用的参考资料,里面介绍了MySQL常用命令及其参数,涵盖了MySQL的基本操作、数据查询、表管理、用户权限、备份恢复等方面。 使用mysql常用命令速查表pdf,我们可以快速地查找所需的命令,同时也了解到每个命令的用法、参数以及示例。这可以帮助我们节省大量的时间,提高数据库管理效率。另外,由于PDF文档具有兼容性和可读性好的优点,不受操作系统和应用软件的限制,可供各种设备和平台使用,也使得mysql常用命令速查表pdf更具备实用性和普及性。 总之,mysql常用命令速查表pdf是一份非常有价值的MySQL指令参考资料,无论对于初学者还是经验丰富的开发人员和数据库管理员,都是非常有用的工具,值得收藏和分享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gorit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值