Mysql的SQL语句实例

一.权限表

1.user表

User表是MySQL中最重要的一个权限表,记录允许连接到服务器的帐号信息,里面的权限是全局级的。

2.db表和host表

db表和host表是MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上数据库级操作权限做更细致地控制。

二.账户管理

1.登录和退出mysql服务器

(1)使用root用户登录到本地mysql服务器的test库中

mysql -u root -p -h localhost test

2.新建普通用户

(1)使用create user  或 grant语句 ,用户名是zhangsan,密码是pwd123,主机名是localhost

create user 'zhangsan'@'localhost'  indentified by  'pwd123' ;

使用grant语句创建一个新用户lisi,密码为123456,用户zhangsan对所有的数据有查询和更新的权限,并授予所有数据表的select和updatae权限

grant   select , update   on  *.*  to  'lisi'@'localhost'  indentified  by  '123456' ;

select  host , user , select_priv , update_priv , from mysql.user  where  user='lisi';

(2)直接操作mysql授权表

使用insert创建一个新账户,用户名称为zhangsan01,主机名称为localhost,密码为123456

insert  into  user(host,user,password) values(‘localhost’,‘zhangsan01’,password(‘123456’))

3.删除普通用户

(1)使用drop  user语句删除用户

drop user  ‘zhangsan’@‘localhost’;

(2)使用delete语句删除用户

delete  from  mysql.user  where  host='localhost'  and  user='zhangsan01'

4.root用户修改自己的密码

(1)使用mysqladmin命令在命令行指定新密码

mysqladmin  -uroot  root  -p  password  '123456'

(2)修改mysql数据库的user表,使用update

update  mysql.user  set  password=password(‘123456’)

where  user=‘root’  and  host=‘localhost’;

(3)使用set语句修改root的密码

set  password=password(‘123456’)

5.root用户修改普通用户的密码

(1)使用update

update   mysql.user  set  password=password(‘123456’).

where  user=‘zhangsan’  and  host=‘localhost’

(2)使用set语句修改普通用户密码

set  password  for  ‘zhangsan’@‘localhost’=password(‘123456’)

(3)使用grant修改普通用户密码

grant  user  on  *.*  to  'zhangsan01'@'localhost'  indentified  by  '123456';

6.普通用户修改密码

通过set语句来设置自己的密码

set  password  =  password(‘123456’)

7.root用户密码丢失的解决方法

(1)使用--skip-grant-tables选项启动MySQL服务

mysql  start-mysqld    --skip-grant-tables

(2)使用root用户登录和重新设置密码

mysql  -uroot

update  mysql.user  set  password=password('123456')  where  user='root'  and  host='localhost';

(3)加载权限表

flush   privileges;

三.权限管理

1:MySQL的各种权限

账户权限信息被存储在mysql数据库的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL启动时,服务器将这些数据库表内容读入内存。

2:授权

使用GRANT语句创建一个新的用户zhangsan,密码为“pwd123”。用户zhangsan对所有的数据有查询、插入权限,并授于GRANT权限。GRANT语句及其执行结果如下

grant  select , insert  on  *.*  to  'zhangsan'@‘localhost’  indentified  by  ‘123456’ 

授权成功之后使用SELECT语句查询用户zhangsan01的权限:

select  host,user,select_priv,insert_priv,grant_priv   from  mysql.user  where  user='zhangsan';

3.收回授权

使用REVOKE语句取消用户testUser的更新权限。REVOKE语句及其执行结果如下:

revoke  update  on  *.*  from  'zhangsan'@'localhost';

执行成功后,使用select语句查询用户的权限

select  host,user,Select_priv,Update_priv,Grant_priv  from   mysql.user  where  user=‘zhangsan’

4.查看权限

show  grants  for  'zhangsan'@'localhodt';

四.mysql的进阶查询

1.创建测试数据库和表

create database auth;

use auth

create table t1(id int(10), name char(20),level int(10));

insert into t1 value(10,'sagou',42);

insert into t1 value(8,'senoku',45);

insert into t1 value(15,'useless',47);

insert into t1 value(27,'guess',52);

insert into t1 value(199,'useless',48);

insert into t1 value(272,'Theshy',36);

insert into t1 value(298,'leslieF',40);

insert into t1 value(30,'shirley',58);

insert into t1 value(190,'zhangsan',48);

insert into t1 value(271,'lisi',52);

insert into t1 value(299,'wangwu',52);

insert into t1 value(31,'zhaoliu',58);

create table t2(id int(10), name char(20),level int(10));

insert into t2 value(10,'sagou',42);

insert into t2 value(8,'senoku',45);

insert into t2 value(15,'useless',47);

insert into t2 value(27,'guess',52);

insert into t2 value(199,'useless',48);

insert into t2 value(272,'Theshy',36);

insert into t2 value(298,'leslieF',40);

insert into t2 value(30,'shirley',58);

insert into t2 value(190,'zhangsan',48);

