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

Mysql基础进阶速成版

一:sql语句:

1.创建一张表:写成公式:创建函数(create table)+表名+(配置字段)。配置字段公式:字段名称+字段类型,常用的类型有:整数类型int(8),int(16),int(32).....,小数类型float(8),float(16)......,字符串类型varchar(8),varchar(16).....时间类型data,datetime,二进制文件blob,文本类型text....等等这些

每条sql语句后面都要加英文分号;

13.	create table table_name(
14.	        int_name int(6), -- 6显示长度 
15.	        varvhar_name varchar(5), -- 5个字符
16.	        sex char(1),
17.	        age int(3),
21.	);

查看表结构公式:desc + 表名字

desc table_name;

查询表中的数据:select * from +表名(后面会详细讲查询语句)

show * from table_name;

 在表中插入数据:insert into +表名 + values +数据,除了整数和浮点类型,其他都要有引号单引双引都可以,如果输入类容有引号,要遵守引号使用规则

insert into table_name values (1,'字符串','男','20');

 修改表中的数据:update + 表名 + set + 要修改的字段名。

updata table_name set int_name=2;
updata table_name set varchar_name = '很长的字符串';

增加一列数据,也就是增加一个字段:alter table+ 表名 + add +字段名 + 字段类型

alter table table_name add wight float(16);

 删除字段:alter + table + 表名 + drop +字段名

alter table table_name drop wight;

修改字段 :alter + table + 表名 + modify + 字段名字 + 字段类型(不能修改字段名字)

alter table table_name modify wight int(6);

 修改字段:alter table +表名 + change + 原字段名+新字段名+新字段类型

alter table table_name change wight new_wight float(32);

删除表:drop table + 表名

drop table table_name;

 非外键约束:也就是给字段添加一些禁制,在创建字段的时候在字段后面添加:

primary key 主键约束,这个字段的数据不能为空且不能重复

not null:保存数据的时候这个字段的值不能为空

defalt  不填写时候的默认值,check后面跟的是填写的选项

auto increment:在加入数据的时候该字段的值会自动向上增加

unique:唯一约束,

以上这些约束,在保存数据的时候如果违背了这些约束那么程序会报错

# 一个个人信息表:
create table table_name(proson int(8) primary key auto increment,name varchar(5) not null,sex char(1) default '男' check (sex='男' || sex='女'),age int(3)
);

如果表已经创建好了怎么添加约束呢:

alter table +表格名称 add constraint +约束名称 +增加的约束类型 +(列名)

还可以使用修改表中字段的方式添加约束:alter table+表名+modify +字段名字+字段类型+约束

alter table table_name add constraint primary key (proson);
alter table table_name modify proson int(8) auto increment;

 外键约束:

这个是用来作两张表之间的约束的,外键是指表中某个字段(A)的值依赖于另一张表中某个字段(B)的值,而被依赖的字段(B)必须具有主键约束或者唯一约束,被依赖的表(B表)我们通常称之为父表或者主表,设置外键约束的表(A表)称之为子表或者从表。

举个栗子:有两张表,你们班级的表()里面有每个学生的信息,辅导员的表里面有辅导员的信息(),你们班级的表中有一个字段teacher表示每个学生的辅导员是谁,辅导员表中有一个字段students表示有哪些班的学生,那么学生表中的teachar字段的取值范围(辅导员人数)取决于辅导员表中的students的取值来决定。这样就把两张表联系起来了。还是有点抽象?

创建辅导员表:

create table teacher(id int(4) primary key auto increment,name varchar(10) not null,class char(4)
);

 向里面添加数据

insert into teacher values (null,'土木一班','a104');
insert into teacher values (null,'土木二班','a105');
insert into teacher values (null,'土木三班','a106');# 或者一次全部插入用逗号隔开insert into teacher values (null,'土木三班','a106'),(null,'土木二班','a105'),(null,'土木一班','a104');

创建学生表:

create table student(id int(6) primary key auto increment,name varchar(5) not null,on_class int(4)
);

 插入学生数据

insert into student values (null,'张三',1),(null,'李四',1),(null,'王五',2);

 添加外键约束

alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)

这里会报错,那是因为还没加约束之前就有数据了,先将数据清空在添加约束 

foreign key : 外键约束

fk_class:这两个表之间的约束名称

