数据库的管理

目录

远程连接的方式

修改数据库uuid流程

数据库的概念

关系型数据库

非关系型数据库

关系型数据和非关系型数据库优缺点

mysql的数据类型

数据库的管理

sql中的名词

sql语言的分类

1.DDL

创建库和表的语句 create

删除库 drop databases

2.DML: 

插入数据  insert 

修改和更新 update

删除表的数据 delete

3.DQL

查询语句 select 、desc

查看指定行查询 limit

去重查询 distinct

 where 语句  条件的筛选

模糊查询 like

修改表名和修改表结构 alter

修改表名

给表添加一个列

修改字段的数据类型

删除列

修改列的名称

约束条件

主键约束  primary key

创建主键

外键约束

非空约束  not null 

唯一性约束 not null unique key

自增约束 auto_increment

主键和外键如何联动

删除外键(索引名称)

删除主键

复制表

复制表里的数据

直接复制表里的数据并创建新的表

临时表 temporary

清空表 

面试题:如何删除表内数据,但是保留表和表结构

drop 删除表

delete from 表名       

truncate table 表名     

数据库的用户管理

创建用户 create

删除用户

设置用户权限 grant

查看用户权限

只给用户查的权限

给用户多个权限

取消权限 revoke

mysql本地免密登录


sql语句  数据库用来增删改查的语句

备份  数据库的数据进行备份

主从复制,读写分离    (高可用)

远程连接的方式

drop user root@'%';

flush privileges;

清空用户信息(如果下面设置不行清空再操作即可)

mysql -u root -p123456
#进入数据库交互界面

show databases;

create user 'root'@"%" identified by '123456';

#创建用户并设置密码

grant all privileges on *.* to 'root'@'%';

#赋予远程连接的权限

flush privileges;

#刷新生效

alter user 'root'@'%' identified with mysql_native_password by "123456";

#修改加密方式,可以进行远程连接

修改数据库uuid流程

启动MySQL服务
systemctl restart mysqld

进入数据库
mysql -u root -p123456

我们的数据库都一样,用户root,密码123456
#进入数据库操作
select uuid();
#使用uuid函数生成新的uuid,在下方框里会生成新的uuid,把它复制下来保存,就是很长的那一段

show variables like 'datadir';
#查看auto.cnf文件存放的目录,在下方框里显示
#这一步可以不用做,因为我们源码安装的MySQL
#我们的auto.cnf存放的目录都是/usr/local/mysql/data/
quit
#退出数据库

修改auto.cnf文件
vim /usr/local/mysql/data/auto.cnf
server-uuid=(填入刚才生成的新的uuid)

重启MySQL服务
systemctl restart mysqld

数据库uuid修改完成

数据库的概念

数据库:组织,存储,管理数据的仓库

数据库的管理系统(DBMS):实现对数据有效组织,管理和存取的系统软件

软件:mysql、oracle、sql-server、MariaDB、postgreSQL大象数据库

关系型数据库

关系型数据库:mysql 、oracle、postgreSQL

关系型数据存储的结构:是一张二维的表格,表里有行和列

列是对象,字段

行是对象的信息,字段的属性

行+列组成一张表

非关系型数据库

缓存型数据库:redis

索引型数据库:ES

文档型数据库:MongoDB

以键值对形式存储的结构:key  value   

关系型数据和非关系型数据库优缺点

关系型数据库的优点:表的结构清晰,逻辑容易整理,记录的数据比较完整

                         缺点:读写速度比较慢,并发量差,数据迁移比较麻烦

非关系型数据库的优点:高并发速写,对海量数据依旧可以保持高效率的存储和访问,架构可拓展

                             缺点:键值对形式存储,数据逻辑比较复杂,数据是保存在缓存(内存)当中                                           (尤其是redis),如果意外重启所有数据就会丢失

mysql的数据类型

char:固定长度的自读类型,用于存储固定长度的字符串

varchar:可变长度的字符类型,存储的是可变长度的字符串

char和varchar的区别:

char定义好了长度之后,不论写的值是多少,都会占用固定长度的字节大小,保存在磁盘上都是4字节