insert into t2 value(271,'lisi',52);

insert into t2 value(299,'wangwu',52);

insert into t2 value(31,'zhaoliu',58);

2.常用查询介绍

(1)按关键字排序

执行以下操作可查询等级大于等于 45 级的用户,并按降序进行排序

mysql> select id,name,level from t1 where level>=45 order by level desc;

执行以下操作可查询等级在 45 级及以上的用户,并以 level降序排列和 id 降序排列

mysql> select id,name,level from t1 where level>=45 order by level desc, id desc;

Ø ORDER BY A,B desc A 用升序,B 用降序;

Ø ORDER BY A asc,B desc A 用升序,B 用降序;

Ø ORDER BY A desc,B desc A 用降序,B 用降序;

(2)对结果进行分组

GROUP BY 除了配合聚合函数一起使用外,还可以引入 WHERE 子句。首先通过WHERE 过滤掉一部分不符合需求的查询结果,然后再对结果进行分组。如果有排序的需求,也可以引入 ORDER BY 语句。

执行以下操作即可统计等级在 45 级及以上,以等级为分组,每个等级有多少人

mysql> select count(name),level from t1 where level>=45 group by level;

【例2】GROUP BY 结合 ORDER BY 即可实现分组并排序的查询。

查询等级在 45 级及以上,按等级进行分组,并将每个等级的人数按降序排序,具体操作如下所示

mysql> select count(name),level from t1 where level>=45 group by level order by count(name) desc;

(3)限制结果条目

在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录。有时候仅需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句

执行以下操作即可查询表的前 3 个用户的信息

mysql> select id,name,level from t1 limit 3;

将查询记录按等级 level 降序排列,只取前三条记录

mysql> select id,name,level from t1 order by level desc limit 3;

执行以下操作即可从第 3 条记录开始显示之后的 3 条数据

mysql> select id,name,level from t1 limit 2,3;

(4)设置别门

在统计表内所有记录共有多少条时,使用 count*),这么写不便于识别,可以将其别名设置为 number

mysql> select count(*) as number from t1;

mysql>select count(*) number from t1;

执行以下操作即可实现用一条 SQL语句完成在创建表 t3 的时候将 t1 表内的数据写入 t3表。

mysql> create table t3 as select * from t1;

mysql>select count(*) from t3;

(5)通配符

通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务

Ø %:百分号表示零个、一个或多个字符

Ø _:下划线表示单个字符

查询 t1 表内 name 字段分别以 s 开头的名字、以 s 结尾的名字和名字中间包含 es 的字段,具体操作如下所示

name 字段以 s 开头的记录

mysql> select id,name,level from t1 where name like 's%';

name 字段以 s 结尾的记录

mysql> select id,name,level from t1 where name like '%s';

name 字段中间含 es 的记录

mysql> select id,name,level from t1 where name like '%es%';

替换开头的一个字符

mysql> select id,name,level from t1 where name like '_uess';

替换结尾的四个字符(注意:后面是四个下划线)

mysql> select id,name,level from t1 where name like 'use____';

替换中间的一个字符

mysql> select id,name,level from t1 where name like 'shi_ley';

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

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

相关文章

mysql8.0其他数据库日志

概述 我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。 对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息&#xff…

基于STM32的智能家用电力管理系统

目录 引言环境准备智能家用电力管理系统基础代码实现:实现智能家用电力管理系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:电力管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家用电力管理系统通…

【漏洞复现】I doc view——任意文件读取

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 I doc view 在线文档预览是一个用于查看、编辑、管理文档的工具…

JS(JavaScript)事件处理(事件绑定)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

心理辅导平台系统

摘 要 中文本论文基于Java Web技术设计与实现了一个心理辅导平台。通过对国内外心理辅导平台发展现状的调研,本文分析了心理辅导平台的背景与意义,并提出了论文研究内容与创新点。在相关技术介绍部分,对Java Web、SpringBoot、B/S架构、MVC模…

element 表格嵌套表单验证指定行

elementui表格嵌套动态表单&#xff0c;单独验证某一行输入项是否符合校验规则&#xff1b; input动态绑定校验 :prop"imgTable. scope.$index .bxName" <el-form :model"formTable" ref"formTable" inline size"small"><…

STM32_实现双线程控制LED交替闪烁(UCOS)