alter table student add constrain fk_class foreign key (on_class) references teacher (class);

 两个表有外键约束,删除的时候报错?那是因为删除主表的时候有外键约束着,是不能删除的,所以要先删除从表在删除主表。

新建表两个表的数据和结构要一致:create table + 新建表表名+as select * from+已有表名

新建表两个表的结构要一致,新表没有数:

create table + 新建表表名+as select * from+已有表名+where 1=2;

其实就是后面的where条件判断,你判断什么样它就新建成什么样

create table student2 as select * from student1;
create table student3 as select * from student1 where 1=2;

删除数据,保留字段:delete from+表名  或者 truncate table +表名

两者的区别在于delete是将表中的数据一条条的删除(可以回滚),truncate是创建一个结构和原表一样的表,然后将原表删除(注意:数据不能回滚!!)

delete from student;
truncate table student;

 表中的数据查找;

select + 需要查询的字段名称+from+表名     ,*代表所有的数据

需要查找的字段名之间使用逗号隔开,如果是用空格隔开代表对中国字段取一个别名,在显示中显示的是这个别名,如果是对字段使用运算符,那个查询出来的值就是这个字段的每个数据使用这个运算后的数据。

select * from student; 
select age,weight,name from student;
select age '年龄',weight '体重',name '姓名' from student;
# 将查询出来的年龄加二十岁
select age+20,weight,name from student;

排序查询查找: select + 需要查询的字段名称+from+表名 +order by +对字段排序的字段名+升降。asc表示升序(默认),desc降序

select * from student order by age asc;

条件查询: select + 需要查询的字段名称+from+表名+where +条件

如果是多个条件,使用and并或者&&,or或者||来连接

select * from student where age>20;
select * from student where name='张三';
select * from student where age>20 and name='张三';
select * from student where age>20 && name='张三';

 

内容太多了,后面的章节放到下一个文章里了。 都看到这里了记得点个赞呗!!!

相关文章:

Mysql基础进阶速成版

一:sql语句: 1.创建一张表:写成公式:创建函数(create table)表名(配置字段)。配置字段公式:字段名称字段类型,常用的类型有:整数类型int(8),int(16),int(32).....,小数类型float(8),float(16).…...

Tomcat安装与配置要点和难点以及常见报错和解决方案

Tomcat 的安装及配置教程如下,将按照清晰的步骤进行说明: 一、安装前的准备 安装 JDK:Tomcat 是基于 Java 的 Web 服务器,因此需要先安装 JDK(Java Development Kit)。 你可以根据自己的操作系统选择适合的 JDK 版本,并确保它已正确安装和配置。 二、下载 Tomcat 访问 A…...

【Oracle】Oracle导入导出dmp文件

文章目录 前言一、什么是dmp?二、imp/impdp、exp/expdp对比及示例1.区别2.imp/impdp对比及示例a. impb. impbp 3.exp/expdp对比及示例a. expb.expdp 3.其他事项 三、执行导入导出前置条件1.创建角色并授权2.创建目录映射 前言 在工作中,经常会遇到需要备…...

渗透测试模拟实战-tomexam网络考试系统

渗透测试,也称为“pentest”或“道德黑客”,是一种模拟攻击的网络安全评估方法,旨在识别和利用系统中的安全漏洞。这种测试通常由专业的安全专家执行,他们使用各种技术和工具来尝试突破系统的防御,如网络、应用程序、主…...

“神经网络之父”和“深度学习鼻祖”Geoffrey Hinton

“神经网络之父”和“深度学习鼻祖”Geoffrey Hinton在神经网络领域数十年如一日的研究,对深度学习的推动和贡献显著。 一、早期贡献与突破 反向传播算法的引入:Hinton是将反向传播(Backpropagation)算法引入多层神经网络训练的…...

[消息队列 Kafka] Kafka 架构组件及其特性(一)

工作中的消息队列用的是Kafka,一直没有系统的了解,这边集中整理一下。 目录 Kafka主要组件有十个部分。 1.Broker(服务器) 2.Record(消息) 3.Producer(生产者) 4.Consumer&…...

【Flutter 面试题】 JIT 与 AOT分别是什么?

