MySQL数据库基础

发布于:2025-07-24 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

一、概述

1.1、数据库作用:存储

1.2、数据库管理系统(DataBase Management System)

1.3、数据库类型

1.4、关系库数据模型

1.5、关系数据库相关概念

二、安装

2.1、mysql安装

2.2、启动并开机自启

2.3、本地连接(本地登录)

2.4、允许任意主机链接

三、mysqld数据库配置与命令

四、默认数据库

五、SQL语言

六、mysqld数据类型

七、数据库操作命令

八、mysqld用户权限管理

九、mysqld数据库备份


一、概述

1.1、数据库作用:存储

1.2、数据库管理系统(DataBase Management System)

        简称DBMS,作用对数据进行增、删、改、查。

        SQL (Structured Query Language)

        结构化查询语言,针对关系型数据库的一种语言;SQL是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。

1.3、数据库类型

关系型数据库
MariaDB/MySQL
Oracle
DB2
MS SQLServer,只能用于windows系统国产数据库
达梦
人大金仓
TiDB,分布式关系型数据库
NOSQL
Redis,缓存数据库
MongoDB,文档型数据库

1.4、关系库数据模型

层次模型
网状模型
关系模型

关系模型的相关概念

概念
实体:在数据库中,实体通常对应于表中的行,而表是实体的一种集合。
属性:是实体的特征或性质。属性可以是简单的数据类型,也可以是更复杂的结构。在数据库中,通常对应于表中的列,每列代表实体的一种属性。
联系:表述了不同实体之间的关系。在数据库中,联系通过关系表来实现,这个表通常包含两个或更多的实体作为表的列。

在关系模型中,实体和联系通常通过以下三种类型进一步分类:

类型
一对一(1:1):每个实体只有一个相关的实体,反之亦然。
一对多(1:N):一个实体与多个实体相关,但每个相关实体只与一个实体相关
多对多 (N:N):每个实体可以与多个实体相关,同时每个相关实体也可以与多个实体相关。

1.5、关系数据库相关概念

概念
(Database):一个存储数据的容器,它可以包含多个数据库。
(Table):数据库中的一个表格,由行和列组成。表是存储数据的主要结构,每个表通常对应一个实体类型。表的列名称为属性,而表的行名称为记录。
(Record)行也称为记录,它是表中的一个单元,代表表中的一个具体实例。每一行包含了一组属性值,这些值共同描述了一个实体的状态。
(Column)列是表中的一列,它代表了表的一个属性。每列都有一个数据类型,用于定义存储在其中的数据的种类和格式。
字段(Field)字段通常指的是表中的行与列的交叉点,它存储了单个数据项。在数据库中,每个字段都有其特定的数据类型和用途。
数据(Data)数据是存储在数据库中的信息。它可以是文本、数字、日期、图像、声音等各种形式。数据是数据库管理和操作的核心。

二、安装

默认监听端口号:3306/tcp

2.1、mysql安装

             yum install -y mysql-server

     服务端程序:mysql-server;客户端程序:mysql;

2.2、启动并开机自启

           systemctl enable --now mysqld.service 

2.3、本地连接(本地登录)

2.4、允许任意主机链接

三、mysqld数据库配置与命令

 yum安装后生成的目录

           rpm -ql mysqld-server

mysqld服务器的启动脚本

           cat /usr/lib/systemd/system/mysqld.service

数据存储目录的权限

            ls -ld /var/lib/mysql/

服务器启动时读取的默认配置文件

          cat  /etc/my.cnf

mysql命令

mysql数据库登录的命令行工具,本地登录时且root用户没有密码,输入mysql,等效于”mysql -uroot -hlocalhost -P3306“

mysql [options] db_name
-u : 指定登录用户
-p : 指定用户密码
-h : 指定登录数据库的IP或者域名
-P : 指定登录数据库的端口号
-e : 能够在终端执行数据库命令

mysqladmin命令

超级管理命令

语法

mysqladmin [options] command [command-arg] [command [command-arg]] ...

