【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)

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

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

相关文章

self instruct 介绍

《SELF-INSTRUCT: Aligning Language Model with Self Generated Instructions》 github: self-instruct 背景 大模型表现惊人,但是严重依赖于人工编写的指令数据。然而,依靠人工标注数据成本高昂。本文中提出self-instruct框架:一种基于大…

Android创建签名文件,并获取签名文件MD5,SHA1,SHA256值

一、创建Android签名文件 使用Android Studio开发工具,可视化窗口进行创建 第一步:点击AndroidStudio导航栏上的 Build→Generate Signed Bundle / APK 第二步:选择APK选项 第三步:创建签名文件 第四步:输入创建签名的…

如何五分钟设计制作自己的蛋糕店小程序

在现如今的互联网时代,小程序已成为企业推广和销售的重要利器。对于蛋糕店来说,搭建一个小程序可以为其带来更多的品牌曝光和销售渠道。下面,我们将以乔拓云平台为例,来教你如何从零开始搭建自己的蛋糕店小程序。 首先&#xff0c…

2023/8/27周报

目录 摘要 论文阅读 1、标题和现存问题 2、过度平滑和度量方法 3、处理过坡 4、实验结果 深度学习 1、解决可视化问题 2、CART算法 总结 摘要 本周在论文阅读上,阅读了一篇Pairnorm:解决GNNS中的过平滑问题的论文。PairNorm 的核心思想是在图卷积层之间引…

7 集群基本测试

1. 上传小文件到集群 在hadoop路径下执行命令创建一个文件夹用于存放即将上传的文件: [atguiguhadoop102 ~]$ hadoop fs -mkdir /input上传: [atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/work.txt /input2.上传大文件 [atguiguhadoop1…

Vue 3 常见面试题汇总

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 前言 最近两年许多大厂都在实行“降本增效”、“优化组织架构”,然后“为社会输送了大量人才”,今年(2023&#xff…

视频云存储/安防监控视频智能分析网关V3:占道经营功能详解

违规占道经营者经常会在人流量大、车辆集中的道路两旁摆摊,导致公路交通堵塞,给居民出行的造成不便,而且违规占路密集的地方都是交通事故频频发生的区域。 TSINGSEE青犀视频云存储/安防监控视频/AI智能分析网关V3运用视频AI智能分析技术&…

10万字智慧政务大数据平台项目建设方案222页[Word]

导读:原文《10万字智慧政务大数据平台项目建设方案222页[Word]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 1.1 项目建设目标 推进市一级政府搭建数…

求生之路2社区服务器sourcemod安装配置搭建教程centos

求生之路2社区服务器sourcemod安装配置搭建教程centos 大家好我是艾西,通过上文我们已经成功搭建了求生之路2的服务端。但是这个服务端是纯净的服务端,就是那种最纯粹的原版。如果想要实现插件、sm开头的命令等功能,需要安装这个sourcemod。…

opencv 案例实战02-停车场车牌识别SVM模型训练及验证

1. 整个识别的流程图: 2. 车牌定位中分割流程图: 三、车牌识别中字符分割流程图: 1.准备数据集 下载车牌相关字符样本用于训练和测试,本文使用14个汉字样本和34个数字跟字母样本,每个字符样本数为40,样本尺…

家政服务行业搭建小程序的实用技巧分享

随着移动互联网的发展,小程序成为了各行各业的新宠。对于家政服务行业来说,搭建一个小程序商城可以极大地提升服务的便捷性和用户体验,同时也能提高企业的竞争力。本文将分享家政服务行业搭建小程序的实用技巧,帮助您顺利创建属于…

Docker 常用服务 安装使用 教程

Docker安装常用服务 1、 安装mysql # 1.拉取mysql镜像到本地 docker pull mysql:tag (tag不加默认最新版本) # 2.运行mysql服务 docker run --name mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:tag --没有暴露外部端口外部不能连接 docker run --name mysql -e MYSQL_ROOT_PAS…

HTML+CSS 查漏补缺

目录 1,HTML1,尺寸的百分比1,普通元素2,绝对(固定)定位元素3,常见百分比 2,form 表单元素1,form2,button3,label4,outline5&#xff0…

uni.uploadFile上传 PHP接收不到

开始这样,后端$file $request->file(file);接收不到 数据跑到param中去了 去掉Content-Type,就能接收到了 param只剩下

Matlab(基本操作与矩阵输入)

目录 1.Matlab视窗详读 2.基本操作与矩阵输入 2.1 运算符的优先级 2.2 初等数学函数 2.3 嵌入函数 2.4 特殊变量和常量 2.5 Matlab的优先级调用 2.6 数字显示格式长 2.7 命令行中端 2.8 部分函数 2.9 向量和矩阵 2.10 数组索引 2.11 串联矩阵 2.12 生成数值序列 …

云LIS云实验室信息管理系统源码,支持IIS独立部署,Docker部署

云LIS技术架构:Asp.NET CORE 3.1 MVC SQLserver Redis等。 云LIS系统是医院信息管理的重要组成部分之一,它是一个基于B/S架构开发的实验室信息管理系统。整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件,有外…

AxureRP制作静态站点发布互联网,内网穿透实现公网访问

AxureRP制作静态站点发布互联网,内网穿透实现公网访问 文章目录 AxureRP制作静态站点发布互联网,内网穿透实现公网访问前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4…

【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )

文章目录 一、普通引用1、概念说明2、代码示例 - 普通引用 二、常量引用1、常量引用引入2、常量引用概念与语法2、代码示例 - 常量引用不可修改 一、普通引用 1、概念说明 之前的 【C】C 引用详解 ① ~ ⑦ 博客中 , 讲解的都是 普通引用 , 也就是 将 普通变量 赋值给 引用 , 过…

微信开发之一键创建微信群聊的技术实现

创建微信群 本接口为敏感接口,请查阅调用规范手册创建后,手机上不会显示该群,往该群主动发条消息手机即可显示。 请求URL: http://域名地址/createChatroom 请求方式: POST 请求头Headers: Content-…

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测 目录 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单…