MySQL之基本操作与用户授权

一 基本操作

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.rhkb.cn/news/286026.html

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

相关文章

34-Java传输对象模式 ( Transfer Object Pattern )

Java传输对象模式 实现范例 传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据传输对象也被称为数值对象,没有任何行为传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列…

VUE:内置组件<Teleport>妙用

一、<Teleport>简介 <Teleport>能将其插槽内容渲染到 DOM 中的另一个位置。也就是移动这个dom。 我们可以这么使用它: 将class为boxB的盒子移动到class为boxA的容器中。 <Teleport to".boxA"><div class"boxB"></div> &…

ssm005基于SSM框架的购物商城系统+jsp

购物商城系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就…

SpringCloud下的微服务应用技术(认识篇)

一. 导学 微服务是分布式架构的一种&#xff0c;就是把服务做拆分。传统单体架构代码容易耦合&#xff0c;大型互联网项目要拆分。把一个独立的项目成为服务&#xff0c;最后形成服务集群&#xff0c;一个业务可能需要用到多个服务。 注册中心&#xff08;拉取或注册服务信息…

01.数据归档工具的选择-Percona Toolkit,并centos7.9中安装

1.需求 1.1.在实际的业务使用过程中&#xff0c;我们既要考虑服务器硬件的成本&#xff0c;也要考虑系统的稳定性。所以就有了数据归档的这个业务需求了。我们需要把一些老的数据&#xff0c;比如两年前的数据移出去。增强数据库的性能。 1.2.在进行数据归档的过程中&#xf…

代码随想录day28(1)二叉树:二叉搜索树中的插入操作(leetcode701)

题目要求&#xff1a;给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证&#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 思路&#xff1a;对于二叉搜索树来说&…

计算机网络:分层体系结构

计算机网络&#xff1a;分层体系结构 基本分层概述各层次的任务物理层数据链路层网络层运输层应用层 数据传递过程分层体系常见概念实体协议服务 基本分层概述 为了使不同体系结构的计算机网络都能互联&#xff0c;国际标准化组织于 1977 年成立了专门机构研究该问题。不久他们…

力扣HOT100 - 283. 移动零

解题思路&#xff1a; 双指针 指针 i 用于寻找不为零的位置 指针 j 用于寻找为零的位置 不为零时&#xff0c;自己与自己交换&#xff0c;i 和 j 同时向下一个位置移动 为零时&#xff0c;nums[ i ]与nums[ j ]交换&#xff0c;使零向后移动 class Solution {public void…

【c++】类和对象(三)构造函数和析构函数

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们带来类和对象重要的部分&#xff0c;构造函数和析构函数 目录 1.类的6个默认成员函数2.构造函数2.1构造函数其他特性 3.构析函数3.1特性&#xff1a;…

Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化调用完整代码一键启动)

Quick Start Dubbo&#xff01;用更优雅的方式来实现RPC调用吧 - 掘金 dubbozookeeper demo 项目结构&#xff1a; RpcService 仅仅是提供服务的接口&#xff1a; public interface HelloService {String sayHello(String name); }DubboServer pom&#xff1a; <?xm…

【机器学习】基于变色龙算法优化的BP神经网络分类预测(SSA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】变色龙优化算法&#xff08;CSA)原理及实现 2.设计与实现 数据集&#xff1a; 数据集样本总数2000 多输入多输出&#xff1a;样本特征24&#xff…

excel所有知识点

1要加双引号 工作表&#xff08;.xlsx) 单击右键→插入&#xff0c;删除&#xff0c;移动、重命名、复制、设置标签颜色&#xff0c;选定全部工作表 工作表的移动&#xff1a;两个表打开→右键→移动&#xff08;如果右键是灰色的&#xff0c;可能是保护工作表了&#xff09…

unbantu Apache的基本配置与配置静态资源访问

目录 前言: 1.Apache介绍 2.安装Apache 3. 测试Apache服务是否启动成功 3.1配置Servername 3.2重启服务 4.配置Apache主页面 5. 配置静态的资源 6.为静态资源设置访问权限(基于源地址) 致谢: 前言: 此博客是基于unbantu的Apache服务的详细解析&#xff0c;在这片博…

荟萃分析R Meta-Analyses 1

参考&#xff1a;Harrer, M.、Cuijpers, P.、Furukawa, TA 和 Ebert, DD (2021)。 使用 R 进行荟萃分析&#xff1a;实践指南。佛罗里达州博卡拉顿和伦敦&#xff1a;Chapman & Hall/CRC Press。 ISBN 978-0-367-61007-4。 1.1什么是荟萃分析&#xff1f; 它的创始人之一 G…

Spring IoC DI(1)

IoC & DI入门 Spring 通过前面的学习, 我们知道了Spring是一个开源框架, 它让我们的开发更加简单. 它支持广泛的应用场景, 有着活跃且庞大的社区, 这就是Spring能够长久不衰的原因. 但是这个概念还是比较抽象. 可以用更具体的话描述Spring, 那就是: Spring是包含了众多…

Scikit-Learn逻辑回归(二)

Scikit-Learn逻辑回归二:多项式与正则化 1、多项式回归回顾1.1、为什么使用多项式1.2、多项式回归及原理2、逻辑回归使用多项式2.1、逻辑回归中使用多项式2.2、逻辑回归使用多项式案例(鸢尾花分类)3、逻辑回归使用正则化3.1、正则化回顾3.2、逻辑回归中使用正则化1、多项式回…

【Git】第二课:git安装和配置

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

中国历史上著名的9大阳谋

阳谋这个词最早出自毛主席&#xff0c;是指随势而发、光明正大地利用计策&#xff0c;达到自己的目的&#xff0c;就算别人识破这个计谋&#xff0c;也无计可施&#xff0c;就算对方已经看出这是个陷进&#xff0c;也不得不跳进去。 那么阳谋和阴谋有什么区别呢&#xff1f;阴…

CMakeLists生成动态库.so和静态库.a

一、下载NDK CMake - NDK : 26.2.11394342 或 23.1.7779620 - CMake : 3.22.1 二、新建android\app\CMakeLists.txt 文件CMakeLists.txt内容 cmake_minimum_required(VERSION 3.4.1) #mker为项目名称 project(mker)#设置生成的so动态库最后输出的路径 set(CMAKE_LIBRARY_OUTP…

使用uniapp 的 plus.sqlite 操作本地数据库报错:::table xxx has no column named xxxx

背景&#xff1a; 1、使用uniapp 的 plus.sqlite 进行APP本地数据库操作 2、SQLite 模块用于操作本地数据库文件&#xff0c;可实现数据库文件的创建&#xff0c;执行SQL语句等功能。 遇到&#xff1a;在之前创建的表上进行新增字段的操作时候&#xff0c;出现问题&#xff1a…