设置root用户密码

 mysqladmin -uroot password '123.com'

使用密码

mysql -uroot -p123.com -h127.0.0.1 -P3306

四、默认数据库

information_schema:信息数据库,存储所有的库、表、列的名称,任意可登录数据库的用户都可读;sql注入
mysql :主数据库,mysqld运行的必须数据库,用户与配置信息
performance_schema:性能数据库,存储mysqld的资源使用、安全策略权限配置信息
sys库

五、SQL语言

DDL: 数据定义语言,对数据库结构操作
create:创建(用户,库,表)
alter:改变
drop:删除
DML:数据操作语言,对数据表的操作
insert:插入
update:更新
delete:删除数据
DCL:数据控制语言,针对用户权限设置
grant:用户赋权
revoke:移除用户权限
DQL:数据查询语言,对数据表的操作
select:查询

六、mysqld数据类型

常用的数据类型有:整型、浮点型、BIT类型、定点数、日期时间类型、字符串、NULL类型

七、数据库操作命令

库操作命令
查看数据库: show databases;
查看所在数据库: select database( ) ;
查看当前登录用户: select user( );
查看当前数据库版本: select version ( );
查看用户权限列表: show privileges[\G];
查看指定用户的权限: show grants for root@localhost\G;
切换数据库: use databaseName;
创建数据库: create database databaseName [character set utf8];
删除数据库: drop database databaseName;
表结构命令
查看数据表 : show tables ;
查看表结构 :tableName ;
创建数据表 : create table tableName(columnName(列名称) dataType(数据类型), ............) ;
删除数据表 :drop table tableName;
alter 命令用法
修改表名 :alter table tab_name rename to tab_new;
修改字段类型:alter table tab_name modify field type (first/before/after field1);
修改字段默认值/是否为空/自动增长:alter table tab_name modify field type not null/default =" 默认值"/auto_increment;
修改字段名/字段类型:alter table tab_name change field newfield newtype;
添加字段:alter table tab_name add field type (first/before/after field1);
删除字段:alter table tab_name drop field;

表数据操作
单行插入:insert [into] tableName[(columnName,.........)] value('value1',value2,.......);
批量插入:insert into stu value('张三', 22, '110', '男'),('丽丝',26 , '120', '女'),('王五',27 ,'130', '男');
全表更新:update tableName set columnName=newValue;
条件更新:update tableName set columnName=newValue where columnName=currentValue;
全表删除:delete from tableName;
条件删除:delete from tableName where columnName=currentValue;
全表查询:select * from tableName;
去重查询:select distinct class from tablename;
统计查询,非空数据:select count(distinct ) from ;
重新定义查询结果表中的列名称:select count(*) [as] count from tablenam
聚合函数查询:
计算和值:select sum() xx from tablename;
计算平均值:select avg() xxfrom tablename;
最大值/最小值:select max/min() from
分组查询:select...from ...group by xx having(分组后的条件)
排序查询: select * from ... order by xx [asc/desc];(升序/降序)
分页查询:select * from ...limit number
子查询:例:select name,score from stu where name in (select name from info);
union联合查询:select * from sc union select

八、mysqld用户权限管理

创建远程管理用户

create user username@'ip地址' identified by '密码'
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'

查看用户权限

show grants for ''@'...%'

删除用户权限

revoke all on 库.表  from 'username'@'ipaddress';

九、mysqld数据库备份

备份类型
冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行
温备(warm backup):服务在线,但仅支持读请求,不允许写请求
热备(hot backup):备份的同时,业务不受影响
备份方法
物理冷备(完全备份)
专用备份工具mysqldump或mysqlhotcopy (完全备份,逻辑备份)
第三方工具备份

完整备份

mysqldump --all-databases -uroot > all.sql

恢复

mysql -uroot < all.sql

指定数据库的备份

mysqldump --databases 库名 -uroot > 库名.sql

恢复

mysql -uroot 库名< 库名.sql


网站公告

今日签到

点亮在社区的每一天
去签到