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

目录

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 tablesshow 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.mzph.cn/news/1106.shtml

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

相关文章

Spark高级特性

spark shuffle 中 map 和 reduce 是一个相对的概念,map是产生一批数据,reduce是接收一批数据,前一个任务是map,后一个任务是reduce。 hashShuffle:hash分组,一个task里面按hash值的不同,分到不…

微服务优雅上下线的实践方法

导语 本文介绍了微服务优雅上下线的实践方法及原理,包括适用于 Spring 应用的优雅上下线逻辑和服务预热,以及使用 Docker 实现无损下线的 Demo。同时,本文还总结了优雅上下线的价值和挑战。 作者简介 颜松柏 腾讯云微服务架构师 拥有超过…

Flask_实现token鉴权

目录 1、安装依赖 2、实现代码 3、测试 源码等资料获取方法 1、安装依赖 pip install flask pip install pycryptodome 2、实现代码 import random import string import time import base64from functools import wrapsfrom flask import Flask, jsonify, session, req…

RabbitMQ如何保证消息的可靠性6000字详解

RabbitMQ通过生产者、消费者以及MQ Broker达到了解耦的特点,实现了异步通讯等一些优点,但是在消息的传递中引入了MQ Broker必然会带来一些其他问题,比如如何保证消息在传输过程中可靠性(即不让数据丢失,发送一次消息就…

学习babylon.js --- [2] 项目工程搭建

本文讲述如何搭建babylonjs的项目工程。 一 准备 首先创建一个目录叫MyProject,然后在这个目录里再创建三个目录:dist,public和src,如下, 接着在src目录里添加一个文件叫app.ts,本文使用typescript&#…

docker数据卷权限管理--理论和验证

一、Docker容器中用户权限管理 Linux系统的权限管理是由uid和gid负责,Linux系统会检查创建进程的uid和gid,以确定它是否有足够的权限修改文件,而非是通过用户名和用户组来确认。 同样,在docker容器中主机上运行的所有容器共享同一…

【kubernetes系列】Kubernetes之配置dashboard安装使用

Kubernetes之配置dashboard 概述 Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息&#x…

【单例模式】—— 每天一点小知识

💧 单例模式 \color{#FF1493}{单例模式} 单例模式💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形…

LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备

LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1、背景说明2、部署国标平台2.1、安装使用说明2.2、服务器网络环境2.3、信令服务配置 3、监控摄像头设备接入3.1、海康GB28181接入示例3.2、大华GB28181接入示例3.3、华为IPC GB28181接…

SpringBoot整合ZooKeeper完整教程

目录 ZooKeeper简单介绍 一、安装zookeeper 二、springboot整合zookeeper ZooKeeper简单介绍 zookeeper是为分布式应用程序提供的高性能协调服务。zookeeper将命名、配置管理、同步和组服务等常用服务公开在一个简单的接口中,因此用户无需从头开始编写这些服务。可…

Android GridPager实战,从RecyclerView to ViewPager

这个简单的的案例展示了如何从RecyclerView to ViewPager,以网上的公开图片为样例。 安卓开发中从RecyclerView 到 ViewPager demo运行结果demo项目工程目录结构关键代码 MainActivity关键代码GridFragment关键代码ImageFragment关键代码ImagePagerFragment关键布局…

CSS---CSS面试题

目录 1.盒模型 2.offsetHeight /clientheight/scrollHeight 3.left与offsetLeft 4.对BFC规范的理解 5.解决元素浮动导致的父元素高度塌陷的问题 6.CSS样式的先级 7.隐藏页面元素 8.display: none 与 visibility: hidden 的区别 9.页面引入样式时,使用link与import有…

C++学习——类和对象(一)

C语言和C语言最大的区别在于在C当中引入了面向对象的编程思想,想要完全了解c当中的类和对象,就要从头开始一点一点的积累并学习。 一:什么是面向对象编程 我们之前学习的C语言属于面向过程的编程方法。举一个简单的例子来说:面向过…

使用npm和nrm查看源和切换镜像

一、使用npm查看当前源、切换淘宝镜像、切换官方源 (1)npm查看当前源: npm get registry (2)npm设置淘宝镜像源: npm config set registry http://registry.npm.taobao.org (3)n…

【运维工程师学习三】Linux中Shell脚本编写

【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器(bash)参数 5、find、grep、xargs、sort、…

网络协议与攻击模拟-17-DNS协议-报文格式

二、DNS 查询 客户机想要访问www.baidu.com,根据自己的 TCP / IP 参数,向自己的首选 DNS 服务器发送 DNS 请求 首选 DNS 收到客户机的请求后,会去查询自己的区域文件,找不到www.baidu.com的 IP 地址信息(将请求转发到…

MYSQL 5.7.17 安装版 的配置文件

解压版解压后都有 my.ini配置文件,安装版要查找这个配置文件可以查看 MYSQL Workbench --> 左侧 INSTANCE --> Options File ,然后可以看到底部 Configuration File所处的位置,即为my.ini的路径。

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…

TortoiseGit 入门指南05:推送和拉取

本节所讲内容均涉及到 远端版本库。 版本库 的概念在《TortoiseGit 入门指南02:创建和克隆仓库》中提到过,它是工作目录下面的一个名为 .git 的隐藏目录,我们每一次提交、每一个分支都会保存在版本库中。这个版本库就在我们电脑上的某个文件…

鸽了百万用户四年的赛博皮卡终于要来啦

作者 | Amy 编辑 | 德新 本月15号,特斯拉官方宣布,第一辆 赛博皮卡已在特斯拉得州工厂下线。 而就在本月初,马斯克还发推预热了一波,「开着赛博皮卡在奥斯汀(特斯拉得州工厂所在地)溜了一圈&#xff01…