线程定义函数 void OSTaskCreate (OS_TCB *p_tcb,CPU_CHAR *p_name,OS_TASK_PTR p_task,void *p_arg,OS_PRIO prio,CPU_STK *p_stk_base,CPU_STK_SIZE stk_limit,CPU_STK_SIZE stk_size,OS_MSG_QTY q_size,OS_TICK time…

云顶之弈数据网站

摘要&#xff1a;随着云顶之弈游戏的广泛流行&#xff0c;玩家对于游戏数据的查询和最新资讯的获取需求呈现出显著增长的趋势。设计一款云顶之弈数据网站&#xff0c;为玩家提供便捷、高效的数据查询和资讯浏览服务&#xff0c;能满足玩家对于游戏数据的快速查询和实时资讯获取…

C# 如何单纯的优化循环

Parallel.For(0, 10000, i >{// 并行执行的代码块// 例如: Console.WriteLine(i);}); 这种循环比 单纯常用的for 和 foreach 要稍微快一点 但是呢如果循环里面写的是非常简单的业务逻辑 的话 for和foreach 要更胜一筹一点 Parallel 原理就好像我一个人忙不过来可以多找几个…

已解决java.security.acl.LastOwnerException:无法移除最后一个所有者的正确解决方法,亲测有效!!!

已解决java.security.acl.LastOwnerException&#xff1a;无法移除最后一个所有者的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 1. 检查当前所有者数量 2. 添加新的所有者 3. 维…

在区块链技术广泛应用的情况下,C 语言如何在区块链的底层开发中发挥更有效的作用,提高性能和安全性?

C语言在区块链底层开发中发挥着重要的作用&#xff0c;可以提高性能和安全性。具体可以从以下几个方面进行优化&#xff1a; 性能优化&#xff1a;C语言是一种高效的编程语言&#xff0c;可以直接访问内存和硬件资源。在区块链底层开发中&#xff0c;使用C语言可以更好地利用底…

ubuntu20.04 docker启动frp服务端

1. docker-compose.yml version: 3.8services:frps:image: snowdreamtech/frps:0.46.0container_name: frpsrestart: alwaysnetwork_mode: hostvolumes:- /root/application/docker/frp/frps.ini:/etc/frp/frps.ini分局实际情况修改挂载目录 2. frps.ini [common] # 监听端口…

【C语言】--数据类型和变量

&#x1f617;个人主页: 起名字真南 &#x1f619;个人专栏:【数据结构初阶】 【C语言】 目录 1 数据类型介绍1.1 字符型1.2 整形1.3 浮点型1.4 布尔型1.5 各种数据类型的长度1.5.1 sizeof 操作符1.5.2 数据类型长度1.5.3 sizeof 中表达式不计算 2 signed 和 unsigned3 数据类型…

1978Springboot在线维修预约服务应用系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot在线维修预约服务应用系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发 &#xff09;&#xff0c;系统具有完整的源代码和…

“Hello, World!“ 历史由来

布莱恩W.克尼汉&#xff08;Brian W. Kernighan&#xff09;—— Unix 和 C 语言背后的巨人 布莱恩W.克尼汉在 1942 年出生在加拿大多伦多&#xff0c;他在普林斯顿大学取得了电气工程的博士学位&#xff0c;2000 年之后取得普林斯顿大学计算机科学的教授教职。 1973 年&#…

解释如何在使用Bitmap时进行优化,以减少内存占用和提高性能

技术难点 在使用Bitmap时&#xff0c;优化内存占用和提高性能是一个重要的技术挑战。Bitmap对象本身可以占用大量内存&#xff0c;特别是在处理高分辨率图像时。以下是一些主要的技术难点&#xff1a; 内存管理&#xff1a;Bitmap对象占用的内存需要在不再需要时被及时释放&am…

Windows server 2016.2019 .NET Framework 3.5安装包、安装步骤

windows server2019 操作系统 安装 sqlserver2008时提示缺少 .NET Frameword 3.5&#xff0c; 在功能里选择 .NET Frameword 3.5安装报错&#xff0c; 下载安装包&#xff0c;下载地址 https://download.csdn.net/download/qq445829096/89450429这里指定备份源路径 安装包解…

OpenGL3.3_C++_Windows(22)

材质&#xff1a; 决定物体在渲染过程中最终视觉呈现的关键因素之一&#xff0c;它通过一系列光学&#xff08;投光物&#xff09;和物理参数&#xff08;反光度&#xff0c;反照率、金属度&#xff0c;折射率……&#xff09;准确模拟现实世界中的材料特性&#xff0c;从而增…

【MySQL】InnoDB的存储结构

InnoDB的存储结构&#xff1a;每个表都会生成一个表空间文件&#xff0c;这个文件里面最小结构就是行&#xff0c;存储的真正的数据&#xff0c;一个页来管理若干行&#xff0c;一个区来管理若干页&#xff0c;一个区组来管理若干区。段并不是真正的物理存储结构&#xff0c;它…

汇总大语言模型LLM的评测基准数据集(BenchMarks)

文章目录 0. 引言1. 知识与语言理解1.1 MMLU1.2 ARC1.3 GLUE1.4 Natural Questions1.5 LAMBADA1.5 HellaSwag1.6 MultiNLI1.7 SuperGLUE1.8 TriviaQA1.9 WinoGrande1.10 SciQ 2. 推理能力2.1 GSM8K2.2 DROP2.3 CRASS2.4 RACE2.5 BBH2.6 AGIEval2.7 BoolQ 3. 多轮开放式对话3.1 …