【Linux】MySQL数据库 (一)

news2024/12/23 6:16:48

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

MySQL数据库

  • 一、数据库的基本概念
  • 二、数据库系统发展史
    • 1.第一代数据库
    • 2.第二代数据库
    • 3.第三代数据库
  • 三、当今主流数据库介绍
    • 1.关系数据库
    • 2.非关系数据库
  • 四、MySQL数据库管理
  • 五、示例演示
    • 1.创建及删除数据库和表
      • 1. 创建新的数据库
      • 2.创建新的表
      • 3.删除指定的数据表
      • 4.删除指定的数据库
    • 2. 管理表中的数据记录
      • 1.向数据表中插入新的数据记录
      • 2.查询数据记录
      • 3.修改、更新数据表中的数据记录
      • 4.在数据表中删除指定的数据记录
    • 3. 修改表名和表结构
      • 1.修改表名
      • 2.扩展表结构(增加字段)
      • 3.修改字段(列)名,添加唯一键
      • 4.删除字段
    • 案例扩展


一、数据库的基本概念

数据 (Data)

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

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

数据库

  • 表的集合,是存储数据的仓库
  • 以一定的组织方式存储的相互有关的数据集合
  • 是按照数据结构来组织、存储和管理数据的仓库

数据库管理系统(DBMS)

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

数据库系统

  • 是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组
  • 用户可以通过DBMS或应用程序操作数据库
    在这里插入图片描述

二、数据库系统发展史

1.第一代数据库

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

2.第二代数据库

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

3.第三代数据库

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

三、当今主流数据库介绍

  • SQL Server (微软公司产品)
    面向Windows操作系统
    简单、易用
    在这里插入图片描述

  • Oracle (甲骨文公司产品)
    面向所有主流平台
    安全、完善,操作复杂
    在这里插入图片描述

  • DB2 (IBM公司产品)
    面向所有主流平台
    天型、安全、完善
    在这里插入图片描述

  • MySQL (甲骨文公司收购)
    免费、开源、体积小
    在这里插入图片描述

1.关系数据库

  • 关系数据库系统是基于关系模型的数据库系统
  • 关系模型的数据结构使用简单易懂的二维数据表
  • 关系模型可用简单的“实体-关系”(E-R)图来表示
  • E-R图中包含了实体(数据对象)、关系和属性三个要素
  • 关系数据库的存储结构是二维表格
  • 在每个二维表中
    每一行称为一条记录,用来描述一个对象的信息
    每一列称为一个字段,用来描述对象的一个属性
    在这里插入图片描述

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

典型代表:

Mysql(5.7/8.0) Mariadb PostgreSQL Oracle SQL Server DB2
阿里云RDB 华为高斯 腾讯TDBA 阿里oceanbase 人大金仓 达梦

2.非关系数据库

  • 非关系数据库也被称作NoSQL (Not Only SQL)
  • 存储数据不以关系模型为依据,不需要固定的表格式
  • 非关系型数据库的优点
    数据库可高并发读写
    对海量数据高效率存储与访问
    数据库具有高扩展性与高可用性
  • 常用的非关系数据库:Redis、mongoDB等

非关系型数据库类型:
非关系型数据库 k/y key/value
缓存型 Redis Memcached
文档型 MongoDB
搜索型 Elasticsearch
时序型 Prometheus

四、MySQL数据库管理

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

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

五、示例演示

1.创建及删除数据库和表

1. 创建新的数据库

CREATE DATABASE 数据库名;

在这里插入图片描述

2.创建新的表

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

在这里插入图片描述

3.删除指定的数据表

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

在这里插入图片描述

4.删除指定的数据库

DROP DATABASE 数据库名;

在这里插入图片描述

2. 管理表中的数据记录

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

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

在这里插入图片描述

2.查询数据记录

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

3. 修改表名和表结构

1.修改表名

ALTER TABLE 旧表名 RENAME 新表名;

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

4.删除字段

ALTER TABLE 表名 DROP 字段名;

在这里插入图片描述

案例扩展

