数据库的基本概念、安装MySQL及基础运用

news2024/11/29 22:45:32

目录

一、数据库的基本概念

1. 使用数据库的必要性

2. 数据(Data)

3. 表

4. 数据库

5. 数据库管理系统(DBMS)

6. 数据库管理系统DBMS的优点

7. 使用数据库的必要性总结

 8. 访问数据库的流程

二、数据库发展及基本功能

1. 发展阶段

1.1 萌芽阶段:文件系统

1.2 初级阶段:第一代数据库

1.3 中级阶段:第二代数据库

1.4 高级阶段:新一代数据库

 2. 基本功能

 3. 数据库系统的架构

 三、MySQL数据库介绍

1. MySQL数据库是什么?

 2. 特点

 3. 版本演变

 4. 组成

4.1 客户端程序

 4.2 服务端程序

 四、编译安装mysql数据库

 五、mysql 数据库基本信息

1. SQL分类

2. SQL语言规范

 3. 数据库对象和命名

 4.SQL 语句分类

六、MYSQL的基本操作

1. 数据库开启、关闭、状态

 2. 设置mysql密码

3. 登录、登出mysql

4. 查看当前数据库结构

 5.查看数据库中包含的表

6. 查看表的结构

5. 查看mysql版本

6. 建立新的数据库

 7. 删除指定的数据库

 8. 建立表格

 9.删除指定数据库

 七、管理表中的数据记录

1. 向数据表中插入新的数据记录(insert into)

 2. 查询数据表内数据记录(select)

 3. 修改、更新数据表中的数据记录(update)

 4 在数据表中删除指定的数据记录

 八、修改表名和表结构

1. 修改表名(rename)

 2.扩展表结构,增加字段(add)

3. 修改字段(列)名,添加唯一键(change)

 4. 删除字段(drop)


一、数据库的基本概念

内核作用:调用硬盘资源

1. 使用数据库的必要性

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。

2. 数据(Data)

描述事物的符号记录,包括数字,文字、图形、图像、声音、档案记录等,以“记录”形式按统一的格式进行存储。

3. 表

将不同的记录组织在一起,用来存储具体数据。

4. 数据库

表的集合,是存储数据的仓库。以一定的组合方式存储的相互有关数据集合。

5. 数据库管理系统(DBMS)

数据库管理系统是实现对数据库资源有效组织、 管理和存取的系统软件。

功能:

  • 数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。
  • 数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。
  • 数据操纵功能:包括数据查询统计和数据更新两个方面。
  • 数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。
  • 通信功能:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行 数据交换。

6. 数据库管理系统DBMS的优点

  • 相互关联的数据的集合
  • 较少的数据冗余
  • 程序与数据相互独立
  • 保证数据的安全、可靠
  • 最大限度地保证数据的正确性
  • 数据可以并发使用并能同时保证一致性

7. 使用数据库的必要性总结

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。 数据库具有以下特点。

  • 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。
  • 可以有效地保持数据信息的一致性、完整性,降低数据冗余。
  • 可以满足应用的共享和安全方面的要求。
  • 数据库技术是计算机科学的核心技术之一,具有完备的理论基础。对数据库基本概念的掌握,将有助于对数据库的理解。

 8. 访问数据库的流程

 过程:

首先应用程序把查询SQL语句发给服务器端执行。其次服务器解析请求的SQL语句。最后语句执行。

注意:1.确保SQL语法正确;2.确保SQL语义上的正确性即对象是否存在;3.数据库用户是否具有相应的访问权限。

二、数据库发展及基本功能

1. 发展阶段

1.1 萌芽阶段:文件系统

使用磁盘文件来存储数据

1.2 初级阶段:第一代数据库

出现了网状模型、层次模型的数据库

  • 自20世纪60年代起,第一代数据库系统问世
  • 是层次模型与网状模型的数据库系统
  • 为统一管理和共享数据提供了有力的支撑
1.3 中级阶段:第二代数据库

关系型数据库和结构化查询语言

  • 20世纪70年代初,第二代数据库——关系数据库开始出现
  • 20世纪80年代初,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流
  • 到目前为止,关系数据库系统仍占领数据库应用的主要地位
1.4 高级阶段:新一代数据库

“关系-对象”型数据库

  • 自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
  • 面向对象的数据库系统,实用性强、适应面广
  • 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面
  • 一些新的元素被添加进主流数据库系统中。例如,Oracle支持的“关系-对象”数据库模型

 2. 基本功能

  1. 数据定义
  2. 数据处理
  3. 数据安全
  4. 数据备份

 3. 数据库系统的架构

  1. 单机架构
  2. 大型主机/终端架构
  3. 主从式架构(C/S)
  4. 分布式架构

 三、MySQL数据库介绍

1. MySQL数据库是什么?