varchar在保存字符串时,多少就保存多少,在保存的字符串结尾默认有一个隐藏的结束符,会多占一个字节

varchar比char要节约磁盘空间

char的读写速度性能要高于varchar。char是连续的磁盘空间,保存的内容是连续的;varchar在增删改查之后,会产生一个磁盘空间的碎片文件,影响读写性能

int  存储的数据类型为整数

float  存储的是单精度浮点数,小数点     格式:float(m,d);   m表示总位数,d表示小数位数

double  存储的是双精度浮点数   格式:double(m,d);

date 用于存储日期   格式 YYYY-MM-DD

datetime 用于存储日志和时间   格式 YYYY-MM-DD HH:MM:SS

timestamp :和datetime类似,但是它可以自动记录当前时间

smallint  存储小整数

bigint  存储大整数

decimal(5,2);存储精度的浮点数   5表示总位数,2表示小数位

数据库的管理

增删改查——sql语句

sql中的名词

数据库:database

表:table

行:row

列:column

索引:index

视图:view

用户:user

权限:privilege

存储过程:procedure

存储函数:funcrion

调度器:exent

sql的语言规范:

在数据库系统中,sql语句不区分大小写,但是建议用大写;sql语句可以分单行和多行,但是必须要以“;”结尾

命令规范:库名、表名、列的名字,都必须以字母开头,后面可以用数字,也可以跟上特殊符号,不要使用mysql的保留字(table,select,show databases);数据库名,表名,用户名严格区分大小写

sql语言的分类

1.DDL 数据库定义语言:创建数据库的对象语言,比如库、表和索引等等比如create   drop

2.DML 数据库操作语言:对表里的数据进行管理 比如 select update insert delete

3.DQL  数据库查询语言:数据库的查询语言  select

4.DCL 数据控制语言:控制和管理数据库用户的角色和权限   grant 赋权   revoke 取消权限

5.TCL 事务控制语言:用来管理数据库的事务,用于脚本开发,存储过程等等,比如commit rollback savepoint

1.DDL

创建库和表的语句 create

create 创建  create database xy102 创建库   create table test 创建表

删除库 drop databases

drop 删除  drop databases xy102

xshell里面查看表

key:表示是否是主键或者外键

default:如果没有数据的默认展示结果

extra:提供列的附加信息,比如自增长等等

2.DML: 

插入数据  insert 

insert into 表名(字段1,字段2,字段3) values(1,2,3);

null和空值之间的区别:

null就是啥也没有,就是为空;空值也是值,只是值是空

insert into test01 values(4,'  ',null);   空格也是值,但是null不是值就是空的

插入固定时间

插入当前时间

修改和更新 update

update 表名 set   列名=值   where 条件;

update test01 set score=90 where id  =  4;

删除表的数据 delete

delete from 表名 where 条件;

delete from test01 where id=2;

3.DQL

查询语句 select 、desc

select  score from test01;

select name,score from test01;

desc test01\G;查询表的结构

查看指定行查询 limit

select * from test01 limit 2,3; 第二行后面的三行

select * from test01 limit 0,3; 第一行到第三行

去重查询 distinct

select distinct name from test01;

 where 语句  条件的筛选

and 逻辑且    or   逻辑或

select * from test01 where id=7 and score=71;

模糊查询 like

select * from test01 where name like '顾%';  顾%  以什么为开头     %顾 以什么为结尾

select * from test01 where name like '%顾%';   包含内容 

修改表名和修改表结构 alter
修改表名

alter table test01 rename test02; 修改表名改为test02

给表添加一个列

alter table test01 add address varchar(50) default '地址不详';

修改字段的数据类型

alter table test01 modify column address char(10);

alter table test01 modify column address char(10) default '地址详情';

删除列

alter table test01 drop address;

修改列的名称

alter table test01 change name username char(10);

数据库的增删改查:查

约束条件和用户管理:删

约束条件

主键约束  primary key

用于标识表中的主键列的值,而且这个值是全表当中唯一的,而且值不能为null。一个表只能有一个主键

创建主键

外键约束

用于建立表与表之间关系,确保外键中的值与另一个表的主键值匹配,保证数据引用的完整性。多表联查,不要超过三张,超过三张表会降低查询效率

