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桌面并没有提供传统的窗口最小化、最大化按钮。但是可以通过安装和使用特定的工具来调整和自定义这些设置。 可以通过以下步骤来启用窗口的最小化和最大化按钮:…...

【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 的工程࿰…...
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岁年龄是个坎这是行业里的共…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...