MySQL之基本操作与用户授权

news2024/9/21 15:22:56

一 基本操作

1 SQL分类

  • 数据库:database

  • 表:table,行:row 列:column

  • 索引:index

  • 视图:view

  • 存储过程:procedure

  • 存储函数:function

  • 触发器:trigger

  • 事件调度器:event scheduler,任务计划

  • 用户:user

  • 权限:privilege

 2 SQL 语言规范

  • 在数据库系统中,SQL 语句不区分大小写,建议用大写

  • SQL语句可单行或多行书写,默认以 " ; " 结尾

  • 关键词不能跨多行或简写

  • 用空格和TAB 缩进来提高语句的可读性

  • 子句通常位于独立行,便于编辑,提高可读性

3 SQL语句分类

  • DDL: Data Defination Language 数据定义语言

CREATE,DROP,ALTER

  • DML: Data Manipulation Language 数据操纵语言

INSERT,DELETE,UPDATE

软件开发:CRUD

  • DQL:Data Query Language 数据查询语言

SELECT

  • DCL:Data Control Language 数据控制语言

GRANT,REVOKE

  • TCL:Transaction Control Language 事务控制语言

COMMIT,ROLLBACK,SAVEPOINT

查看数据库信息

 show databases;

查看数据库中的表信息 

use mysql

show tables

方法二

# 格式  show  tables  from  库名
 
 show tables from mysql;

方法三

纵向查看方式:

desc  表名\G;

显示数据表的结构

mysql> use mysql
mysql> describe user; 

Field:字段名称

type: 数据类型

Nu11 :是否允许为空

Key :主键

Type: 数据类型

Null :是否允许为空

key :主键

Default :默认值

Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2

id: 1 3 5 7

常见的数据类型

二 创建数据库和表

DDL语句可用于创建数据库对象,如库、表、索引等

使用DDL语句新建库、表

创建数据库


创建数据表

create table mcb (id int not null,name char(16) not null,score decimal(4,2),passwd char(45) default'',primary key (id));

或create 

 查看定义字段

select *from mcb250;

select * from where  id =2

三 对表中的数据进行管理

1 DDL语句删除库、表

删除指定的数据表

mysql> drop table auth;

usersQuery OK, 0 rows affected (0.01 sec)

方法①

drop table mcb38;


