MySQL结构以及数据管理(增删改查)

news2024/11/27 16:25:36

目录

1.数据库的简介

 2.数据库分类

2.1关系型数据库

2.2 非关系型数据库 

3.mysql的数据类型

3.1 常用的数据库类型

4.mysql的数据库结构

4.1 查看库信息 

4.2 查看表信息

5.SQL 语句

5.1 SQL语言分类:


1.数据库的简介

数据库(database)是用来组织、存储和管理数据的仓库

数据库管理系统(DBMS):用户可以通过DBMS或应用程序来操作数据库

1>接受应用程序的数据请求和处理请求

2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

3>实现对数据库的操作

4>从数据库的操作中接受查询结果

5>对查询结果进行处理(格式转换)

6>将处理结果返回给用户

 2.数据库分类

数据库可分为两大类:关系数据库(SQL)非关系数据库(NO SQL)

2.1关系型数据库

  • 关系数据库的存储结构是二维表格 ,表是有行和列。行称为记录,是用来描述一个对象的信息。列称为字段,是用来描述对象的一个属性
  • 关系性数据库常见的有:MYSQL ,Oracle,SQL-Server,MariaDB, postgreSQL 

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。


缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

2.2 非关系型数据库 

  •       缓存性数据库: redis     Memcache
  •       索引型数据库:  ES(Elasttic search)
  •       时序型数据库:Prometheus
  •        文档型数据库:MongoDB

 非关系型数据库:是键对值的存储结构 ,key (键)----  Value(数值),简称KV结构 

非关系型数据库的存储结构理论上来说不属于数据库的类型,因为非关系型数据库是多种数据结构存储的方式(海量的数据在内存数据库引擎中,把符合条件的数据,筛选写入到磁盘中

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
4、好多数据写在内存中

3.mysql的数据类型

3.1 常用的数据库类型

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

字节大小:

char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是n字节。
varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一(n+1)个字节。

 

优劣比较:

varchar比char节省磁盘空间。
但varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,而varchar在多次增删改查中会产生一些磁盘空间碎片

4.mysql的数据库结构

4.1 查看库信息 


## 查看数据库信息

 show database

4.2 查看表信息

查看数据库中的表信息

use 数据库名   #切换到书库中

show tables

show tables in LAKERS;

显示数据表的结构(字段)

describe user;

显示数据表的结构(字段)

describe user;


#############​​​​​​
Field:字段名称
type:数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空
key :主键
Default :默认值a :扩展属性,例如:标志符列(标
Extr识了种子,增量/步长)1 2
id:1 3 5 7

5.SQL 语句

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

5.1 SQL语言分类:

  • DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
  • create
    drop
    alter
    
    
    创建新的数据库
    CREATE DATABASE 数据库名;
    
    创建新的表
    CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
    
    CREATE DATABASE kgc_school;
    USE kgc_school;
    CREATE TABLE KY13 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'', PRIMARY KEY (id));
    DESC KY13;
    
    #NOT NULL   不允许为空值
    #DEFAULT''  默认值为空
    
    PRIMARY KEY :主键一般选择没有重复并且不为空值的字段
    
    删除指定的数据表
    use 数据库名
    DROP TABLE 表名
    
    DROP TABLE [数据库名.] 表名;
    #如不用USE进入库中,则需加上数据库名
    
    
    删除指定的数据库
    DROP DATABASE 数据库名;
  • DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
insert 
update
delete

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

示例:
INSERT INTO KY13  (id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。

INSERT INTO zzz VALUES(2,'lisi',90.5,654321) ;
SELECT * FROM zzz ;      #查询表的数据记录
----------------------------------------------------------------------------------------
#修改、更新数据表中的数据记录
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

示例:
UPDATE zzz SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE zzz SET name='wangxiaoer',passwd='' WHERE id=3;


在数据表中删除指定的数据记录
格式:
DELETE FROM 表名 [WHERE 条件表达式];

示例:
DELETE FROM zzz WHERE id=4;
  • DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
select

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

示例:
SELECT * FROM zzz;
SELECT id,name,score FROM zzz WHERE id=2;
select name from zzz\G  		 #以列表方式竖向显示
select * from info limit 2;   	 #只显示头2行
select * from info limit 2,3;     #显示第2行后的前3行

#修改、更新数据表中的数据记录
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

示例:
UPDATE zzz SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE zzz SET name='wangxiaoer',passwd='' WHERE id=3;



数据表高级操作


扩展
在数据表中删除指定的数据记录
格式:
DELETE FROM 表名 [WHERE 条件表达式];

示例:
DELETE FROM zzz WHERE id=4;
  • DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限 和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)