一款深受欢迎的开源关系型数据库,Oracle旗下的产品,遵守GPL协议,可以免费使用与修改

 2. 特点

  • 性能卓越、服务稳定
  • 开源、无版权限制、成本低
  • 多线程、多用户
  • 基于C/S(客户端/服务器)架构
  • 安全可靠

 3. 版本演变

MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 --->8.0

第一阵营:5.0-5.1阵营,可说是早期产品的延续
第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营:6.0-7.1阵营,就是MySQL Cluster版本, 为适应新时代对数据库的集群需求而开发

MariaDB:5.1 --> 5.5 --> 10.0--> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5

 mysql -V    查看MySQL版本

 4. 组成

4.1 客户端程序
  • mysql: 交互式的CLI工具
  • mysqladmin:基于mysql协议管理mysqld
  • mysqlimport:数据导入工具
  • MyISAM存储引擎的管理工具:
  • myisamchk:检查MyISAM库
  • myisampack:打包MyISAM表,只读
 4.2 服务端程序
  • mysqld_safe
  • mysqld
  • mysqld_multi 多实例 ,示例:mysqld_multi

 四、编译安装mysql数据库

将mysql的压缩包放到opt中

mysql8.0.33安装:
安装过程:
 tar -xf mysql-8.0.33-el7-x86_64.tar.gz 
mv mysql-8.0.33-el7-x86_64 mysql
mv mysql /usr/local/

#创建程序用户管理
useradd -s /sbin/nologin mysql

#修改mysql目录和配置文件的权限
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

#修改配置文件
vim /etc/my.cnf

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

#设置环境变量,申明/宣告mysql命令便于系统识别
 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

#初始化数据库:
cd /usr/local/mysql/bin/

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#设置系统识别,进行操作:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
 chmod +x /etc/init.d/mysqld
systemctl daemon-reload
systemctl restart mysqld

#初始化数据库密码:
mysqladmin -u root -p password "123456"
直接回车即可

#进入数据库:
mysql -u root -p123456
#创建用户并设置密码:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

#赋予远程连接的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

#刷新生效
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

#修改加密方式,可以进行远程连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

 五、mysql 数据库基本信息

1. SQL分类

  • 数据库:database
  • 表:table,行:row 列:column
  • 索引:index
  • 视图:view
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler,任务计划
  • 用户:user
  • 权限:privilege

2. SQL语言规范

  • 在数据库系统中,SQL 语句不区分大小写,建议用大写
  • SQL语句可单行或多行书写,默认以 " ; " 结尾
  • 关键词不能跨多行或简写
  • 用空格和TAB 缩进来提高语句的可读性
  • 子句通常位于独立行,便于编辑,提高可读性

 3. 数据库对象和命名

数据库的组件(对象):

数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等

命名规则:

必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)

不要使用MySQL的保留字,如tabble select show databases

 4.SQL 语句分类

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

语句代表的意思
DDL数据定义语言,用于创建数据库对象,如库、表、索引等
DML数据操纵语言,用于对表中的数据进行管理
DQL数据查询语言,用于从数据表中查找符合条件的数据记录
DCL数据控制语言,用于设置或者更改数据库用户或角色权限

六、MYSQL的基本操作

1. 数据库开启、关闭、状态

systemctl enable mysqld        #设置开机自启
systemctl start mysqld         #开启
systemctl stop mysqld          #关闭
systemctl start mysqld         #开启
systemctl status mysqld        #查看状态
ss -anpt | grep 3306           #过滤端口验证是否开启

 2. 设置mysql密码

#修改密码为123123 开始初始密码为空  回车即可
mysqladmin -u root -p password "设置的密码"

3. 登录、登出mysql

#登录
mysql -u root -p
 
#授予root用户可以在所有终端远程登录,使用的密码是123123,并对所有数据库和所有表有操作权限
grant all privileges on *.* to 'root'@'%' identified by '123123';
 
#退出
quit

4. 查看当前数据库结构

show databases;					#大小写不区分,分号“;”表示结束
#结束时一定要用 【 ;】

 5.查看数据库中包含的表

方法一:在库中查看表
use mysql;             #use 数据库名
show tables;           #查看表
 
法二 :在库外查看表
show tables from mysql;    #show tables from 数据库名

6. 查看表的结构

use 数据库名;
describe [数据库名.]表名;
可缩写成:desc 表名;

5. 查看mysql版本

mysql -V

6. 建立新的数据库

#建立数据库 
create database 数据库名;

 7. 删除指定的数据库

drop database 数据库名;

 8. 建立表格

use 数据库名;
create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
 
例如:
use chengnan;
create table students (id smallint unsigned primary key auto_increment, name varchar(10), age tinyint unsigned,gender enum('M','F') default 'M' );
 