非空约束  not null 

保证列中的值不含null的值 

唯一性约束 not null unique key

确保列中的所有值都是唯一的,类似主键,但是一个表可以有多个唯一约束。

自增约束 auto_increment

在列生成的每一行都会自动生成一个唯一标识符,通常和主键一起使用,每次插入新行时,自增列的值会自动增加

自增长插入

主键和外键如何联动

主键和外键

1.外键就是和主表进行关联的列,不需要设置为从表的主键,但是不能为空,必须和主表的数据类型保持一致。外键的值和主键的值要相同

2.先插入主表的数据,再插入从表的数据

3.删除表的外键不是直接删除外键的列名,而是删除外键的索引,show create table 表名:查看表的详细信息

删除外键(索引名称)

4.删除主键不需要加上主键的列名。如果有extra的额外属性,比如自增长,要先移除属性,然后才能删除主键。

删除主键

5.删除主键的方式:alter进行修改

复制表

create table stu_01 like student;

desc stu_01;

复制表里的数据

insert into stu_01 select * from student;  

直接复制表里的数据并创建新的表

create table stu_02 (select * from student);

临时表 temporary

临时表创建完成之后,在库里面是看不到的,但是依然可以增删改查

清空表 

面试题:如何删除表内数据,但是保留表和表结构
drop 删除表
delete from 表名       

一行一行的清空表数据,速度比较慢,如果有自增长字段,delete清空之后,会继续按照原来的序号,继续递增

truncate table 表名     

清空表,保留表的结果,但是清空之后原有的记录全部抹去,自增长也将从头开始,速度比较快

数据库的用户管理

root都是相同的

host:可以登录的主机

localhost:指的是本地登录

%:任意主机(ip地址)

权限上:localhost > % 的权限

创建用户 create

create user 'gfw'@'192.168.233.10' identified by '123456';

root@localhost  安装完mysql之后就有了,不需要额外设置。其他的都需要人工创建,其他的用户也不设置成localhost,都是设置主机名

删除用户

drop user 'gfw'@'192.168.233.10';

设置用户权限 grant

grant all privileges on *.* to 'gfw'@'192.168.233.10' ;

all 给与所有权限   远程登录,数据库的操作权限(增删改查)

*.* :* 表示库, *表示库里的表

information_schema:这个库的作用包含了mysql服务器中所有其他数据库,表、列、索引权限等详细的元数据的信息,可以查询数据库的结构和元信息

performance_schema:包含mysql的服务性能和资源利用情况,查询语句的执行时间和锁定信息

查看用户权限

show grants for 'gfw'@'192.168.233.10';

只给用户查的权限

grant select on xy102.* to 'gfw'@'192.168.233.10' ;

给用户多个权限

grant insert,update,alter,delete on xy102.* to 'gfw'@'192.168.233.10' ;

取消权限 revoke

revoke all privileges on *.* from 'gfw'@'192.168.233.10' ;

revoke insert,update,alter,delete on xy102.* from 'gfw'@'192.168.233.10' ;

mysql本地免密登录

vim /ect/my.cnf

添加  skip-grant-tables

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用APEXSQL LOG解析sql server事务日志,进行审计与数据恢复

