【MySQL】2、MySQL数据库的管理
常用
describe user;
Field:字段名称
Type:数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空key :主键
Default :默认值
Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2
id:1 3 5 7
常用的数据类型:
int:整型 用于定义整数类型的数据
float:单精度浮点4字节32位 准确表示到小数点后六位
double:双精度浮点8字节64位
char:固定长度的字符类型 用于定义字符类型数据。
varchar:可变长度的字符类型
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位 指定长度数组
#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错主键是唯一的,但主键可以由多个字段构成
SQL 语句
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
1、DDL语句用于创建数据库对象,如库、表、索引等:
新建-create
增:
create database 库名; 创建库
use 库名;
create table 表名 (字段1 数据类型,字段2 数据类型,...,PRIMARY KEY (主键名));增例:
create database school;
use school;
create table class (id int not null,name char(10) not null,score decimal(5,2),passwd char(48) default'',primary key (id));#NOT NULL 不允许为空值
#DEFAULT'' 默认值为空
PRIMARY KEY :主键一般选择没有重复并且不为空值的字段
删除-drop
删:
drop table 表名; 删除表
drop table 库名.表名; 删除指定库中的表
drop database 库名; 删除库#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。删例:
drop table class;
drop table school.class;
drop database school;
2、DML管理表中的数据记录
增-insert
insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值,...);
desc 表名; 查看表的格式
insert into class(id,name,score,passwd) VALUES (1,'zhangsan',70.5,password('123456'));insert into class values(2,'lisi',87.3,123456); 向表中添加数据
select * from 表名; 查看表中的内容#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(''),查询时以明文显示。
添加字段
alter table 表名 add 新字段
alter table ky30 add address varchar(48) default '地址不详';alter table 表名 modify column 字段名 数据类型;
改-update
UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2 WHERE 条件表达式;
#要修改该哪些字段就写哪些字段例:
修改指定用户的密码:
update school.class set passwd=password('') where name='zhangsan';
修改指定id的姓名和密码
update class set name='wangwu',passwd='123' where id=2;
修改表的字段
alter table 表名 change 旧列名 新列名 数据类型;
修改表名
alter table 原表名 rename 新表名;
alter table ky30 rename ky29;
修改root用户登录密码
修改mysql的登录密码:
update mysql.user set authentication_string=password('123') where User='root';
刷新生效
flush privileges;
删-delete
DELETE FROM 表名 WHERE 条件表达式;删除class表指定id的数据
delete from class where id=2;
清空表中的所有数据
delete from class;
drop table class;
delete清空表,原理:一行一行删除记录的数据,会返回删除的记录条目;如果表中有自增长字段,会记录最大ID,当再次新添加的记录,会从原来最大的记录ID后面继续自增写入记录
truncate清空表,原理是:将表结构按原样重新建立,速度较快,不会返回被删除的条目;再次添加记录,ID会从1开始
3、DQL数据查询语句
查-select
select * from 表名 查看指定表的所有数据查找指定表中的指定用户:
select id,name,score,passwd from school.class where name='zhangsan';
select * from school.class where id=2;限制查找
select * from limit 2; 显示前两行
select * from limit 2,3; 显示前两行后的三行
数据表高级操作
清空列表
delete from 语句可以使用 where 子句对删除的结果集进行过滤选择
truncate table语句是删除表中所有记录数据
创建一个表并写入内容
create table ky (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', level CHAR(16) NOT NULL, PRIMARY KEY (user_name));
insert into ky values('lisi', password('123456'),'10');
insert into ky values('lisi1', password('123456'),'45');
insert into ky values('lisi2', password('123456'),'46');
insert into ky values('lisi3', password('123456'),'47');
insert into ky values('lisi4', password('123456'),'48');
insert into ky values('lisi5', password('123456'),'49');
insert into ky values('lisi6', password('123456'),'50');
insert into ky values('lisi7', password('123456'),'1');
show tables;
select * from ky;删除表中符合条件的数据
delete from ky where level >=45;
select * from ky;
清空表中的所有数据
truncate table ky;
select * from ky;
临时表
用于保存一 些临时数据,只在当前连接可见,连接被关闭后,临时表就会被 MySQL 删除,相关的资源也会被释放。
CREATE TEMPORARY TABLE `mytmp` (`id` int(10) NOT NULL AUTO_INCREMENT,`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`level` int(10) NOT NULL,PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into mytmp(name,level) values('aa',10);
select * from mytmp;
退出数据库;临时表就会消失mysql -uroot -p
克隆表
方法1:
create table ky (name varchar(32) not null,passwd char(48) default'',id int(10) nott null);
show tables;
insert into ky values('lisi', password('123456'),'10');
insert into ky values('lisi1', password('123456'),'45');
insert into ky values('lisi2', password('123456'),'46');
insert into ky values('lisi3', password('123456'),'47');
insert into ky values('lisi4', password('123456'),'48');
insert into ky values('lisi5', password('123456'),'49');
insert into ky values('lisi6', password('123456'),'50');
insert into ky values('lisi7', password('123456'),'1');
select * from ky;克隆表的格式
create table test like ky;
select * from test;
克隆表的数据内容
insert into test select * from ky;
select * from test;
方法2:
show create table ky\G
克隆表的格式
create table test1 ("name" varchar(32) NOT NULL,"passwd" char(48) DEFAULT '',"id" int(10) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
show tables;
克隆表的内容
insert into test1 select * from ky;
select * from test1;
DCL设置用户权限
1.新建用户
create user '用户名'@'来源地址' 设置用户的密码 identified by '密码';
2.查询创建的用户信息,并做增删改
mysql 用户名 mysql.userselect user修改用户密码
set password = password ('密码') 当前
修改其他用户的密码
set password for '用户名'@'localhost' = password ('密码')忘记用户的密码
修改my.cnf配置,跳过密码认证
skip-grant-tables
数据库用户授权-grant
授予部分权限
grant 权限列表 on 库名.表名 to '用户名'@'来源地址' identified by '密码';
授予全部权限
grant all prvileges on 库名.* to '用户名'@'来源地址' identified by '密码';grant select on school.* to 'zhangsan'@'localhost' identified by '123456';
flush privileges; 退出mysql用zhangsan账户登录
quit
mysql -u zhangsan -p验证授权的访问操作
select * from school.class;
验证非授权的访问操作
drop table school.class;
授权
grant all on school.* to 'lisi'@'192.168.220.101' identified by 'abc123';
刷新
flush privileges;
查看授权情况
show grants;
查看用户权限
show grants for 用户名@来源地址
查看用户权限
show grants for 'lisi'@'192.168.220.101';
撤销用户的权限
revoke 权限列表 on 库名.表名 from '用户名'@'来源地址'
例:
revoke all on school.* from 'lisi' @ 'localhost';
遇到root密码忘了怎么办?
【处理方案】
1、在 my.ini 或 my.cnf 的 [mysqld] 下添加 skip-grant-tables
[root@localhost mysql]# vi /etc/my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
skip-grant-tables ####此处添加###2、重启mysql数据库
[root@localhost mysql]# systemctl restart mysqld 3、登录数据库
[root@localhost mysql]# mysql -uroot -p
Enter password: ###回车直接登录
mysql> 4、修改root密码
mysql> update mysql.user set authentication_string=PASSWORD('abc123') where User='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)5、修改mysql免密码登录配置 然后重启服务
[root@localhost mysql]# vi /etc/my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
#skip-grant-tables6、重启mysql数据库
[root@localhost mysql]# systemctl restart mysqld7、mysql数据库验证
[root@localhost mysql]# mysql -uroot -p
Enter password: ####输入abc123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
案例:建立公司IT运营部工资表
需求描述:
为公司建立员工工资数据库 imployee_salary
在imployee_salary数据库中,建立 IT_salary数据表,以保存IT运营部员工的工资信息,如下表所示
表格如下:
岗位类别 姓名 年龄 员工ID 学历 年限 薪资
网络工程师 孙空武 27 011 本科 3 4800
Windows工程师 蓝凌 19 012 中专 2 3500
Linux工程师 姜纹 32 013 本科 8 15000
Java软件工程师 关园 38 014 大专 10 16000
硬件驱动工程师 罗中昆 29 015 大专 9 16500
答:
1、建立数据库
mysql> create database imployee_salary;
Query OK, 1 row affected (0.00 sec)mysql> use imployee_salary;
Database changed2、建立数据表IT_salary ###这边一定要注意是中文的逗号还是英文的逗号
MySQL [imployee_salary]> create table IT_salary (-> type varchar(32) not null,-> name char(16) not null,-> age tinyint not null,-> id smallint not null,-> degree char(16) default '大专',-> years tinyint not null,-> salary int not null,-> primary key (id));3、将IT运营部的员工工资信息插入到IT_salarymysql> insert into IT_salary values(-> '网络工程师','孙空武',27,011,'本科',3,4800);
Query OK, 1 row affected (0.04 sec)mysql> insert into IT_salary values(-> 'Windows工程师','蓝凌',19,012,'中专',2,3500);
Query OK, 1 row affected (0.01 sec)mysql> insert into IT_salary values( -> 'Linux工程师','姜纹',32,013,'本科',8,15000);
Query OK, 1 row affected (0.00 sec)mysql> insert into IT_salary values( -> 'Java软件工程师','关园',38,014,'大专',10,16000);
Query OK, 1 row affected (0.00 sec)4、查看核对信息
mysql> select * from IT_salary;
+---------------------+-----------+-----+----+--------+-------+--------+
| type | name | age | id | degree | years | salary |
+---------------------+-----------+-----+----+--------+-------+--------+
| 网络工程师 | 孙空武 | 27 | 11 | 本科 | 3 | 4800 |
| Windows工程师 | 蓝凌 | 19 | 12 | 中专 | 2 | 3500 |
| Linux工程师 | 姜纹 | 32 | 13 | 本科 | 8 | 15000 |
| Java软件工程师 | 关园 | 38 | 14 | 大专 | 10 | 16000 |
+---------------------+-----------+-----+----+--------+-------+--------+
4 rows in set (0.00 sec)
相关文章:

【MySQL】2、MySQL数据库的管理
常用 describe user; Field:字段名称 Type:数据类型 Null :是否允许为空 Key :主键 Type:数据类型 Null :是否允许为空key :主键 Default :默认值 Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2 id:1 3 5 …...

8086汇编test指令学习
Test指令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。Test的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。 TEST AX,BX 与 AND AX,BX 命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保…...

简单js逆向案例(2)
文章目录 前文分析完整代码结尾 前文 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 分析 目标网址 aHR0cHM6Ly9zZWFyY2guYmlkY2VudGV…...

azure data studio SQL扩展插件开发笔记
node.js环境下拉取脚手架 npm install -g yo generator-azuredatastudio yo azuredatastudio 改代码 运行 调试扩展,在visual studio code中安装插件即可 然后visual studio code打开进行修改运行即可 image.png 运行后自动打开auzre data studio了, 下面…...

【二分】搜索旋转数组
文章目录 不重复数组找最小值,返回下标重复数组找最小值,返回下标不重复数组找target,返回下标重复数组找target,返回bool重复数组找target,返回下标 不重复数组找最小值,返回下标 class Solution {public …...
APSIM模型应用与参数优化、批量模拟
APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生长模拟模型之一。APSIM模型有Classic和Next Generation两个系列模型,能模拟几十种农作物、牧草和树木的土壤-植物-大气过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安…...
QT使用QXlsx实现对Excel sheet的相关操作 QT基础入门【Excel的操作】
准备:搭建环境引用头文件QT中使用QtXlsx库的三种方法 QT基础入门【Excel的操作】_吻等离子的博客-CSDN博客 #include "xlsxdocument.h"QTXLSX_USE_NAMESPACE // 添加Xlsx命名空间(https://github.com/dbzhang800/QtXlsxWriter) or QXLSX_USE_NAMESPACE // 添加Xl…...

ARM DIY(四)WiFi 调试
文章目录 焊接打开内核编译选项重新编译内核烧录 && 运行 && 测试完善脚本测速手搓天线正式天线 焊接 换个粗点的风枪嘴,让热风覆盖 RTL8823BS 整体模块,最终实现自动归位 焊接 SDIO 接口的上拉电阻以及复位引脚上拉电阻 硬件部分就这…...

AIGC ChatGPT 实现动态多维度分析雷达图制作
雷达图在多维度分析中是一种非常实用的可视化工具,主要有以下优势: 易于理解:雷达图使用多边形或者圆形的形式展示多维度的数据,直观易于理解。多维度对比:雷达图可以在同一张图上比较多个项目或者实体在多个维度上的…...

Vue2向Vue3过度核心技术路由
目录 1 路由介绍1.思考2.路由的介绍3.总结 2 路由的基本使用1.目标2.作用3.说明4.官网5.VueRouter的使用(52)6.代码示例7.两个核心步骤8.总结 3 组件的存放目录问题1.组件分类2.存放目录3.总结 4 路由的封装抽离5 Vue路由-重定向1.问题2.解决方案3.语法4…...

ElasticSearch常用方法
ElasticSearch:是一个储存、检索、数据分析引擎。 在互联网项目中我们经常会按一定的条件去索引我们指定的数据,但是在大量的数据中我们如果直接查询数据库效率是非常低的,ElasticSearch就可以很好的帮我们完成检索。 es封装了api提供给我我们直接操作…...
nginx下添加http_ssl_module并且配置域名,指定端口
1.切换到源码包: cd /home/nginx-1.23.1 2.进行编译: ./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 3.配置完成后,运行命令: make make命令执行后,不要进行mak…...
【PHP】PHP变量
1、变量介绍 PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,必须在使用变量前先声明(定义)变量的类型和名称。 <?php $x5;…...

KVM创建虚拟机可访问外网+可使用Xshell等工具连接
创建虚拟机时使用桥接网络模块即可,如下: 1、创建一个存储卷(虚拟机的磁盘) 2、创建虚拟机时选择网络 3、系统安装完成后配置固定IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOTyes BOOTPROTOstatic IPADDR16.32.15.60 GATEWAY16.32.15.2…...

数据库——Redis 没有使用多线程?为什么不使用多线程?
文章目录 Redis6.0 之后为何引入了多线程? 虽然说 Redis 是单线程模型,但是, 实际上,Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。 不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令&a…...

Node.JS教程
文章目录 Node.JSNode.js学习指南一、Node.js基础1.认识Node.js2.开发环境搭建3. 模块、包、commonJS3.1、为什么要有模块化开发?3.2、CommonJS规范3.3、 modules模块化规范写法 4.Npm&Yarn4.1、npm使用4.2、全局安装nrm4.3、yarn使用 持续更新中总结 Node.JS N…...
mysql表锁死怎么办?事务锁sql超时被锁死怎么办?
不要慌!不要慌!两句命令教你做人 一、mysql表锁死 1、查询所有进程: SHOW PROCESSLIST; 2、找到进程号kill掉 kill 3269987 2、事务锁 sql超时被锁死 1、查询所有执行中的sql select t.*,to_seconds(now())-to_seconds(t.trx_started) id…...

基于JSP+Servlet+mysql学生宿舍管理系统
基于JSPServletmysql学生宿舍管理系统 一、系统介绍二、功能展示四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于JSPServlet的学生宿舍管理系统[sushe] 项目架构:B/S架构 开发语言:Java…...
Enabling Large Language Models to Generate Text with Citations
本文是LLM系列的文章,针对《Enabling Large Language Models to Generate Text with Citations》的翻译。 使大语言模型能够生成带有引用的文本 摘要1 引言2 任务设置和数据集3 自动评估4 建模5 实验6 人类评估7 相关工作8 结论不足 摘要 大型语言模型(…...
Qt Qml实现仪表盘动画
Qt Qml代码实现的仪表盘动画 效果: Qt Qml 仪表盘动画 Qt Qml 代码实现仪表盘动画 Qt Qml 仪表盘动画 部分Qml代码: import QtQuick 2.0Item {width: 2 * radiusheight: 2 * radiusrequired property double radiusproperty double airspeed: 0propert…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...