当前位置: 首页 > article >正文

MySQL数据库从0到1

目录

数据库概述

基本命令

查询命令

函数

表的操作

增删改数据和表结构

约束

事务

索引

视图

触发器

存储过程和函数

三范式


数据库概述

SQL语句的分类:

        DQL:查询语句,凡是select语句都是DQL。

        DML:insert,delete,updata,对表当中的数据进行增删改查。

        DDL:create,drp,alter,对表结构的增删改。

        TCL:commit,rollback。

        DCL:grant,revoke。

对sql脚本的理解:

        以sql结尾的文件,被称为sql脚本。

        直接使用source命令可以执行sql脚本。

基本命令

mysql -uroot -p密码
show databases;
create database 数据库名;
use 数据库名;
show tables;
source 文件路径
drop database 数据库名;
select 数据库名();
select version();select * from stu;
desc stu;
show create table stu;

查询命令

select name from stu;
select name as na from stu;
select * from stu;
select name from stu where age > 20;as关键字可以省略
模糊查询中,%表示任意多个字符,_表示任意一个字符select max(name) from stu group by age;group by:按照某个字段或者某些字段进行分组
having:是对分组之后的数据进行再次过滤注意:
分组函数一般都会和group by联合使用
并且任何一个分组函数都是在group by语句执行结束后才会执行
当一条语句中有group by,select后面只能跟分组函数和参与分组的字段
select distinct name fron stu;
select name from stuwhere age between 20 and 50;select * from stu order by age asc;
select * from stu order by age asc, name desc;
select * from stu limit 5;select * from stu a inner join stu b on 条件;select * from stu a left | right join stu b on 条件;查询语句 union 查询语句union可以去重,union all 不可以子查询就是嵌套查询

函数

1、所有的分组函数都是对某一组的数据进行操作的
2、如果计算数据中有null,那么结果一定是null
3、分组函数不能直接使用在where子句当中count(*)和count(name),他们有什么区别?
count(*):统计总记录条数
count(字段):统计不为null的数据总条数

表的操作

create table stu(age int 约束,[constraint 约束名] 约束(name)
);desc stu;
alter table stu rename stu1;
alter table stu add age int;
alter table stu drop age;
alter table stu modify age int;数据类型
int
bigint
float
char
varchar
datecreate table t_student(no bigint,name varchar(255),sex char(1),classno varchar(255),birth char(10)
);

增删改数据和表结构

insert into stu(字段名) values(数据)
insert into stu(字段名) 查询语句update stu set age = 20 where name = 'java';delete from stu where age > 20;

约束

为了保证表中数据的合法性、有效性、完整性。

not null

unique

primary key

foreign key

check

事务

原子性:事务是最小的工作单元,不可再分。

一致性:事务必须保证多条DML语句同时成功或者同时失败。

隔离性:事务A与事务B之间具有隔离。

持久性:持久性说的是最终数据必须持久化到硬盘文件中,事务才算成功的结束。

索引

create table stu(属性名 数据类型,index | key 索引名(字段名)
);create index 索引名 on stu(name);
alter table stu add index | key 索引名(字段名)唯一索引在index前面加unique
全文索引在index前面加fulltext
drop index 索引名 on 表名

视图

视图的特点:

        视图的列可以用来不同的表,是表的抽象和在逻辑意义上建立的新关系。

        视图是由实表产生的虚表。

        视图的建立和删除不影响基本表。

        对视图内容的增删改直接影响基本表。

        当视图来自多个基本表时,不允许添加和删除数据。

        可以将试图看作为一个表来执行查询语句。

create view 试图名 as 查询语句;drop view 视图名;create or replace view 视图名 as 查询语句;alter view 视图名 as 查询语句;insert into 视图名(属性名...) values(数据...);update 视图名 set 属性名 = 数据 条件;delete from 视图名 条件;

触发器

create trigger 触发器名before | after      insert | update | deleteon 表名 for each row增删改语句;drop trigger 触发器名;

存储过程和函数

区别:

        存储过程:可以由0个返回值,也可以有多个返回值。

        函数:有且仅有一个返回值。

好处:

        提高代码重用性

        简化操作

        减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

