文章目录
- 一、Mysql的基本概念
- 1.1数据库有哪些组成
- 数据
- 表
- 数据库
- 1.2数据库系统和数据库管理系统
- 1.3数据库的发展史
- 二、数据库的分类
- 三、数据库的数据类型
- 三、数据库的操作
- 3.1查看数据库的结构
- 3.2创建及删除数据库和表
- 3.3管理表中的数据记录
- 3.4修改表名和表结构
Linux操作系统:centos Ubuntu suse
国产系统:华为:欧拉、阿里:龙蜥 腾讯:tencentOS 麒麟(银河麒麟、中标麒麟-> centos 优麒麟-> Ubuntu ) 统信 红旗
一、Mysql的基本概念
1.1数据库有哪些组成
数据
- 描述事物的符号标记
- 包括数字、文字、图形、图像、声音、档案记录等
- 以“记录”形式按统一的格式存储
表
- 将不同的记录组织在一起
- 用来存储具体的数据
数据库
- 表的集合,是存储数据的仓库
- 以一定的组织方式存储的相互有关的数据集合
- 是按照数据结构来组织、存储和管理数据的仓库
数据库中有表,表中有记录。
1.2数据库系统和数据库管理系统
数据库管理系统:
- 是实现对数据库资源有效组织,管理和存取的系统软件
数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能
数据库系统:
-
是一个人机系统,由硬件、oS、数据库、DBMS、应用软件和数据库用户组成
-
用户可以通过DBMS或应用程序操作数据库
1.3数据库的发展史
第一代数据库
- 自20世纪60年代起,第一代数据库系统问世
- 是层次模型与网状模型的数据库系统
- 为统一管理和共享数据提供了有力的支撑。
第二代数据库
- 20世纪70年代初,第二代数据库——关系数据库开始出现
- 20世纪80年代初,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流
- 到目前为止,关系数据库系统仍占领数据库应用的主要地位
第三代数据库
-
自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
-
面向对象的数据库系统,实用性强、适应面广
-
20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面·
-
—些新的元素被添加进主流数据库系统中
- 例如,Oracle支持的“关系-对象”数据库模型
二、数据库的分类
数据库可以分两大类: 关系型数据库和非关系型数据库
关系型数据库
- 关系数据库系统是基于关系模型的数据库系统
- 关系模型的数据结构使用简单易懂的二维数据表
- 关系模型可用简单的“实体-关系”(E-R)图来表示
- E-R图中包含了实体(数据对象)、关系和属性三个要素
关系型数据库SQL 的存储结构为二维表,由库、表、数据组成其中数据是由行(字段)和列(记录)组成
-
每一行称为一条记录,用来描述一个对象的信息
-
每一列称为一个字段,用来描述对象的一个属性
-
关系型数据库典型代表: Mysql(5.7/8.0) Mariadb PostgreSQL Oracle SQL Server DB2
国产数据库代表: 阿里云RDB 华为 高斯 腾讯 TDBA 阿里 Oceanbase 人大金仓 达梦
非关系型数据库介绍
-
非关系数据库也被称作NoSQL (Not Only sQL)
-
存储数据不以关系模型为依据,不需要固定的表格式
-
非关系型数据库的优点
-
数据库可高并发读写
-
对海量数据高效率存储与访问
-
数据库具有高扩展性与高可用性
-
-
非关系型数据库:
缓存型:Redis Mecached
文档型:MongoDB
搜索型:ElasticSearch(ES)
时序型:Prometheus InfluxDB
三、数据库的数据类型
常用的数据类型:
数据 | 作用 |
---|---|
int: | 整型 无符号【0,2^32-1】,有符号【-2^31,2^32-1】 |
float: | 单精度浮点 4字节32位 |
double: | 双精度浮点 8字节64位 |
char: | 固定长度的字符类型 |
varchar: | 可变长度字符类型 |
text: | 文本 |
image: | 图片 |
decimal(5,2) | 五个有效长度数字,小数点后面有2位 |
char与varchar的区别 :
值 | CHAR(4) | 存储需求 | VARCHAR(4) | 存储需求 |
---|---|---|---|---|
‘’ | ’ ’ | 4个字节 | ‘’ | 1个字节 |
‘ab’ | 'ab ’ | 4个字节 | ‘ab’ | 3个字节 |
‘abcd’ | ‘abcd’ | 4个字节 | ‘abcd’ | 5个字节 |
‘abcdefgh’ | ‘abcd’ | 4个字节 | ‘abcd’ | 5个字节 |
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
字节大小:
- char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是4字节。
- varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一个字节。
优劣比较:
- varchar比char节省磁盘空间。
- 但varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,e而varchar在多次增删改查中会产生一些磁盘空间碎片
浮点数的含义:
float(m,d)
设个字段定义为float(6,3),如果插入一个数123.4578实际存入库里的是123.457,整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200
三、数据库的操作
3.1查看数据库的结构
1、查案看当前数据库
show databases;
2、查看数据库当中包含的表
方法一:
use 数据库名;
show tables;
方法二:
show tables from 数据库名
3、查看表的结构
use 数据库名;
desc 表名;
SQL语句
SQL语句用于维护管理数据库,包括数据查询、数据更新、
SQL语言分类:
- DDL: 数据定义语言,用于创建数据库对象,如库、表、索引等
- DML:数据操纵语言,用于对表中数据进行管理
- DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
- DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
3.2创建及删除数据库和表
1、创建新的数据库
create database 新的数据库名;
2、创建新的表
use 数据库名;
create table 新的表名 (字段一 数据类型,字段二 数据类型,primary key (主键名));
- 主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
3、删除指定的数据表
drop 数据库名.数据表名;
4、删除数据库名
drop database 数据库名;
3.3管理表中的数据记录
use class;
insert into 数据库名 (字段一,字段二,字段三)values (记录1,记录2,记录3);
2、查询数据记录
select * from 表名;
select * from 数据表名 limit 2; # 查看表的前两行
select * from 数据表名 limit 2,3; #查看表前两行的后三行
select * from 数据表名 where 表达式;#查询表中所有符合条件的
3、修改数据表中的数据记录
update 数据表名 set 字段1=字段值1,字段2=字段值2 where 条件表达式;
4、删除数据
delete from 数据表名 where 表达式;
3.4修改表名和表结构
1、修改表名
alter table 旧表名 rename 新表名;
2、拓展表结构
alter table 数据表名 add 新的字段 数据类型 default ‘默认值’
3、修改字段名,并添加唯一值
alter table 数据表名 change 旧字段名 新字段名(数据类型) unique key;
4、删除字段
alter table 数据表名 drop 字段名;