MySQL数据库介绍

本文介绍了数据库的基本概念,重点讲述了MySQL的安装部署过程,并详细解析了MySQL的命令行基本操作,包括创建数据库、建表、插入、修改记录等。此外,还讨论了MySQL事务的重要性及其特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1数据库的概念

1.1.1数据集存储的方法

        大脑记住、写纸上、写在计算机的内存、卸载磁盘文件

1.1.2企业的数据库面临的问题

        存储大量的数据、大量数据的检索和访问、保持数据的一致完整

数据的共享和安全、通过分析产生更加有用的信息。

1.1.3数据库的基础

(1)什么是数据库

数据库一个长期储存在计算机内的,有组织,共享的,统一管理的数据集合,它是一个按数据结构来存储和管理数据的计算机软件系统。

是用户存放数据、访问数据、操作数据的仓库,用户的各种数据被有组织的存放在数据库中,可以随时被有权限的用户查村,统计,添加,删除,修改。

(2)数据库的特点

实现数据共享,减少数据的冗余,采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能

(3)表

数据库的表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构,被称之为记录,是组织数据的单位;列被称为字段,每一列表示记录的属性。

(4)数据类型

数据类型决定这数据在计算机中的存储格式,代表着不同的信息类型,常用的数据类型有,整数数据类型,浮点型数据类型,精准小数类型,二进制数据类型,日期时间数据类型,字符串数据类型,表中的耨个字段就是某个指定的数据类型

(6)主键

使用唯一标识表中的每一条记录,可以定义表中的一列或者多列为主列,主键列上不能有相同的值或者为空。

1.1.4数据库的构成

(1)数据库系统

数据库:存储数据的地方

数据库管理系统:用于管理数据的软件,授权,提供数据的操作机制,维护数据的安全性,完整性和可靠性

数据库应用程序:为了提高数据系统的处理能力所使用的管理数据 库的软件补充

1.1.5数据库的种类

目前最常用的数据库模型就两种,关系型数据库和非关系型数据库。

1、关系型数据库

网络数据库和层次数据库很好的解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有用户对这两种数据库进行存取时,依然需要明确的数据的存储结构,支出存储路径。而关系型数据库就解决这些问题。

关系型数据库就是把复杂的数据结构归结为简单的二元关系(既二维表格形式)

(1)关系模型

         关系数据结构(存储)关系操作结构(操作)关系完整性约束(约束)

(2)关系型数据库存储在磁盘中(永久存储)

(3)关系型数据库系统模型有四层结构

        数据库管理系统:管理系统运行

        数据库:数据存储的管理者

        数据字段:依赖于数据表,实际数据存储者

(4)关系型数据库产品

        大型:oracle  DB2

        中型:mysql 、SQL server

        小型:Sybase   、access

2、非关系型数据库

 所有不是关系型数据库的统称

数据库存储模型不是二维表,而是键对值

存储的位置通常是内存

不能永久性存储

常见的非关系型数据库产品

MONGODB

Redis

Memcached

NOsql 通常是与关系型数据库配合使用的,他们彼此是一种互补关系

NOsql运行在内存,在解决效率问题

I/O问题      效率问题

mysql运行在磁盘,解决稳定问题

安全问题(永久) 稳定

1、NOSQL不是否定关系数据库,而是作为关系型数据库的一个重要的补充

2、NOSQL为了我高性能,高并发而生,忽略影响高性能,高并发的功能

3、NOSQL典型产品memcached(纯内存)、redis(持久化缓存),mongodb(文档的数据库)

2、MySQL的安装部署

2.1 安装包获取

MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/

 2.2RPM包安装

相关软件包

方法一:官方YUM源方式安装

官方yum源安装的速度很慢

MySQL :: Download MySQL Yum Repositoryhttps://dev.mysql.com/downloads/repo/yum/

 

 

 

 下载真的很慢,不建议尝试

方法二:下载rpm包安装:
1、卸载mariadb

rpm -e mariadb-libs postfile

2、安装

 创建一个MySQL的组和用户

创建一个MySQL的目录,方便一会儿解压的时候放在这个目录中

mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar这个包在第一个网址里面就能下载,使用外面下载包在拉到终端解压就是为了方便快捷。

进入刚才创建的mysql的目录中,然后使用yum localinstall * (localinstall和*中间是有空格的)

这个命令是一个安装本地的rpm包的命令。

3、启动

MySQL数据库启动的时候是mysqld 

 systemctl  list-unit-files|grep mysqld 这个是查看数据库的启动情况

4、MySQL安装完成以后,在/var/log/mysql.log文件给root生成一个默认密码,通过下面的命令可以找到root的默认密码,然后登陆MySQL修改原始密码改成自己的密码

 现在就登陆了数据库,需要设置自己的密码才能操作数据库

ALTER USER 'root'@'localhost' IDENTIF'Nebula@123';

 查看密码规范