存储过程:

        一组预先编译好的sql语句的集合,理解成批处理语句。

参数列表包含三部分:

        举例,in name varchar(20)

        in,可以作为输入

        out,可以作为输出,返回值

        inout,即可以输入,又可以输出

delimiter $
create procedure 存储过程名
begin一组sql语句
end $call 存储过程名();declare 变量名 数据类型set @名字 = 数据;drop procedure 存储过程名show create procedure 存储过程名;drop function 函数名;create procedure pro_4(score int)
begincasewhen score >= 90 && score <= 100 then select 'A';when score >= 80 then select 'B';when score >= 60 then select 'C';else select 'D';end case;
end$create function fun_4(score int) returns char
beginif score >= 90 and score <= 100 then return 'A';elseif score >= 80 then return 'B';elseif score >= 60 then return 'C';else return 'D';end if;
end $

三范式

第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。

第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖。

第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。

相关文章:

MySQL数据库从0到1

目录 数据库概述 基本命令 查询命令 函数 表的操作 增删改数据和表结构 约束 事务 索引 视图 触发器 存储过程和函数 三范式 数据库概述 SQL语句的分类&#xff1a; DQL&#xff1a;查询语句&#xff0c;凡是select语句都是DQL。 DML&#xff1a;insert,delete,up…...

WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

作者&#xff1a; TiDBer_yangxi 原文来源&#xff1a; https://tidb.net/blog/15a234d0 一、环境准备 1. 硬件要求 服务器架构 &#xff1a;鲲鹏服务器&#xff08;ARM架构&#xff09;&#xff0c;TiDB 官方明确支持 ARM 架构服务器部署 推荐配置 &#xff08;生产环…...

正则表达式的前世今生

当你熟练地用正则表达式查找替换代码时&#xff0c;这个工具的历史可以追溯到1943年。那时候还没有计算机&#xff0c;更别说编程语言了。 从神经网络到文本匹配 故事要从两个神经生理学家说起。1943年&#xff0c;Warren McCulloch和Walter Pitts发表了一篇论文《A logical ca…...

Vue 核心技术与实战智慧商城项目Day08-10

温馨提示&#xff1a;这个黑马的视频在b占可以找到&#xff0c;里面有完整的教学过程 然后这个项目有完整的代码&#xff0c;我已经上传了&#xff0c;如果审核成功大家就可以看了&#xff0c;但是需要审核多久我也不是很确定 1.项目演示 2. 项目收获 3. 创建项目 4. 调整初始化…...

TCP/IP协议精华总结pdf分享

hi &#xff0c;大家好&#xff0c;应小伙伴们的要求&#xff0c;上次分享了个人的一些学习和职场经验&#xff0c;其中网络协议PDF文档是我之前学习协议的时候总结一些精华知识&#xff0c;网络属于基本功&#xff0c;是互联网必备知识&#xff0c;我深信掌握好核心20%知识&am…...

组件化:软件工程化的基础

在现代软件系统中&#xff0c;**组件化&#xff08;Componentization&#xff09;**不仅是一种设计技术&#xff0c;更是推动软件工程走向工业化、体系化的关键基础。随着业务复杂度、团队规模与生命周期成本的持续上升&#xff0c;软件开发从“写代码”演变为“构建系统”。而…...

⚡️ Linux grep 命令参数详解

⚡️ Linux grep 用法及参数详解 &#x1f4d8; 1. grep 简介 grep 是 Linux/Unix 系统中用于文本搜索的命令&#xff0c;其全称为 Global Regular Expression Print&#xff0c;意为全局正则表达式打印器。 它根据给定的 模式&#xff08;pattern&#xff09; 对文件或标准…...

2025年第三届CCF·夜莺开源创新论坛通知

点击蓝字 关注我们 CCF Opensource Development Committee 01 大会简介 由中国计算机学会主办、CCF开源发展委员会及夜莺开源社区承办的第三届CCF夜莺开源创新论坛拟于2025年7月4日在北京召开。本次论坛以“AI 加速可观测”为主题&#xff0c;汇聚了开源夜莺核心开发团队&#…...

GMDCMonitor企业版功能分享0602