【Flutter 面试题】 JIT 与 AOT分别是什么? 文章目录 写在前面口述回答写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。 👏🏻 正在学 Flutter 的同学,你好! 😊 Flutter 面试宝典(…...

QT获取最小化,最大化,关闭窗口事件

QT获取最小化,最大化,关闭窗口事件 主程序头文件: 实现: changeEvent,状态改变事件 closeEvent触发点击窗口关闭按钮事件 其代码它参考: /*重写该函数*/ void MainWindow::changeEvent(QEvent *event) {…...

Oracle作业调度器Job Scheduler

Oracle数据库调度器 (Oracle Database Scheduler) 在数据库管理系统中,数据库调度器负责调度和执行数据库中的存储过程、触发器、事件等。它可以确保这些操作在正确的时间和条件下得到执行,以满足业务需求。 1、授权用户权限 -- 创建目录对象 tmp_dir…...

Vue 组件之间的通信

在 Vue.js 中,组件是构建应用程序的基本单位。然而,当你的应用程序变得复杂时,组件之间的通信变得至关重要。本文将介绍几种 Vue 组件之间通信的方式,帮助你更好地管理和组织代码。 父子组件通信 父组件可以通过 props 向子组件传…...

Elementary OS 7.1简单桌面调整

Elementary OS的Pantheon桌面环境提供了一种非常独特和直观的用户体验。默认情况下,Pantheon桌面并没有提供传统的窗口最小化、最大化按钮。但是可以通过安装和使用特定的工具来调整和自定义这些设置。 可以通过以下步骤来启用窗口的最小化和最大化按钮&#xff1a…...

【C++ | 析构函数】类的析构函数详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-06 1…...

ceph radosgw 原有zone placement信息丢失数据恢复

概述 近期遇到一个故障环境,因为某些原因,导致集群原有zone、zonegroup等信息丢失(osd,pool等状态均健康)。原有桶和数据无法访问,经过一些列fix后修复, 记录过程 恢复realm和pool相关信息 重…...

​​​​【动手学深度学习】残差网络(ResNet)的研究详情

目录 🌊1. 研究目的 🌊2. 研究准备 🌊3. 研究内容 🌍3.1 残差网络 🌍3.2 练习 🌊4. 研究体会 🌊1. 研究目的 了解残差网络(ResNet)的原理和架构;探究残…...

freertos初体验 - 在stm32上移植

1. 说明 freertos内核 非常精简,代码量也很少,官方也针对主流的编译器和内核准备好了移植文件,所以 freertos 的移植是非常简单的,很多工具(例如CubeMX)点点鼠标就可以生成一个 freertos 的工程&#xff0…...

ubuntu使用 .deb 文件安装VScode

使用 .deb 文件安装 下载 VSCode 的 .deb 文件: wget -q https://go.microsoft.com/fwlink/?LinkID760868 -O vscode.deb使用 dpkg 安装: sudo dpkg -i vscode.deb如果有依赖项问题,使用以下命令修复: sudo apt-get install -f...

9.1.1 简述目标检测领域中的单阶段模型和两阶段模型的性能差异及其原因

9.1目标检测 场景描述 目标检测(Object Detection)任务是计算机视觉中极为重要的基础问题,也是解决实例分割(Instance Segmentation)、场景理解(Scene Understanding)、目标跟踪(Ob…...

系统化自学Python的实用指南

目录 一、理解Python与设定目标 二、搭建学习环境与基础准备 三、入门学习阶段 四、中级进阶阶段 五、项目实践与持续深化 六、持续学习与拓展 一、理解Python与设定目标 Python概述:详细介绍Python的历史沿革、设计理念、主要特点(如易读、易维护…...

加密货币初创企业指南:如何寻找代币与市场的契合点

撰文:Mark Beylin,Boost VC 编译:Yangz,Techub News 原文来源:香港Web3媒体Techub News 在 Y Combinator 创始人 Paul Graham 《Be Good》一文中概述了初创企业如何找到产品与市场契合点的方法,即制造人…...

【十二】图解mybatis日志模块之设计模式

图解mybatis日志模块之设计模式 概述 最近经常在思考研发工程师初、中、高级工程师以及系统架构师各个级别的工程师有什么区别,随着年龄增加我们的技术级别也在提升,但是很多人到了高级别反而更加忧虑,因为it行业35岁年龄是个坎这是行业里的共…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...