Mysql数据库基础和增删改查操作

news2024/11/24 11:09:26

目录

一、数据库基本概念

二、数据库类型和常用数据库

1.关系型数据库

2.非关系型数据库

三、数据库的数据类型

四、SQL语句

1.简介

2.分类

五、SQL语句的使用

1.数据库操作

(1)创建数据库

​编辑

(2)查看数据库

(3)使用(进入)数据库

​编辑

(4)删除数据库

​编辑

2.数据库表操作

(1)查看数据库中的表

(2)创建数据库表

(3)查看数据库表的结构

(4)删除数据库表

(5)修改数据库表结构

3.表中的数据操作

(1)添加记录

(2)查询表中记录

(3)删除记录

(4)修改记录

六、数据库表进阶操作

1.if 判断创建表

2.克隆表

3.查看表结构和详细信息

4.重建表(格式化)

5.创建临时表

6.外键连接


一、数据库基本概念

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

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

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

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

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

二、数据库类型和常用数据库

1.关系型数据库

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

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

  • 每一称为一条记录,用来描述一个对象的信息
  • 每一称为一个字段,用来描述对象的一个属性

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


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

  • MySQL(甲骨文收购)
  • MariaDB
  • Oracle(甲骨文)
  • SQL-Server(微软)
  • DB2(IBM)
  • PostgreSQL

2.非关系型数据库

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

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

非关系型数据库的优点

  • 数据库可高并发读写
  • 对海量数据高效率存储与访问
  • 数据库具有高扩展性与高可用性

        缓存型数据库        Redis、Memcache

        索引型数据库        ES(Elasticsearch)

        时序型数据库        Prometheus

        文档型数据库        MongoDB

三、数据库的数据类型

整型

数据类型含义
tinyint(m)1个字节 范围(-128~127)
smallint(m)2个字节 范围(-32768~32767)
mediumint(m)3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m)8个字节 范围(±9.22*10的18次方)

浮点型

字符串 

常用数据类型

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

四、SQL语句

1.简介

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

2.分类

        DDL:数据定义语言,用于创建数据库对象,如库、表、索引等。

        DML:数据操纵语言,用于对表中的数据进行管理。

        DQL:数据查询语言,用于从数据表中查找符合条件的数据记录。

        DCL:数据控制语言,用于设置或者更改数据库用户或角色权限。

五、SQL语句的使用

1.数据库操作

(1)创建数据库

CREATE DATABASE `数据库名`;

(2)查看数据库

SHOW DATABASES;

(3)使用(进入)数据库

USE `数据库名`;

(4)删除数据库

DROP DATABASE `数据库名`;

2.数据库表操作

(1)查看数据库中的表

SHOW TABLES;         进入数据库中,查看所有的表

(2)创建数据库表

CREATE TABLE `表名` (字段1 数据类型,字段2 数据类型,...);

 在创建时,数据类型后面加上约束条件(用空格隔开)实现约束效果

常用约束条件作用
not null非空约束(值不能为空)
primary key主键约束(设为主键,包含了not null的效果)
unique key唯一键约束(值在字段中唯一)
default 指定值默认值约束(将默认值设为指定值,字符串要用' '括起来)
auto_increment自增约束(起始为1,随记录条目数增加自增1)
foreign key外键约束(将字字段设为外键,与子表中的字段关联)
zerofill位数不满足用0填充

(3)查看数据库表的结构

DESC `表名`;

(4)删除数据库表

DROP TABLE `表名`;

(5)修改数据库表结构

ALTER TABLE `旧表名` RENAME `新表名`;        修改表名

ALTER TBALE `表名` ADD 字段名 数据类型;        添加字段

ALTER TABLE `表名` CHANGE 旧字段名 新字段名 数据类型;        修改字段名

ALTER TBALE `表名` DROP 字段名;        删除字段

3.表中的数据操作

(1)添加记录

INSERT INTO `表名` (字段1,字段2,...) VALUES (数字,'字符串');

如果没有非空限制,未指定字段的部分默认为NULL。

全字段填入数据可以不指定字段,即INSERT INTO 表名 VALUES (数字,'字符串');

(2)查询表中记录

SELECT * FROM `表名`;        查看表中所有记录

SELECT * FROM `表名` limit 数字;        查看表中指定条目数记录

SELECT * FROM `表名` limit 数字1,数字2;        查看表中指定数字1条之后的数字2条记录

SELECT 字段x,字段y,... FROM `表名`;        查询指定字段记录

SELECT 字段x,字段y,... FROM `表名`\G     将查询到的记录纵向显示(适用于字段较多)

SELECT * FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3];        根据条件查询记录

(3)删除记录

DELETE FROM `表名`;        删除表中所有记录

DELETE FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3];        删除表中指定条件记录

                                                                                                             (一般以主键为条件)