企业版包含了拓扑中心、签退中心、知识库、通知渠道配置、平台自定义&#xff0c;这5个功能 1&#xff09;拓扑中心 拓扑中心绘制的时候需要注意2点&#xff1a; 1&#xff09;要先选择 “矩形区域” 或 “圆形区域” 来添加各个背景区域&#xff0c;同时录入区域尺寸&#x…...

automa

网页版插件 https://extension.automa.site/(可能插件下架了&#xff09; https://github.com/AutomaApp/automa/releases/tag/v1.29.9&#xff08;可以直接在git上下载&#xff09; automa官网地址&#xff1a; https://www.automa.site/ 官方的文档 https://docs.automa.si…...

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级)

Warm-Flow发布1.7.3 端午节&#xff08;设计器流和流程图大升级&#xff09; 更新内容项目介绍功能思维导图演示地址官网Warm-Flow视频 更新内容 [feat] 新版流程图通过前端渲染[perf] 美化流程设计器ui[feat] 办理人权限处理器&#xff0c;新增办理人转换接口&#xff0c;比如…...

【存储基础】SAN存储基础知识

文章目录 1. 什么是SAN存储&#xff1f;2. SAN存储组网架构3. SAN存储的主要协议SCSI光纤通道&#xff08;FC&#xff09;协议iSCSIFCoENVMe-oFIB 4. SAN存储的关键技术Thin Provision&#xff1a;LUN空间按需分配Tier&#xff1a;分级存储Cache&#xff1a;缓存机制QoS&#x…...

2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测

1.摘要 本文针对肝癌&#xff08;HCC&#xff09;早期诊断难题&#xff0c;提出了一种基于改进成吉思汗鲨鱼优化算法&#xff08;MGKSO&#xff09;的计算机辅助诊断系统。由于HCC在早期症状不明显且涉及高维复杂数据&#xff0c;传统机器学习方法易受噪声和冗余特征干扰。为提…...

精益数据分析(93/126):增长率的真相——从数据基准到科学增长策略

精益数据分析&#xff08;93/126&#xff09;&#xff1a;增长率的真相——从数据基准到科学增长策略 在创业领域&#xff0c;增长率常被视为企业成功的核心指标&#xff0c;但多少才算“足够好”&#xff1f;如何避免陷入“盲目增长陷阱”&#xff1f;今天&#xff0c;我们将…...

MAC上怎么进入隐藏目录

在Mac上&#xff0c;由于系统保护的原因&#xff0c;一些系统目录如/usr默认是隐藏的&#xff0c;但可以通过以下方法进入&#xff1a; 方法一&#xff1a;使用Finder的“前往文件夹”功能 打开Finder。使用快捷键Command Shift G&#xff0c;或者在菜单栏中选择“前往”-“…...

Spark-TTS: AI语音合成的“变声大师“

嘿&#xff0c;各位AI爱好者&#xff01;还记得那些机器人般毫无感情的合成语音吗&#xff1f;或者那些只能完全模仿但无法创造的语音克隆&#xff1f;今天我要介绍的Spark-TTS模型&#xff0c;可能会让这些问题成为历史。想象一下&#xff0c;你可以让AI不仅说出任何文字&…...

【Python 进阶3】常见的 call 和 forward 区别

在 Python 和深度学习框架&#xff08;如 PyTorch&#xff09;中&#xff0c;__call__ 和 forward 是两个不同的概念&#xff0c;它们的用途和实现方式有明显区别&#xff1a; 1. __call__ 方法&#xff08;Python 内置特殊方法&#xff09; 在 Python 中&#xff0c;__call_…...

WEB3——简易NFT铸造平台之nft.storage

该平台目前已经不太支持免费试用&#xff0c;现在推荐Pinata平台&#xff0c;免费用1GB Pinata | Cryptos file storage 下面web3.storage也可以用&#xff0c;但是需要你有可以交易的外币卡 w3up console &#x1f9e0; 1. nft.storage 是什么&#xff1f; https://nft.stor…...

一元函数积分

1. 不同名函数积分 2.三角函数有理式...

6年“豹变”,vivo S30系列引领手机进入场景“体验定义”时代