#unsigned:取消负数
primary  key:主键
auto_increment: 自增长
enum('M','F'):多选 
default 'M':默认值为 M

 9.删除指定数据库

方法一:库内删除
use 数据库名;
drop table 数据表名;
 
方法二:库外删除
#如不用USE进入库中,则需加上数据库名
drop table 数据库名.数据表名;			

 七、管理表中的数据记录

1. 向数据表中插入新的数据记录(insert into)

insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);
 
例如:
insert into students(id,name,age,passwd) values(2,'lisi',20,'112233' );
insert into students(id,name,age,passwd) values(2,'jiami',22,PASSWORD('123456'));
#PASSWORD('112233'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示
select * from students;
 
提前新建数据表(注意长度设置)
use mysql;
create table students (id smallint unsigned primary key auto_increment, name varchar(10),age tinyint unsigned, passwd varchar(48));

 2. 查询数据表内数据记录(select)

select 字段名1,字段名2[,...] from 表名 [where 条件表达式];
 
基本操作:
1. #查询全部数据
select * from 数据表名;
例如:
select * from students;
 
2. #查询指定数据
例如:
select id,name from students where id=2;

更多操作:
3. #以列表方式竖向显示
select * from 数据表名\G;			
例如:
select * from students\G;
 
4. #只显示头2行
select * from 数据表名 limit 2;
例如:	
select * from students limit 2;
 
5. #显示第3行后的2行
select * from 数据表名 limit 3,2;
例如:
select * from students limit 3,2;

 3. 修改、更新数据表中的数据记录(update)

update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
 
例如:
update students set age=19 where id=4;
update students set age=20,passwd='111111' where id=2;    #同时修改age和passwd
 

 4 在数据表中删除指定的数据记录

delete from 表名 [where 条件表达式];
 
例如:
delete from students where id=2;
 
!!!!注意id并不会顶上去!!!!

 八、修改表名和表结构

1. 修改表名(rename)

alter table 旧表名 rename 新表名;
 
例如:
alter table students rename xuesheng;

 2.扩展表结构,增加字段(add)

alter table 表名 add 字段;
 
例如:
alter table xuesheng add address varchar(50) default 'wait get';
#default 'wait get':表示此字段设置默认值 wait get;可与 NOT NULL 配合使用

3. 修改字段(列)名,添加唯一键(change)

alter table 表名 change 旧列名 新列名 数据类型 [unique key];
 
例如:
alter table xuesheng change name user_name char(30) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。
验证:
insert into xuesheng values(6,lili,23,234567,NANKING);
失败,因为设置了唯一键,lili不能重复,改成lulu即可
insert into xuesheng values(6,lulu,23,234567,NANKING);

 4. 删除字段(drop)

alter table 表名 drop 字段名;
 
例如:
#删除表中passwd字段
alter table xuesheng drop passwd;

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

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

相关文章

宠物空气净化器怎么选?希喂、霍尼韦尔、美的宠物哪款除毛好?

身为养宠五年的资深铲屎官,最近收到了很多新手养宠朋友关于宠物空气净化器的挑选疑问。宠物空气净化器作为宠物领域目前最火热的产品,谈论度一直很高,评价也褒贬不一。双十一购物节又即将到来,大家都想赶上这一波优惠活动。 铺天盖…

Automa插件之js脚本小技巧:零依赖的日期时间格式化,亲测好用!

背景 在使用 Automa 插件自动下载文件时,有时候需要根据当前时间重新命名文件,如果是时间戳的话倒是也可以防重复文件命名,只不过那样的话,没有了时间可读性. 所以需要日期时间格式化,分享一个一直在用的纯 js 格式化日期脚本,可实现简单的日期格式化. 文末附完整代码,直接复制…

时序约束进阶四:set_input_delay和set_output_delay详解

目录 一、前言 二、set_input_delay/set_output_delay 2.1 延时约束 2.2 约束设置界面 2.3 示例工程 2.4 Delay Value 2.5 Delay value is relative to clock edge 2.6 Delay value already includes latencies of the specified clock edge 2.7 Rise/Fall 2.8 Max/M…

教育部白名单赛事到底是什么?大家为什么那么重视它?

近年来,随着素质教育的推广和升学竞争的加剧,白名单赛事这一概念变得越来越热门。所谓的白名单赛事,是指经过教育部批准并公布的竞赛名单。这些比赛不仅具备权威性和高含金量,还受到各大中小学、重点高中和高校的广泛认可。在升学…

文件句柄泄漏排查及方法总结

如果只是怀疑文件句柄泄漏,可以通过Process Explorer 找到对应进程,双击点开查看performance中的handles变化即可,然后结合I/O项变化进行大致分析。 ——当然对于程序员而言,不光是要发现问题,还要定位问题。 针对li…