一 下载 https://download.csdn.net/download/sunke861/11449739 二 使用 解压安装包后,点击:ApexSQLLog.exe 2.1 连接数据库 连接要审计的数据库: 假如报错: 则点击ok关闭该窗口,然后点击左上方的New按钮&#xf…

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址:https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字,项目路径,选择maven,点击下面的创建 运行项目 …

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03(20240715)1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03(20240715) 作者:胖头鱼的鱼缸(尹海文…

半导体超纯水(UPW)全面监控检测项目及液体粒子计数器应用

超纯水 (UPW) 是经过高度纯化的水,去除了所有矿物质、颗粒、细菌、微生物和溶解的气体。在芯片厂里,它也经常会被混称为 DI Water(去离子水),但国内通常把去离子水与超纯水分的比较开,其实去离子水是包含了…

智能可视采耳棒耳勺安全吗?六大选购技巧排忧解惑!

耳垢作为外耳道内腺的分泌物,如果不及时清理,可能会造成耳道的栓塞,进而引致耳痛、听力减弱、咳嗽等不适。而传统的耳勺由于其盲操作的特性,对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺,让我们…

【转盘案例-基本框架-创建按钮-按钮布局 Objective-C语言】

一、转盘案例的基本框架 1.我们先来看一下这个转盘啊 新建一个项目,Name:01-大转盘 把素材拷过来, 我们先把背景图片设置一下, 这张图片,可能会很大,跟你的屏幕呢,可能不成正比,这个时候呢,我们应该用拉伸的方式,去做,那么,这个控制器的背景,应该怎么去设置, 画…

逆向案例二十——请求头参数加密,某政府农机购置与应用补贴申请办理服务系统,sm3和sm4的加密

网址:农机购置与应用补贴申请办理服务系统 抓包分析,发现请求头参数有加密,表单有加密,返回的数据也是加密的。 请求头Source是固定的,其他的Sign,以及Timsestamp是加密的 请求载荷也是加密的 返回的数据也是加密的。…

ValueError和KeyError: ‘bluegrass’的问题解决

项目场景: 项目相关背景: 问题描述 遇到的问题1: KeyError: ‘bluegrass’ 不能识别某标签 遇到的问题2: xml etree.fromstring(xml_str) ValueError: Unicode strings with encoding declaration are not supported. Please …

Go语言--广播式并发聊天服务器

实现功能 每个客户端上线,服务端可以向其他客户端广播上线信息;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道,用户名以及网络地址信息 typ…

MongoDB自学笔记(一)

一、MongoDB简介 MongoDB是一款基于C开发的文档型数据库。与传统的关系型数据库有所不同,MongoDB面向的是文档,所谓的文档是一种名为BSON (Binary JSON:二进制JSON格式)是非关系数据库当中功能最丰富,最像…

【conftest】和【fixtures】

一、 conftest.py 文件 作用:存放case的前提条件和后置条件配置函数;一般该类函数都会使用fixture装饰(fixture该篇第二点会介绍);使用conftest里面的函数时不需要导入 conftest.py 这个文件。只需将函数名作为变量传入…

Python实现人脸识别

直接上代码: import face_recognition import time from PIL import Image, ImageDraw def faceRecognition(fileName): # 加载图片image face_recognition.load_image_file(fileName)# 人脸定位beginTime time.time()face_locations face_recognition.face_lo…

SEO:6个避免被搜索引擎惩罚的策略-华媒舍

在当今数字时代,搜索引擎成为了绝大多数人获取信息和产品的首选工具。为了在搜索结果中获得良好的排名,许多网站采用了各种优化策略。有些策略可能会适得其反,引发搜索引擎的惩罚。以下是彭博社发稿推广的6个避免被搜索引擎惩罚的策略。 1. 内…

【python】pandas报错:UnicodeDecodeError详细分析,解决方案以及如何避免

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Spring Security Oauth2源码分析

Spring Security Oauth2源码分析 前言一:客户端OAuth2授权请求的入口1、DefaultOAuth2AuthorizationRequestResolver类OAuth2AuthorizationRequest类authorizationRequestUri 的构建机制redirectUri 3、OAuth2AuthorizationRequestRedirectFilter类 二:O…

IDEA实现SpringBoot项目的自打包自发布自部署

目录 前言 正文 操作背景 自发布 自部署 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China📫 You can reach…

服务器数据恢复—raid5阵列热备盘同步失败导致lun不可用的数据恢复案例

服务器存储数据恢复环境: 华为S5300存储中有一组由16块FC硬盘组建的RAID5磁盘阵列(包含一块热备盘)。 服务器存储故障: 该存储中的RAID5阵列1块硬盘由于未知原因离线,热备盘上线并开始同步数据,数据同步到…

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

sping总览

一、spring体系 1. spring是什么? 轻量级的开源的J2EE框架。它是一个容器框架,主要实现了ioc,同时又通过aop实现了面向切面编程,它又是一个中间层框架(万能胶)可以起一个连接作用,比如说把myba…

Django任务管理:项目定时执行及简单管理界面

1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件,要开始增加各文件实际…