出品 | 何玺 排版 | 叶媛 5月29日晚&#xff0c;备受用户期待的vivo S30系列如约而至。 相比前几代S系列产品&#xff0c;S30系列变化显著&#xff0c;堪称“豹变”。首先&#xff0c;其产品打造思路发生了质变&#xff0c;产品体验更好&#xff0c;综合竞争力更为强。其次&a…...

Pytorch的梯度控制

在之前的实验中遇到一些问题&#xff0c;因为之前计算资源有限&#xff0c;我就想着微调其中一部分参数做&#xff0c;于是我误打误撞使用了with torch.no_grad&#xff0c;可是发现梯度传递不了&#xff0c;于是写下此文来记录梯度控制的两个方法与区别。 在PyTorch中&#x…...

linux驱动开发(1)-内核模块

内核模块 模块最大的好处是可以动态扩展应用程序的功能而无须重新编译链接生成新的应用程序镜像&#xff0c;在微软的Windows系统上动态链接库DLL&#xff08;Dynamic Link Library&#xff09;&#xff0c;Linux系统上的共享库so&#xff08;shared object&#xff09;文件的…...

AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁​

近年来&#xff0c;人工智能正在改变法律行业的游戏规则。从最初的“工具属性”——帮律师干些重复的杂活儿&#xff0c;到如今逐渐变身为“认知引擎”——能够理解法律逻辑、分析案例&#xff0c;法律AI产品正在迎来一场华丽的转身。这篇文章将带你一探究竟&#xff0c;看看这…...

前端八股之CSS

CSS 盒子模型深度解析与实战 一、盒子模型核心概念 Box-sizing CSS 中的 box-sizing 属性定义了引擎应该如何计算一个元素的总宽度和总高度 语法&#xff1a; box-sizing: content-box|border-box|inherit:content-box 默认值&#xff0c;元素的 width/height 不包含paddi…...

ps自然饱和度调整

在Photoshop&#xff08;PS&#xff09;中&#xff0c;自然饱和度调整是一项用于优化图像色彩的重要功能&#xff0c;以下是对其详细解析&#xff1a; 一、功能概述 自然饱和度主要针对画面中饱和度较低的像素进行着重调整&#xff0c;同时对高饱和度区域限制较小&#xff0c…...

有公网ip但外网访问不到怎么办?内网IP端口映射公网连接常见问题和原因

有公网IP但外网访问不到的核心原因通常包括&#xff1a;端口未正确映射、防火墙限制、DNS解析问题、运营商端口屏蔽或路由配置错误‌。需依次排查这些关键环节&#xff0c;其中端口映射和防火墙设置是最常见的原因。‌‌ ‌内网IP端口映射公网连接常见问题和原因及解决方案 1…...

InlineHook的原理与做法

InlineHook翻译为内联钩子 内联也就是我们的内联汇编 钩子就是修改目标的执行流程或代码 #include<iostream> using namespace std; #include<Windows.h>DWORD OldPro 0; //老的保护权限 char OldCode[9] { 0 }; //hook前的汇编代码 DWORD RetData 0; …...

微服务-Sentinel

目录 背景 Sentinel使用 Sentinel控制台 Sentinel控制规则 Sentinel整合OpenFeign 背景 在微服务项目架构中&#xff0c;存在多个服务相互调用场景&#xff0c;在某些情况下某个微服务不可用时&#xff0c;上游调用者若一直等待&#xff0c;会产生资源的消耗&#xff0c;极端情…...

DNS缓存

DNS详细解释 DNS缓存&#xff08;DNS Cache&#xff09;是指操作系统或应用程序在本地保存的一份“域名与IP地址的对应关系”记录。 1. DNS的基本作用 当你访问一个网站&#xff08;比如 www.jd.com&#xff09;时&#xff0c;计算机需要先把这个域名转换成实际的IP地址&…...

MySQL垂直分库(基于MyCat)

参考资料&#xff1a; 参考视频 参考博客 Mycat基本部署 视频参考资料&#xff1a;链接: https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg 提取码: aag3 概要&#xff1a; 本文的垂直分库&#xff0c;全部是基于前文部署的基本架构进行的 垂直分库&#xff1a; 垂直分库…...