(4)修改记录

UPDATE `表名` SET 字段=值 WHERE 条件1 [AND 条件2] [OR 条件3];     修改指定条件记录

六、数据库表进阶操作

1.if 判断创建表

创建表前判断表是否存在,不存在则创建,存在则不创建。

CREATE TABLE IF NOT EXISTS `表名` (字段1 数据类型,字段2 数据类型,...);

2.克隆表

CREATE TABLE `新表` LIKE `旧表`;        通过like方法复制旧表的表结构
INSERT INTO `新表` SELECT * FROM `旧表`;        向新表插入旧表查询的数据

3.查看表结构和详细信息

SHOW CREATE TABLE `表名`;        以SQL命令格式展示表结构,还能显示表的其它信息

4.重建表(格式化)

TRUNCATE TABLE `表名`;

与清空表数据的区别
        delete from 表名;   是一行一行的删除数据记录,删除效率较慢,执行完后会返回删除的记录条目数,且删完后再插入数据记录,自增字段仍然会以原来的最大记录自增。

        而truncate table 表名;    是直接重建表,清空速度比delete更快,执行完后不会返回记录条目数,且清空表后再插入数据,自增字段会重新从1开始递增。

5.创建临时表

CREATE TEMPORARY `表名` (字段1 数据类型,字段2 数据类型,...);

临时表只能在当前连接中有效,能正常被增删改查,但是show tables是看不到的,并且换一个或者退出当前连接后临时表都会失效.

6.外键连接

外键的定义

        如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。

主键表和外键表的理解

(1)以公共关键字作主键的表为主键表(父表、主表)

(2)以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表;主从表的字段具备相同的数据类型、字符长度和约束。 

举例:创建两张表,主键表为供货商的编号和名字,外键表为货物表,将供货商编号作为外键。

先创建主键表(供货商表)

为主表添加一个主键约束(主键名建议以"PK_"开头)

再创建外键表(货物表) 

