MySQL

本文详细介绍了MySQL数据库的基本概念,包括数据库、数据表、DBMS和DBS的定义,以及数据库系统的发展历程。重点讲解了MySQL的特点、安装过程和管理方法,如创建与删除数据库和表、数据类型、SQL语句分类。此外,还对比了关系型数据库与非关系型数据库,阐述了MySQL在开源、性能和成本上的优势。
摘要由CSDN通过智能技术生成

数据库的基本概念

数据库定义

数据

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

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

数据库

表的集合、时存储数据的仓库
以一定的组织方式存储的相互有关的数据集合

数据库管理系统(DBMS)

是实现对数据库资源有效组织、管理和存取的系统软件
数据库的建立和维护功能、数据库定义功能、数据操纵功能能、数据库的运行管理功能、通信功能

数据库系统(DBS)

是一个人机系统,有硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库

数据库系统发展史

第一代数据库

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

第二代数据库

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

第三代数据库

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

当今主流数据库介绍

SQL Server

面向Windows操作系统

简单、易用

Oracle

面向所有主流平台

安全、完善,操作复杂

DB2

面向所有主流平台

大型、安全、完善

MySQL

免费、开源、体积小

关系数据库

关系数据库系统是基于关系模型的数据库系统

关系模型的数据结构使用简单易懂的二维数据表

关系模型可用简单的“实体-关系”(E-R)图来表示

E-R图中包含了实体(数据对象)、关系和属性三个要素

实体

也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”
如游戏玩家、游戏账户等

属性

实体所具有的某一特性, 一个实体可以有多个属性

如“游戏玩家”实体集中的每个实体均具有姓名、大区、电话等属性

联系

实体集之间的对应关系称为联系,也称为关系

如游戏玩家和游戏账户之间存在“使用”的关系

所有实体及实体之间联系的集合构成一个关系数据库

关系数据库的存储结构是二维表格

在每个二维表中
每一行称为一条记录,用来描述一个对象的信息
每一列称为一个字段(栏位),用来描述对象的一个属性

关系数据库应用

关系型数据库

Oracle,MySQL
SQL Server. Sybase
Informix、access
DB2、FoxPRO

应用举例

淘宝账号系统

银行用户账号系统

网站用户信息系统

非关系数据库介绍

非关系数据库也被称作NoSQL (Not Only SQL)

存储数据不以关系模型为依据,不需要固定的表格式

非关系型数据库的优点

数据库可高并发读写

对海量数据高效率存储与访问

数据库具有高扩展性与高可用性

常用的非关系数据库:Redis、mongoDB等

MySQL数据库介绍

一款深受欢迎的开源关系型数据库

Oracle旗下的产品

遵守GPL协议,可以免费使用与修改

特点

性能卓越、服务稳定

开源、无版权限制、成本低

多线程、多用户

基于C/S (客户端/服务器)架构

安全可靠

编译安装MySQL

准备工作

 rpm -qa | grep mariadb
 yum -y install gcc gcc-c++ ncurses-devel openssl openssl-devel
 tar zxf cmake-3.16.2.tar.gz
 cd cmake-3.16.2
 ./configure
 gmake && gmake install
 tar zxf boost_1_59_0.tar.gz
 mv boost_1_59_0/ /usr/local/boost

在这里插入图片描述

MySQL数据库管理

数据库-->数据表-->行(记录):用来描述一个对象的信息
                列(字段):用来描述对象的一一个属性

查看数据库结构

systemctl status mysqld.service		#查看mysql服务是否安装启动

mysql -u root -p       #进入MySQL

在这里插入图片描述
在这里插入图片描述

查看当前服务器中的数据库

SHOW DATABASES;    #大小写不区分,分号“;"表示结束

在这里插入图片描述

查看数据库中包含的表

USE 数据库名;
SHOW TABLES;

在这里插入图片描述

查看表的结构(字段)

USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;

在这里插入图片描述

SQL语句

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

SQL语言分类

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

创建及删除数据库和表

创建新的数据库

表名库名都区分大小写

CREATE DATABASE 数据库名;

在这里插入图片描述

常用的数据类型

int整型
float单精度浮点4字节32位
double双精度浮点8字节64位
char固定长度的字符类型
varchar可变长度的字符类型
text文本
image图片
decimal(5,2)5个有效长度数字,小数点后面有2位

#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

创建新的表

CREATE TABLE 表名(字段1 数据类型,字段2 数据类型[,...][, PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL) ,一个表只能有一个主键

在这里插入图片描述

删除指定的数据表

use 数据库名
DROP TABLE 表名

DROP TABLE [数据库名.] 表名;
#如不用USE进入库中,则需加上数据库名

在这里插入图片描述

删除指定的数据库

DROP DATABASE 数据库名;

在这里插入图片描述

管理表中的数据记录

向数据表中插入新的数据记录

INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询数据记录

SELECT 字段名1,字段名2[,...] FROM 表名[WHERE 条件表达式];

在这里插入图片描述

修改、更新数据表中的数据记录

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

在这里插入图片描述
在这里插入图片描述

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

DELETE FROM 表名 [WHERE 条件表达式];

在这里插入图片描述

修改表名和表结构

修改表名

ALTER TABLE 旧表名 RENAME 新表名;

在这里插入图片描述

扩展表结构(增加字段)

ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值为地址不详,可与NOT NULL配合使用

在这里插入图片描述

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

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];

在这里插入图片描述

删除字段

ALTER TABLE 表名 DROP 字段名;

在这里插入图片描述

用另一种方法添加表

以我的实验为例:

create table if not exists xxx (id int(4) zerofill primary key auto_increment,xxx_name varchar(20) not null,cardid varchar(18) not null unique key,hobby varchar(50));

在这里插入图片描述

扩展表

if not exists表示检测要创建的表是否已存在,如果不存在就继续创建
int(4) zerofill表示若数值不满4位数,则前面用“0”填充,例0001
auto_increment表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
unique key表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
not null表示此字段不允许为NULL

添加新内容

在这里插入图片描述

添加新内容失败也会进行递增,并以此完善数据表

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值