ALTER TABLE 旧表名 RENAME 新表名;

例:
ALTER TABLE zzz RENAME yyy;
ALTER TABLE yyy RENAME zzz;

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

修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
Primary key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)


ALTER TABLE yyy CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。

ALTER TABLE 表名 modify column 字段名 类型。
数据库中表 字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)


删除字段
格式:
ALTER TABLE 表名 DROP 字段名;

示例:
ALTER TABLE yyy DROP passwd;

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

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

相关文章

基于LoRa技术的网络终端无线程序升级系统研究(学习)

摘要 设计了一种基于LoRa技术的STM32F4无线程序升级系统。此系统由PC及相关STM32软件开发环境、LoRa通信模块及控制器和STM32F4终端三部分组成。 本系统采用LoRa技术将程序数据无线发送到终端,终端通过IAP技术实现远程无线程序自动升级。测试结果表明,…

基于Springboot+Vue的宠物店猫咖管理系统(源代码+数据库)088

基于SpringbootVue的宠物店猫咖管理系统(源代码数据库)088 一、系统介绍 本系统分为管理员、店长、用户三种角色 用户角色包含以下功能: 登录、注册、我的宠物、我的信息、文件管理、我的预约、门店详情、打工喵、本地喵、外来喵、宠物领养、个人中心、密码修改…

0基础学习VR全景平台篇 第61篇:基本功能-如何发布VR视频

戳我先了解“全景视频上传规范” 1、点击【上传】按钮,打开本地文件夹,上传符合要求的全景视频素材,可以选择单个或多个视频同时上传。 2、视频上传成功以后,需要处理一段时间,请耐心等待。 视频处理好以后&#xff0…

2023年7月最新ESI 中国 国内高校排名(附上下载链接),

东南大学的排名 多年来 一直是22, 21 ,还需要进一步提高,进入前10. 下载连接 (375条消息) 2023年7月最新ESI数据国内高校排名表格-行业报告文档类资源-CSDN文库

Vue3 组件之间跨级通信

文章目录 Vue3 组件之间跨级通信概述选项式API简单使用支持响应式调用顶层方法 组合式API简单使用支持响应式底层调顶层方法 Vue3 组件之间跨级通信 概述 通常情况下,当我们需要从父组件向子组件传递数据时,会使用props。 但是一些多层级嵌套的组件&a…

【Vue】给 elementUI 中的 this.$confirm、this.$alert、 this.$prompt添加按钮的加载效果

文章目录 主要使用 beforeClose 方法实现 loading 的效果beforeClose MessageBox 关闭前的回调,会暂停实例的关闭 function(action, instance, done)1. action 的值为confirm, cancel或close。 2. instance 为 MessageBox 实例,可以通过它访问实例上的属…

不外传秘诀| docker 快速搭建常用的服务环境

本文主要给大家介绍如何使用 docker 搭建常用的服务环境, 包括mysql,reedis,nginx,jenkins 等常用的环境,下面直接进入主题。 1、MySQL 部署 ①搜索 MySQL 镜像 docker search mysql ②拉取 MySQL 镜像 docker pull mysql:5.7 ③创建容器&#xf…

嵌入式LinuxLED驱动开发实验

目录: 1. Linux下LED灯的驱动原理1.1. 地址映射1.1.1. 实际物理地址映射到虚拟地址的函数1.1.2. 内存访问函数 2.硬件原理图分析3. 实验程序编写3.1. 驱动程序编写3.2. 应用程序编写 4. 运行测试 1. Linux下LED灯的驱动原理 我们在裸机实验的时候,都是通…

2023年最具威胁的25种安全漏洞(CWE TOP 25)

1. CWE 4.12发布 最近几年,每年6月CWE发布的版本都成为一年中最重要的版本,因为里面包含了新的CWE TOP 25 视图,也就是我们常说的:CWE最具威胁的25种缺陷。 CWE 4.12 在6月29号发布,里面包含了重要的2023年TOP25视图…