为从表添加外键,并将主表的pid字段和从表的providers_id字段建立外键关联(外键名建议以"FK_"开头

插入数据时,先主再外

删除数据时,先外再主

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

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

相关文章

mac MySQL修改密码

简介: MySQL是一种常用的关系型数据库管理系统。在某些情况下,您可能需要关闭MySQL服务或修改root密码。本文将向您展示如何执行这些操作的步骤。 步骤1:关闭MySQL服务 打开MySQL软件并关闭它。 或者使用以下命令关闭MySQL服务&#xff1a…

conda的使用

一、conda 1、为什么使用conda 在安装Python包的过程中,可能遇到依赖包的问题。例如,要安装numpy,需要先安装BLAS和LAPACK等库。在使用pip等包管理工具时,这些依赖包需要手动安装,操作起来可能比较繁琐。而conda是一个…

pdf怎么添加水印图片?分享3个超实用解决方法

在使用PDF文件时,我们经常会看到一些设置的水印,这提醒观看者文件的所有权。给PDF文件添加水印是一种常见且实用的功能。为了解决如何给PDF添加水印的问题,我将介绍几种常用的方法。 方法一:使用WPS添加水印 WPS是我们常用的办公…

【分布式应用】zookeeper集群

目录 一、zookeeper概述1.1zookeeper工作机制1.2Zookeeper 数据结构1.3Zookeeper 应用场景1.4Zookeeper 选举机制第一次启动选举机制**非第一次启动选举机制 二、部署 Zookeeper 集群2.1环境配置2.2安装 Zookeeper 一、zookeeper概述 Zookeeper是一个开源的分布式的&#xff0c…

1.内核驱动中,驱动注册,阻塞IO,gpio子系统,中断处理的整体结合示例

一,功能实现要求 /*功能实现 在stm32开发板上实现功能 1.使用阻塞IO读取number变量的值,当number的值改变时打印number的值 2.注册KEY1按键的驱动和LED1的驱动以及对应的设备文件, 3.按键和指示灯设备信息放在同一个设备树的节点中 4.当KEY1…

TypeScript 类型体操:合并映射类型的处理结果为联合类型(记录)

一般索引索引 type boy {name : string,age : number } 对索引类型映射 type onlyBoy<obj> {readonly [key in keyof obj] : obj[key] } 使用 type res onlyBoy<boy>; 输出 这些都是对索引类型整体做的变换&#xff0c;变换的结果依然是一个索引类型。有的…

提示“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”,如何解决?

在aspx网站部署过程中&#xff0c;出现“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”的提示&#xff0c;如下图&#xff0c;如何解决&#xff1f; 解决方案1&#xff1a; Web.Config里面 把sessionState 的mode改为&quo…

ChatGPT对高校人才培养模式的挑战与应对策略思考

酷吗&#xff1f;输入指令后直接就能生成一大串代码&#xff0c;即使不懂相关技术也能玩转编程&#xff0c;这就是ChatGPT赋予你的“新能力”&#xff0c;除了写代码&#xff0c;ChatGPT还能帮你执行各种五花八门的任务。 AI工具如ChatGPT在行业中的广泛应用对于行业的人才结…

全网最牛,Python自动化测试-日志Log处理(超细)一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 日志就是用于记录…

如何安装本地Go Tour教程(或者叫A Tour of Go离线版),以及中文版安装不了该怎么办

Go 官方是有一个在线教程 A Tour of Go&#xff0c;可以在线学习 Go 的编程&#xff0c;并且有中文版。英文原版页面如下&#xff1a; 出人意料的是&#xff0c;Go 提供了离线版&#xff08;各个语言都有&#xff09;&#xff0c;下载安装之后就可以在本地编译运行查看结果&a…

python subprocess.run() subprocess.Popen()(执行系统命令、启动新的进程、连接到子进程的输入/输出管道)

文章目录 python subprocess基本函数subprocess.runsubprocess.Popensubprocess.Popen参数解释- args&#xff1a;要执行的命令及其参数。可以是一个字符串或一个字符串列表。- bufsize&#xff1a;指定缓冲区的大小。默认值为-1&#xff0c;表示使用系统默认的缓冲区大小。- e…

Redis基本全局命令(含key过期策略)

Redis基本全局命令 KEYEXISTSDELEXPIRETTLRedis的key过期策略TYPE KEY 返回所有满⾜样式&#xff08;pattern&#xff09;的key。⽀持如下统配样式。 h?llo 匹配 hello , hallo 和 hxlloh*llo 匹配 hllo 和 heeeelloh[ae]llo 匹配 hello 和 hallo 但不匹配 hilloh[^e]llo 匹配…

opencv-图像处理基础-二值图像

opencv学习01_图像处理基础_二值图像 1&#xff0e;二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。 在计算机中&#xff0c;通过一个栅格状排列的数据集&#xff08;矩阵&#xff09;来表示和处理图像。例如&#xff0c;图 2-1 是 一个字母 A 的图像&#xff0c;计算…

【优选算法题练习】day4

文章目录 一、3. 无重复字符的最长子串1.题目简介2.解题思路3.代码4.运行结果 二、1004. 最大连续1的个数 III1.题目简介2.解题思路3.代码4.运行结果 三、1658. 将 x 减到 0 的最小操作数1.题目简介2.解题思路3.代码4.运行结果 总结 一、3. 无重复字符的最长子串 1.题目简介 …

Java设计模式之结构型-代理模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 1、静态代理类图 2、动态代理类图 三、角色设计 四、案例分析 1、静态代理 2、JDK动态代理 3、Cglib动态代理 五、总结 一、基础概念 代理模式是一种结构型设计模式&#xff0c;它用一个代理对象来封装一个目标对象&#xff0c;通常…

Java的运算符

运算符介绍 运算符是一种特殊的符号&#xff0c;用以表示数据的运算、赋值和比较等。 运算符介绍 算术运算符赋值运算符关系运算符 [比较运算符]逻辑运算符位运算符 [需要二进制基础]三元运算符 算术运算符 介绍 算术运算符是对数值类型的变量进行运算的&#xff0c;在 Ja…

学习记录——Transformer、ViT、Swin-Transformer、SegFormer、TopFormer、Seaformer

Transformer 2017 Computation and Language Google Self-Attention、Multi-Head Attention 位置编码 原理参考链接 ransformer网络结构&#xff1a; ViT 2020 ICLR 将transformer引入到cv领域 将输入图片224x224x3按照16x16x3大小的Patch进行划分&#xff0c;接着通过…

JAVA+Selenium最简单的处理登录弹窗的方式

在做自动化测试遇到需要处理登录弹窗情况&#xff0c;例如我的用户名为admin, 密码为admin, 那么想要登录http://10.10.168.1, 只需要使用以下链接访问即可立即登录, 并免除弹窗: http://账号:密码网址

sys V 进程间通信之共享内存

note 1.使用shmget将在内核创建一个共享内存区 2.使用shmctl才可以删除内核创建的共享内存区 3.使用shmat给当前进程开辟与内核共享内存对应的内存区p&#xff0c;用户态对p的操作会作用到内核共享内存区 code #include <stdio.h> #include <stdlib.h> #inclu…

ROS:Rviz中控制机器人模型运动

目录 一、Arbotix简介二、安装 Arbotix二、Arbotix使用案例2.1需求2.2流程2.2.1创建新功能包&#xff0c;准备机器人 urdf、xacro 文件2.2.2添加 Arbotix 配置文件2.2.3编写 launch 文件配置 Arbotix2.2.4启动 launch 文件并控制机器人模型运动 一、Arbotix简介 Arbotix 是一款…