DROP TABLE[数据库名.1表名

方法②

删除指定的数据库

mysql> drop database auth;

Query OK, 0 rows affected (0.00 sec)

DELETE:删除表指定数据

删除表,还能建;删除库就彻底没有希望了,需谨慎

INSERT:插入新数据

UPDATE: 更新原有数据

2  查询

查询时可不指定条件 

查找符合条件的数据记录

清空表

方法一:

格式:
delect from 表名;
# delete 清空表后,返回的结果内有删除的记录条目
# delete 工作时是逐行的删除数据;如果表中有自增长字段,使用 delete from 删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录

方法二

truncate table 表名;
# truncate 清空表后,没有返回被删除的条目
#TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 truncate 会比 delete 清空表快;使用truncate table 清空表内数据后,id 会从 1 开始重新记录

 三种删除命令区别 

总结:

  • 不再需要一张表的时候,用drop
  • 想删除部分数据行时候,用delete,并且带上where子句
  • 保留表结构而删除所有数据的时候用truncate
  • 删除速度:drop> truncate > delete
  • delete 安全性最好 

建立临时表

用于保存一些临时数据,不会长期存在


mysql> create temporary table TCL (id int(6) zerofill primary key auto_increment,name varchar(16) not null,cardid int(18) not null unique key,hobby varchar(600),sike int(11));
Query OK, 0 rows affected (0.00 sec)

mysql> select * from TCL;
Empty set (0.01 sec)

mysql> insert into TCL values(2,'mg',01,'huaqian',10);
Query OK, 1 row affected (0.00 sec)

mysql> select * from TCL;
+--------+------+--------+---------+------+
| id     | name | cardid | hobby   | sike |
+--------+------+--------+---------+------+
| 000002 | mg   |      1 | huaqian |   10 |
+--------+------+--------+---------+------+
1 row in set (0.00 sec)

mysql> 

复制表结构

创建新表,导入数据

create table 新表名 like 旧表名;
#通过LIKE方法,复制旧表的结构生成新表
 
insert into 新表名 (select * from 旧表名);     
#再将旧表数据导入新表

克隆表

第一种方式:迁移表 表的结构 属性 约束 数据

 第二种方式:备份数据 表的复制

总结:克隆表有两种

① 迁移表:表的结构、属性、约束、数据等

② 备份数据:表的属性、内容(数据)

三 表结构的管理

修改表名

格式:

alter table 旧表名 rename 新表名;

扩展表结构(增加字段)

 格式:

alter table 表名 add 字段名 数据类型;

 修改字段(列)名,添加唯一键

删除表达内容 

 四 数据库的用户授权

1.新建用户

格式:
create user '用户名'@'来源地址' [identified by [passwd] '密码'];

2 加密密码创建用户:

 SELECT PASSWORD('密码');    #先获取加密的密码
 ​
 CREATE USER 'm'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';

 3 查看用户密码的信息

用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库

 

4 查看用户信息,

创建用户保存在mysql数据库的user表里

use mysql;
 
select user,authentication_string,Host from user;

5 登录用户用户名的更改

重命名指定
rename user 'cpu'@'locahost' to 'mcb250'@'localhost';
 修改用户密码
 set password = password('3721');

 删除登录用户

drop user 'mcb550'@'localhost';

修改其他用户密码 

 6 忘记root密码的解决方法

① 修改 /etc/my.cnf 配置文件,免密登录mysql

② 重启数据库服务

③ 无密码登录之后,修改数据库用户中的 root 密码


update mysql.user set authentication_string = password('250') where user='root';
#用于更新MySQL数据库系统表mysql.user中的用户root的密码。AUTHENTICATION_STRING是MySQL 5.7.0以后版本中用于存储密码的字段名

⑤ 撤销添加的免密码认证设置,重启数据库服务(玩玩就行)

五 管理登录用户的权限

在 MySQL 中,用户提权是指将用户的权限从一个级别提升到另一个更高的级别。或者根据需求给予合理的权限。

[NO_AUTO_CREATE_USER], 即在grant语句中禁止创建空密码的账户,使用grant语法创建用户必须带上 “identified by”关键字设置账户密码,否则就被认为是非法的创建语句。 

 查看用户已有权限的操作

show grants;
#查看当前用户(自己)的权限
 

show grants for 'NBA'@'localhost';
 
#查看其他用户的权限

对已存在用户授权示

grant select,insert on study.class to 'mcb'@'localhost';
 
show grants for 'mcb'@'localhost';

对不存在的用户进行创建并授权 

撤销用户权限 

 revoke 权限列表/ALL on 库名.表名 from '用户名'@'来源地址';

用户的远程登录

 grant all privileges on *.* to 'NBA'@'192.168.11.%' identified by '123';

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

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

相关文章

“Python神技:一键转换PPT页面为高清图片,源码大公开!”(附Python源码)

今天让claude3帮忙写了个python代码,实现了将ppt转换成图片功能。WPS中实现这个功能还需要开通会员, 其实也就一点代码就可以实现,而且powerpoint中还没有这个将页面转换成图片的功能,废话不多说,直接上源码。 import …

欧科云链:从技术与数据视角,看Solana如何成为Web3“流量担当”?

出品|欧科云链研究院 作者|Jason Jiang 坎昆升级完成后,除一众L2手续费锐减外,以太坊生态并未掀起涟漪,相反Solana凭借一波短暂的Meme热潮,再次成为焦点。尽管本周Solana生态的Meme热度褪去,但…

最新,955神仙公司名单(非外企)

955 神仙公司名单(非外企) 往常爆料最多的 955 神仙公司名单通常都是集中在一线城市的外企。 例如下面这张最为流行的名单图: 最近牛客网上有同学整理出了非外企的版本,其中不乏一些耳熟能详的互联网产品。 随手把名单分享给大家。…

SDKMAN多版本SDK并行管理工具

一、简介 SDKMAN是管理多个SDK并行版本的工具,它提供了方便的命令行界面(CLI)和API,用于列出,安装,切换和删除候选对象。此外,它还为我们设置了环境变量。 它还允许开发人员安装基于JVM的SDK&…

短剧分销cps推广很简单,短剧分销授权平台怎么搭建?

一、短剧分销是什么? 短剧分销,也被称为短剧CPS,是一种通过推广短剧并获得收益的方式。分销方会提供短剧片单,内容创作者可以根据这些片单剪辑成短视频内容进行分发。这样既能避免版权问题,又可以利用优质内容吸引用户…

JAVA入门第一步

学习总结: 打开CMD常见的CMD命令 一、打开CMD CMD的概念 CMD是Windows操作系统中的命令提示符(Command Prompt)程序,它是一种命令行工具,可以让用户通过键入命令来与计算机进行交互。CMD是Windows中一个基本的系统组件,它提供了一…

基于springboot+vue的库存管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

SQL:窗口函数之OVER()

窗口函数 通用格式 “函数 OVER (PARTITION BY 分组 ORDER BY 排序依据 升降序)”。 这里记录下OVER() 以及搭配LEAD/LAG函数的使用方法(执行平台Impala) 目录 OVER函数1、不加条件的OVER函数——得到所有的汇总结果2、仅有排序的OVER函数——得到按顺序…

基于XENSIV电容原理的KP236N6165XTMA1、KP276D1201XTMA1、KP276D1505XTMA1压力传感器,采用BiCMOS技术

1、XENSIV™ KP236N6165 压力传感器 23.93PSIA 4.85V DSOF8 描述:KP236N6165XTMA1 是一款模拟大气压力传感器,适用于大温度范围的汽车应用。它采用表面微加工技术,内置一个采用BiCMOS技术的单片集成信号调理电路。该器件将60 kPa至165 kPa的…

题注或页码中不含章节编号。若要应用章节编号,请使用“开始”选项卡上的“多级列表”按钮,然后选择连接到标题样式的编号方案

问题: 给图片或表格插入含有章节号的题注时,提示【题注或页码中不含章节编号。若要应用章节编号,请使用“开始”选项卡上的“多级列表”按钮,然后选择连接到标题样式的编号方案】。 原因: 当前图片或表格所在的段落…

力扣Lc20--- 202.快乐数(java版)-2024年3月20日

1.题目 2.知识点 (1)while (seen.contains(n) false) { // 循环体 } 与 !seen.contains(n) 等同 (2) 当传入数字 19 给 isHappy(19) 方法时,下面是每一行代码的执行过程: 初始化一个空的 HashSet&#…

Python 日志记录库之loguru使用详解

概要 在软件开发中,良好的日志记录是至关重要的。它不仅可以帮助开发人员跟踪应用程序的运行状态和诊断问题,还可以为用户提供更好的支持和维护。而Python的Loguru库则为日志记录提供了一种简洁而强大的解决方案。本文将深入探讨Loguru库的各个方面,包括其基本概念、功能、…

Linux环境JMeter脚本性能测试、easyNmon生成监控报告

一、下载JMeter安装包 Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。 Jmeter是开源的工具,我们直接到官网下载即可。 最新版本下载地址:Apache JMeter - Download Apache JMeter 二、安装JMeter #新建jmete…

OneNote 中的云端字典在哪里? RoamingCustom.dic 在哪里?

早期懵懂不知,使用 OneNote 时直接将所有标红的单词添加到字典中了。后面才发现默认会添加到云端字典中。因为云端字典是存储在云端上的,所以 onenote 没有给出路径: 难道没办法获取了吗?有的! 方案如下:考…

前端全栈必学的Dockerfile-ABC!

举个很简单的例子,我有一个Centos7的服务器,但是由于系统限制,我无法安装nodejs18… 但是!我在Docker里就可以! Dockerfile是Docker的心脏,一个文本文件,包含了一系列的指令,用来构…

机器学习----交叉熵(Cross Entropy)如何做损失函数

目录 一.概念引入 1.损失函数 2.均值平方差损失函数 3.交叉熵损失函数 3.1信息量 3.2信息熵 3.3相对熵 二.交叉熵损失函数的原理及推导过程 表达式 二分类 联立 取对数 补充 三.交叉熵函数的代码实现 一.概念引入 1.损失函数 损失函数是指一种将一个事件&#x…

Cubemx外部引脚按键中断

引脚配置: 时钟: 中断: 编写回调函数: 对函数void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)重写成用户自己的业务代码即可

期货交易的逻辑重要还是技术重要?

期货交易的逻辑重要还是技术重要? 我是一个从事交易多年的老交易员,我觉得这个问题很有意思,也很有难度。我认为交易的逻辑和技术都很重要,但是不是同等重要。我觉得逻辑是交易的灵魂,技术是交易的工具。没有逻辑&…

苹果手机更换国内IP地址的方法

在网络世界中,IP地址扮演着极为重要的角色,是互联网通信的基础。很多人在使用苹果手机时,有时候需要更换国内IP地址以获取更多网络资源或保护隐私。那么,是否可以更换国内ip地址?苹果手机更换国内ip地址的方法是怎样的…

Elasticsearch:ES|QL 入门 - Python Notebook

数据丰富在本笔记本中,你将学习 Elasticsearch 查询语言 (ES|QL) 的基础知识。 你将使用官方 Elasticsearch Python 客户端。 你将学习如何: 运行 ES|QL 查询使用处理命令对表格进行排序查询数据链式处理命令计算值计算统计数据访问列创建直方图丰富数…