Promise分享

手写promise之前需要知道 宏任务 & 微任务 我们都知道 Js 是单线程的,但是一些高耗时操作就带来了进程阻塞问题。为了解决这个问题,Js 有两种任务的执行模式:同步模式(Synchronous)和异步模式(Asynchr…

2023年先进封装行业研究报告

第一章 行业概况 1.1 概述 封装是半导体制造过程中的一个重要步骤。在这个步骤中,半导体芯片(或称为集成电路)被包裹在一个保护性的外壳中。这个外壳的主要功能是保护芯片免受物理和化学损害,例如防止芯片受到潮湿、尘埃、温度变…

git clone 或者是vscode clone 时遇到the remote end hung up unexpectedly

fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed使用git clone总是报错 查看原因有三种可能:要么是缓存不够,要么是网络不行,要么墙的原因。 如果是网络不行,可以配置git的最低速度和最…

pdf.js移动端展示预览打开pdf-pdfh5.js

有问题可以加Q群咨询,技术交流群,也可以探讨技术,另有微信群可以问群主拉入微信群 QQ群521681398 pdfh5博客主页 pdfh5项目GitHub地址 pdfh5项目gitee地址 react、vue均可使用 example/test是vue使用示例 example/vue3demo是vue3使用示…

第三章系统控制(Cortex-M7 Processor)

第三章系统控制 目录 第三章系统控制 3.1关于系统控制 3.2寄存器汇总 3.3寄存器描述 3.3.1辅助控制寄存器 3.3.2cpu基寄存器 3.3.3 Cache Level ID寄存器 3.3.4缓存大小ID寄存器 3.3.5缓存大小选择寄存器 3.3.6指令和数据紧密耦合的存储器控制寄存器 3.3.7 AHBP控制寄存器 3…

2023京东防暑消暑市场分析:冷风扇、移动空调等硬核防暑产品火爆

今年夏天,高温天气频发,各种防暑类产品也向多场景延伸,不少行业、类目都因此高速增长,包括防暑类电器、防晒用品、小型户外避暑神器等。 *高温刺激下,防暑类家电需求暴涨 在夏季高温的刺激下,空调、风扇等等…

HTML input text 常用事件

前言 用于记录开发中常用到的&#xff0c;快捷开发 简单实例 <input type"text" name"noSecretKeyJson" maxlength"200" />常用事件 oninput &#xff08;在用户输入时触发&#xff09;及案例 案例一&#xff1a;限制只允许输入数字…

Java 函数式编程(常用接口)

之前已经介绍过了Java8函数式变成及Lambda表达式&#xff0c;感兴趣可以看看&#xff0c;地址&#xff1a;Java8函数式编程&#xff08;Lambda表达式&#xff09;_琅琊之榜PJ的博客-CSDN博客 本文主要介绍一下常用的接口及用法&#xff0c;先来看一个表格&#xff1a; 本文主要…

强引用、软引用、弱引用和虚引用的区别

主要的区别在于什么时候回收对象&#xff1b; 强引用&#xff1a;垃圾回收器就不会回收这个对象&#xff1b;软引用&#xff1a;如果内存足够&#xff0c;不回收&#xff0c;如果内存不足&#xff0c;则回收&#xff1b;弱引用&#xff1a;不管当前内存空间足够与否&#xff0…

Jupyter notebook添加与删除kernel

目录 1 添加虚拟环境的kernel 2 删除jupyter notebook已有的kernal 3 切换内核与查看当前内核 4 添加C语言的kernel 5 添加python2的kernel 6 添加java语言的kernel 6.1 sudo apt install default-jre 6.2 下载并安装 ijava 6.3 sudo apt install openjdk-11…

四、评估已建立的模型

别人不讲道理 不是我们跟着不讲道理的理由 1 模型评估 希望fθ(x)对未知数据x输出的预测值尽可能正确。 如何测量预测函数fθ(x)的正确性&#xff0c;也就是精度呢&#xff1f; 观察函数的图形&#xff0c;看它能否很好地拟合训练数据&#xff1a; 我们需要能够定量地表示机…