Qt 自绘开关按钮以及设计器中的提升为用法

文章目录 自绘按钮实现概要效果图代码 提升为用法介绍步骤 总结 自绘按钮实现 概要 当我们需要一个开关样式的QPushbutton,没有图片的话,我们可以采用自绘的形式实现。且使用QtDesinger中提升为Promote to的功能加入界面中,而不是使用代码的…

C++入门基础知识107—【关于C++continue 语句】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C continue 语句的相关内容!…

初始爬虫13(js逆向)

为了解决网页端的动态加载,加密设置等,所以需要js逆向操作。 JavaScript逆向可以分为三大部分:寻找入口,调试分析和模拟执行。 1.chrome在爬虫中的作用 1.1preserve log的使用 默认情况下,页面发生跳转之后&#xf…

基于html的大模型调试页面

效果1 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>API Call Example</title><st…

C++面向对象--------继承篇

目录 一.继承&#xff08;重点&#xff09; 1.1 概念 1.2 构造函数 1.2.1 派生类与基类的构造函数关系 1.2.2 解决方案 1.2.2.1 补充基类的无参构造函数 1.2.2.2 手动在派生类中调用基类构造函数 1.2.2.2.1 透传构造 1.2.2.2.2 委托构造 1.2.2.2.3 继承构造 1.3 对象…

为什么SEO是一个不断学习和适应的过程?

SEO并不是一成不变的&#xff0c;它是一个需要不断学习和适应的过程。谷歌的算法经常更新&#xff0c;用户的搜索行为也在不断变化&#xff0c;这使得SEO策略必须与时俱进&#xff0c;才能保持有效性。企业需要认识到&#xff0c;SEO是一项长期的投资&#xff0c;需要持续的关注…

Spring WebFlux 响应式概述(1)

1、响应式编程概述 1.1、响应式编程介绍 1.1.1、为什么需要响应式 传统的命令式编程在面对当前的需求时的一些限制。在应用负载较高时&#xff0c;要求应用需要有更高的可用性&#xff0c;并提供低的延迟时间。 1、Thread per Request 模型 比如使用Servlet开发的单体应用&a…

PostgreSQL学习笔记十:锁机制详解

一、PostgreSQL 的锁机制 PostgreSQL中的锁机制是确保数据一致性和完整性的关键。它通过不同级别的锁来控制对数据对象的并发访问&#xff0c;主要包括表级锁、行级锁、页级锁、咨询锁&#xff08;Advisory Locks&#xff09;以及死锁&#xff08;Deadlocks&#xff09;。 1. …

基于Java+Springboot+Vue开发的大学竞赛报名管理系统

项目简介 该项目是基于JavaSpringbootVue开发的大学竞赛报名管理系统&#xff08;前后端分离&#xff09;&#xff0c;这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能&#xff0c;同时锻炼他们的项目设计与开发能力。通过学习基于Java…

# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(九)--网络设置与文件上传下载

linux从入门到精通-从基础学起&#xff0c;逐步提升&#xff0c;探索linux奥秘&#xff08;九&#xff09;–网络设置与文件上传下载 一、网络设置 1、首先知道网卡配置文件位置&#xff1a;/etc/sysconfig/network-scripts [rootlocalhost test1]# ls /etc/sysconfig/netwo…

JSON 格式化工具:快速便捷地格式化和查看 JSON 数据

JSON 格式化工具&#xff1a;快速便捷地格式化和查看 JSON 数据 为什么需要 JSON 格式化工具&#xff1f; 在日常开发和调试中&#xff0c;JSON 是非常常见的数据交换格式。无论是前端与后端的接口调用&#xff0c;还是数据存储和处理&#xff0c;JSON 格式都扮演着重要角色。…

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量

ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】&#xff1a; let 变量名: 类型 值 let&#xff1a;是定义变量的关键字类型&#xff1a; 值数据类型&#xff0c; 常用的数据类型 字符型&#xff08;string&#xff09;、数字型&#xff08;number&#xf…

PG 17 增量备份功能介绍

背景 PG 17 新增了增量备份功能&#xff0c;可以通过 pg_basebackup --incrementalPATH_TO_MANIFEST 命令进行增量备份。 官方文档&#xff1a;https://www.postgresql.org/docs/current/app-pgbasebackup.html 使用方法 全量备份 启动实例后&#xff0c;首先配置参数 sum…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第三十五章 嵌入式开发概述及环境构建

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

数据库表使用方法:

数据库表&#xff1a; 提供四种类型的约束保证完整性&#xff1a; 1.域完整性&#xff0c;2.实体完整性 3.自定义完整性 4.引用完整性 实体完整性&#xff1a; 约束方法&#xff1a;唯一约束&#xff0c;主键约束&#xff0c;标识列 域完整性&#xff1a; 约束方法&#x…