MySQL命令行基本操作

1、查看数据库

当我们安装MySQL8.0并且初始化数据库以后,默认会创建一下的数据库系统

MySQL:存储数据库mysql服务器正常运行所需要的各种信息

information_schema :提高访问数据库元数据的各种视图,包括数据库、表,字段类型以后访问权限。

perforance_schema: 为mysql服务器的运行时状态提供一个底层的监控功能

sys:包含了一系列方便DNA和开发人员利用 perforance_schema性能数据库进行性能调优和诊断的视图。

2、显示某个数据库中的表

USE DATABASE NAME; 进入数据库

SHOW TABLES; 查看数据库的表。

 3、创建数据库

create database 库名;

例如: create database test;

 4、建表

use 库名;

create table 表名;

例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长)name(姓名),sex(性别),birth(出身年月)四个字段

  use test;

  mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);

 可以用describe命令察看刚建立的表结构。

describe name;

 6、增加记录 

例如:增加几条相关记录

         insert into name values (NULL, 张三,'男','1988-08-02');

        insert into name values (NULL, 张三,'男','1988-08-02');

        

 7、修改记录

例如:将张三的出生年月日改成1997-02-08

        update name set csny=‘1997-02-08’

 8、删除记录

mysql> delete from name where xm='张三';

  9、修改表

alter table t1 modify name char(3);

  10、删除库和表

    drop database 库名;

    drop table 表名;

   11、备份

例如:将上例创建的库备份到文件back_test

         cd /mysql

        mysqldump -uroot -p -opt test > back_test

    12、恢复

         mysql -u root  -p test < back_test

总结:

库的操作:

增: CREATE DATABASE 库名;

查:SHOW DATABASES; 查看所有的库      show   CREATE DATABASE  库名 查看单独的某个库

改: alter database test charset latin1; 修改库的字符集

删: drop  database  test ;

切换库:  use 库名

表的操作:

:create table t1 (id int , name char(10));
: show tables;   查看当前库中的所有表

show create table t1;  查看单表的创建信息      desc t1;  以列表形式查看单表信息

: alter table t1 modify name char(3);   alter table t1 change name name1 char(2);

修改表名

alter table emplpyee6 rename employee6;

:
drop table t1;
清空表 :

delete from t1;  如果有自增id,新增的数据,仍然是以删除前的最后一行作为起始。

truncate table t1;  数据量大,删除速度比上一条快,且直接从零开始

数据的操作:

:
insert into t1 values (1,"
张三 "), (2," 李四 ");
:
select * from t1;
  查看 t1 表的所有字段数据

select id, name from t1; 查看t1表的id, name字段的信息

:
update t1 set name="
王五 " where id=2;
:
delete from t1 where id=1;
显示当前数据的版本和当前的日期
查询时间:select now();
查询版本信息:select verdion();
查询当前的用户:select user();
查询当前使用的数据库:select  database ();

复制数据库 :
复制数据库中所有的内容
mysqldump -u root -p --all-databases > db.sql
复制数据库中的某几个库
mysqldump -u root -p --databases 库名 1 库名 2 > db.sql
复制数据库中的某张表
mysqldump -u root -p 库名 表名 1 表名 2 > db_table.sql
还原数据库 :

mysql -u root -p < db.sql

mysql -uroot -ppassword #登陆数据库

进入库中,然后在SOURCE /HOME/MYSQL/TEST.SQL

复制表 :
只复制表结构到新表
creare table 新表名 select * from 库名 . 旧表名 where 1=2   主键类型和自增方式是不会复制过去的
create table 新表名 like 库名 . 旧表名   把旧表的所有字段类型都复制到新表

 数据库迁移/备份

复制表结构及数据到新表
create table 新表 select * from 旧表名
复制旧表的数据结构到新表 ( 两个表结构一样 )

insert into 新表 select * from 旧表

复制旧表的数据结构到新表 ( 两个表结构不一样 )

insert into 新表 (字段1, 字段2......) select 字段1, 字段2...... from 旧表

 MySQL事务

MySQL事务主要是hi处理操作量答大、复杂度高度的数据,比如说,人员在离职时要删除人员的基本资料,也要删除该人员相关的信息,这种事情就会成一种事务

一般来说必须满足4个条件:原子性、一致性、隔离性、持久性

原子性:一个操作要么完成要么全部不完成,

一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏,这表示写入的资料必须完全符合有的预设规则,者包含资料的精准度,串联性以后及数据库可以自主完成预设的工作

隔离性:数据库允许多个事务同时对其数据进行读写和修改的能力,隔离性就是防止多个事务同时并发执行由于交叉而导致数据的不一致,事务隔离分为不同的级别:读未提交、读提交、可重复读和串行化。

持久化:事务处理结束后,对数据的修改时永久的,即便系统故障也不会丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值