use ztm;
create table if not exists info (
id int(4) zerofill primary key auto_increment,				#指定主键的第二种方式
name varchar(10) not null default '匿名',
cardid int(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

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

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

相关文章

浅谈中移链中插件的功能及使用

中移链是在满足我国信息化监管需求、合规可控的前提下,打造的中国移动区块链服务平台。它允许使用插件来扩展其功能,以适应各种不同的使用场景。 什么是中移链插件呢?如果把中移链比作一个操作系统,那么插件就类比于操作系统上的…

chatgpt赋能python:Python编写选择题程序

Python编写选择题程序 Python是一种高级编程语言,由于其简洁、易读、易懂和易学的特性,使得Python成为了目前最流行的编程语言之一。Python的强大功能也使得它可以轻松地编写各种类型的程序,包括选择题程序。本文将介绍如何使用Python编写选…

SpringBoot全局异常页面处理学习

首先我们先在控制器中写一个异常,默认情况下我们的SpringBoot异常页面是这个样子的。 示例代码如下: import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;/*** author qinxun* date 202…

mov、mvn、cmp等ARM汇编指令集数据处理类指令(三星2440A)

文章目录 前言一、为什么要学习汇编?二、2440下常用汇编指令1. 汇编指令集合2. 2440编译(汇编)工程框架 三、汇编指令详解1. mov指令2. mvn3. add、sub、mul、rsb(算术运算)4. and、orr、eor、bic5. cmp、teq、tst5.1 …

视频会议需要什么设备?视频会议软硬件介绍

视频会议系统简介 视频会议系统是一种通过网络技术实现远程音视频通信的系统。它可以让不同地点的人们在同一时间进行实时的视音频交流,从而实现远程会议、远程教育、远程医疗以及最近比较新兴的直播等应用场景。 视频会议系统组成 视频会议系统通常包括摄像头、…

chatgpt赋能python:Python中如何精确到小数点

Python中如何精确到小数点 Python作为一种高级编程语言,被广泛应用于数据科学、网站开发、人工智能等领域。在处理数字时,精度一直是一个非常重要的问题。本文将介绍如何在Python中精确到小数点,并给出实例演示。 为什么需要精确到小数点 …

C++11学习笔记(4)——通用工具(下)

太长了,分两篇写吧 书接上回 4.数值极值 std::numeric_limits 是 C 标准库中定义的一个模板类,位于 头文件中。它提供了关于各种数值类型的属性和极值的信息。这些信息可以帮助我们在程序中进行数值处理时,了解特定类型的数值范围、精度以及…

Flutter如何获取屏幕的分辨率和实际画布的分辨率

Flutter如何获取分辨率 在Flutter中,你可以使用MediaQuery来获取屏幕的分辨率和实际画布的分辨率。 要获取屏幕的分辨率,你可以使用MediaQuery.of(context).size属性,它返回一个Size对象,其中包含屏幕的宽度和高度。下面是一个获…

Redis中常见的一些问题

缓存穿透问题 什么是缓存穿透? 例如当我们根据id查询一个数据的时候,但是这个数据本身不存在或者已经被删除之后,缓存中不存在,就会去查询数据库,但是不存在的数据不会缓存到数据库中,那么一旦大量的这个请…

层序遍历的应用——判断二叉树是否为完全二叉树

思维导图: 一,完全二叉树的特点 假如我们现在有一颗完全二叉树,那它应该长什么样呢? 它应该长这样: 这样: 这样: 如果不是一…

6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)

大家好,我是小富~ 从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者在这个方面踩坑。 我整理了几种获取配置属性的方式,目的不仅是要让大家学会如何使用&#…

Exiv2 —— exiv2介绍及下载搭建环境(Vs2017)

Exiv2介绍 Exiv2 是一个跨平台C库和一个命令行实用程序,用于管理图像元数据。它提供对Exif,IPTC和XMP元数据以及ICC配置文件的快速简便的读写访问。 嵌入到各种格式的数字图像中。 Exiv2 作为免费软件提供,用于许多项目 包括KDE和Gnome Deskt…

chatgpt赋能python:Python自动化脚本编写——让工作更高效

Python自动化脚本编写——让工作更高效 在当今的工作中,自动化脚本已经成为了一个不可或缺的工具。而Python作为一门脚本语言,它的开源、易用以及强大的库使得它成为了很多人使用自动化脚本的首选语言。 在本文中,我们将会探讨如何使用Pyth…

ChatGPT 指南:角色扮演让回答问题更专业

让 ChatGPT 进行角色扮演 Act as ...,比如,律师、内科医生、心理医生、运动教练、哲学家、翻译、平面设计师、IT 工程师等等,从而才能让 ChatGPT 从这个角色角度来分析我们的问题,不然,它的回答可能会过于广泛。 下面以…

Vue中如何进行自动化测试与端到端测试(E2E测试)

Vue中如何进行自动化测试与端到端测试(E2E测试) Vue.js是一种流行的前端JavaScript框架,用于构建现代的单页应用程序。在Vue.js中,测试是一个非常重要的主题。测试可以确保代码的正确性,使代码更加可靠和可维护。在这…

p-tuing和Lora的区别

一、前言 自从chatgpt的爆火,也同时引发了国内大模型的热潮,像百度出了文心一言、阿里出了通义千问等,但是这些大模型并未开源,国内外开源的中等规模的模型有meta的LLaMA,斯坦福基于LLaMA微调的Alpaca,国内…

小程序开发的前沿趋势和技术

在过去的一年里,小程序已成为移动互联网行业最热门的话题之一。小程序已经改变了许多行业。那么,下一个小程序开发趋势是什么?下面我们就来分析一下。 随着微信小程序的开放和推广,小程序开发企业正在大力发展并逐渐从技术方面进…

【2023最新版】黑客零基础入门(全网最全)从零基础到进阶,学完这一篇就够了

学前感言 1.这是一条需要坚持的道路,如果你只有三分钟的热情那么可以放弃往下看了。2.多练多想,不要离开了教程什么都不会,最好看完教程自己独立完成技术方面的开发。3.有问题多google,baidu…我们往往都遇不到好心的大神,谁会无…

【Qt】使用libmodbus实现ModBusTcp

这里写目录标题 下载编译使用DemoQModbusTcpClient Demo:参照:Qt自带QModbusTcpClient,换个电脑就不好使了,换libmodbus 下载 可以去github下载 链接: https://pan.baidu.com/s/13lgEZ59Dt5M7zmTJNpfKvg?pwd=yzfm 提取码: yzfm 下载libmodbus 并解压 编译 进入该目录下…

智造零距离:工程师走访华秋深圳 PCB 工厂,观摩高可靠板制造流程

6月11日,来自硬十、是德、灵明光子、兆易创新、汇顶科技、中诺通讯等公司的近20位工程师走访了华秋深圳PCB工厂。华秋工艺经理余宁带领考察团参观了工厂的生产线,近距离观摩了PCB的制造流程。 参观环节正式开始前,工厂安排专家介绍PCB制造的详…