Linux云计算训练营笔记day07(MySQL数据库)
数据库 DataBase
保存数据的仓库
数据库管理系统 DBMS
这是一个可以独立运行,用于维护磁盘上的数据的一套软件
特点:
维护性高,灵活度高,效率高,可扩展性强
常见的DBMS
Mysql
Mariadb
Oracle
DB2
SQLServer
MySQL是一个关系型数据库管理系统(DBMS)
SQL 语言
DATABASE数据库 => TABLE表格 => row行 x col列
库 是表的集合,在不同的项目创建不同的库,来保存项目中所需要用到的数据
表 是一句具有相同属性数据的集合,分为行和列
行 具有这组属性的一条具体数据
列 数据应具有的属性信息
DBMS安装以后是一个独立可运行的软件,并且是以服务端形式在操作系统中运行的,想要操作数据库
需要以客户端身份与DBMS进行链接
客户端(命令行工具 数据库自带的)
Mariadb
客户端连接数据库服务端
1)mysql -uroot -p
密码 root
2)mysql -uroot -proot
3)mysql -uroot -P3306 -h127.0.0.1 -proot
-u: user 用户名
-P: port 端口号
-h: host IP地址
-p: password 密码
exit 退出
我们是以客户端形式与服务端进行链接,向数据库发送指令,让数据库相关的操作
发送的指令就是SQL(Structured Query Language) 结构化查询语言
SQL特点:
不区分大小写; 关键字大写,非关键字小写
SQL分类
DDL 数据定义语言 对数据库对象的相关操作
DML 数据操作语言 增加Insert 修改 UPDATE 删除 DELETE
DCL 数据控制语言 对数据库维护操作,例如权限管理
DDL 数据定义语言 - CREATE ALTER DROP
创建一个数据库
create database 数据库名 [charset=编码字符集];
CREATE DATABASE 数据库名 [charset=编码字符集];
CREATE DATABASE jd charset=utf8; 创建一个jd数据库,编码字符设置为utf8
create database taobao charset=gbk; 创建一个taobao数据库,编码字符设置为gbk
显示所有的数据库
show databases;
显示创建数据库的信息
show create database jd;
create database pinduoduo; 创建数据库pinduoduo,使用默认字符集
show create database pinduoduo; 默认是 latin1 字符
删除数据库
drop database 数据库名;
drop database taobao; 删除taobao数据库
show databases; 显示所有的数据库
DBMS下会有多个数据库,只有切换到对应的数据库才能对立面的表进行操作
切换数据库
use 数据库名
use jd;
练习:
1.创建数据库db1,设置字符集为utf8;
create database db1 charset=utf8;
2.查看db1数据库的创建语法
show create database db1;
3.删除db1数据库
drop database db1;
4.显示所有的数据库
show databases;
创建一张表
create table 表名(
字段名 类型(长度),
字段名 类型(长度),
字段名 类型(长度)
);
create table user(
id int(3), int为整数类型,长度是数字的位数
name varchar(32), varchar是字符串类型,括号里的是指定长度,单位是字符
address varchar(32)
);
查看库中所有的表
show tables;
查看创建表的信息
show create table user;
查看表结构
desc 表名;
desc user;
修改表名
rename table 原表名 to 新表名
rename table user to userinfo;
或者
alter table 原表名 to 新表名
alter table user_info rename user
删除表
drop table 表名
drop table userinfo;
练习:
1)创建数据库lol,字符集使用gbk
create database lol charset=gbk;
2)切换lol库
use lol;
3)创建hero表,有名字和金额
create table hero(
name varchar(10),
money int(6)
);
4)查看hero表的结构
desc(describe) hero;
5)修改表hero为yxlm
rename table hero to yxlm;
alter table hero rename yxlm;
6)删除表yxlm
drop table yxlm;
添加一个字段
alter table 表名 add 字段名 类型 first
alter table user add address varchar(10) first;
在表中添加一个字段
alter table 表名 add 字段名 类型 after 表中某字段
alter table user add email varchar(10) after id;
修改表中现在字段
alter table 表名 change 原字段名 新字段名 类型
alter table user change id id varchar(10);
删除表中字段
alter table 表名 drop 字段名
alter table user drop email;
练习:
1)创建数据库tedu,字符集使用utf8
create database tedu charset=utf8;
2)创建teacher表,有name字段 varchar类型
use tedu
create table teacher(
name varchar(10)
);
3)添加表字段,最前面添加id int类型 最后添加age int 类型, 在age前面添加salary工资 int类型
alter table teacher add id int first;
alter table teacher add age int;
alter table teacher add salary int after name;
4)删除age字段
alter table teacher drop age;
5)修改表名student
rename table teacher to student;
6)删除表student
drop table student;
7)删除库tedu
drop database tedu;
DML语言 数据操作语言 : 对表中的记录进行操作的语言
insert: 向表中插入记录操作
update: 修改表中的记录操作
delete: 删除表中的记录操作
create database tedu charset=utf8;
use tedu;
create table person(
name varchar(20),
age int(3)
);
insert 向表中插入记录
语法:
insert into 表名 values(值)
insert into person values(“张三”,28);
insert into person(name, age) values(“龚里”,30);
insert into person(name) values(“小7”);
insert into person(age, name) values(20,“小六子”);
注意事项:
1)数据库中字符串对应的值必须使用(英文)引号括起来
2)insert语句中values子句执行的值顺序,个数,类型 要和前面指定的字段一样
insert语句中没有指明的字段,记录中插入默认值NULL
默认值的设定,可以在创建表和修改表进行
create table people(
name varchar(20) default “貂蝉”,
age int(3)
);
insert into people(age) values(18);
select * from people;
修改表时为字段补充默认值
alter table person change name name varchar(20) default “龚里”;
insert into person(age) values(28);
select * from person;
插入NULL和默认值
向name插入默认值: insert into person values(default,25);
向name插入NULL值: insert into person values(NULL,35);
批量插入:
可以在values子句中同时指定多组值,插入多条记录
insert into 表名 values(值),(值2),(值3)
insert into person(age) values(18),(19),(20);
insert into person values(“老六”,18),(“老七”,19),(“老八”,20);
update 修改表中数据
update 表名 set 字段=值 [where 过滤条件]
update person set age=18 where name=“张三”;
update person set name=“貂蝉”;
注意事项:
update语句不添加where子句时,表示表中每条记录都会进行修改
alter table person add id int first;
查询表中的数据
select * from 表名;
select * from person;
相关文章:
Linux云计算训练营笔记day07(MySQL数据库)
数据库 DataBase 保存数据的仓库 数据库管理系统 DBMS 这是一个可以独立运行,用于维护磁盘上的数据的一套软件 特点: 维护性高,灵活度高,效率高,可扩展性强 常见的DBMS Mysql Mariadb Oracle DB2 SQLServer MySQL是一个关系型…...

应用探析|千眼狼PIV测量系统在职业病防治中的应用
1、职业病防治背景 随着《职业病防治法》及各省市“十四五”职业病防治规划的深入推进,工作场所粉尘危害监测与防控已成为疾控部门的核心任务。以矿山、建材、冶金、化工等行业为例,粉尘浓度、分布及传播特性的精准测量是评估职业病风险的关键。 传统的…...
获取accesstoken时,提示证书解析有问题,导致无法正常获取token
错误: https://qyapi.weixin.qq.com/cgi-bin/gettoken": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targ…...
面试中被问到谈谈你对threadlocal的理解
ThreadLocal 的核心理解 1. 基本概念 ThreadLocal 是 Java 提供的线程局部变量机制,用于在多线程环境中为每个线程维护独立的变量副本,实现线程隔离。其核心思想是空间换时间,通过避免共享变量带来的同步开销,提升并发性能。 2…...

nvidia驱动更新-先卸载再安装-ubuntu
显卡驱动升级前,卸载旧版本,可采用两种方式。 1.命令行 (1)查找已安装的 NVIDIA 驱动和相关包:dpkg -l | grep nvidia (2)完全卸载 NVIDIA 驱动:sudo apt remove purge nvidia-*…...
FlashInfer - 安装
FlashInfer - 安装 flyfish 一、JIT 版安装FlashInfer 对于 JIT 版本(即每次都从源代码编译每个内核,此过程需要 NVCC),可通过 PyPI 进行安装。 解释 JIT 版本(JIT Version) JIT 即 Just-In-Time Compi…...

推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略
在 B2C 电商竞争激烈的市场环境中,精准推荐已成为提升用户体验、促进商品销售的关键。ZKmall 模板商城通过推荐算法工程化手段,深度挖掘用户数据价值,制定科学的用户分层推荐策略,实现 “千人千面” 的个性化推荐,帮助…...
jackson-dataformat-xml引入使用后,响应体全是xml
解决方案: https://spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.web.servlet.config.annotation.Con…...
嵌入式硬件篇---TOF|PID
文章目录 前言1. 硬件准备主控芯片ToF模块1.VL53L0X2.TFmini 执行机构:电机舵机其他 2. 硬件连接(1) VL53L0X(IC接口)(2) TFmini(串口通信) 3. ToF模块初始化与数据读取(1) VL53L0X(基于HAL库)(…...
Realtek 8126驱动分析第四篇——multi queue相关
Realtek 8126是 5G 网卡,因为和 8125 较为接近,第四篇从这里开始也无不可。本篇主要是讲 multi queue 相关,其他的一些内容在之前就已经提过,不加赘述。 1 初始化 1.1 rtl8126_init_one 从第一篇我们可以知道每个 PCI 驱动都注…...

基于Java和PostGIS的AOI面数据球面面积计算实践
目录 前言 一、计算方法简介 二、球面面积计算 1、AOI数据转Polygon 2、Geotools面积计算 3、GeographicLib面积计算 4、PostGIS面积计算 三、结果分析 1、不同算法结果对比 2、与互联网AOI对比 3、与天地图测面对比 四、总结 前言 在现代地理信息系统(G…...

Spring Boot之Web服务器的启动流程分析
如何判断创建哪种web容器:servlet?reactive? 我们在启动Spring Boot程序的时候,会使用SpringApplication.run方法来启动,在启动流程中首先要判断的就是需要启动什么类型的服务器,是servlet?或者…...
C# SQLite高级功能示例
目录 1 主要功能 2 程序结构和流程 3 详细实现说明 3.1 基础设置 3.2 事务演示 3.3 索引演示 3.4 视图演示 3.5 触发器演示 3.6 全文搜索演示 3.7 窗口函数演示 3.8 外键约束演示 4 高级功能示例 5 单个方法详细介绍 5.1 SetupExampleData()方法 5.2 UseTransact…...

【周输入】510周阅读推荐-1
本号一年了,有一定的成长,也有很多读者和点赞。自觉更新仍然远远不够,需要继续努力。 但是还是要坚持2点: 在当前这个时代,信息大爆炸,层次不齐,不追加多, 信息输入可以很多&#x…...

基于动态规划的强化学习方法
目录 # 动态规划 # 基于动态规划的强化学习方法 # 求解过程: ## 策略评估 ## 策略提升 # 价值迭代算法 # 参考 # 动态规划 动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。…...
启动 spyder ModuleNotFoundError: No module named ‘PyQt5.QtWebKitWidgets‘
一、根本原因 Spyder 版本兼容性:Spyder 4.x 依赖 QtWebKitWidgets,但该模块在 PyQt5 5.15 中已被移除。 PyQt5 版本冲突:如果你安装了较新的 PyQt5(如 5.15),则会缺少 QtWebKitWidgets。 二、解决方案 方法…...
ChemBlender:科研绘图创新解决方案
一、研究背景与冲突 (一)研究背景 在科学研究领域,可视化表达对于成果的呈现与交流至关重要。科研绘图作为科学可视化的关键手段,涵盖了从微观分子结构到宏观实验现象等广泛的内容。随着科研的深入发展,研究对象的复杂…...

Uniapp Android/IOS 获取手机通讯录
介绍 最近忙着开发支付宝小程序和app,下面给大家介绍一下 app 获取通讯录的全部过程吧,也是这也是我app开发中的一项需求吧。 效果图如下 勾选配置文件 使用uniapp开发的童鞋都知道有一个配置文件 manifest.json 简单的说一下,就是安卓/ios/…...
设计一个分布式系统:要求全局消息顺序,如何使用Kafka实现?
一、高吞吐低延迟 Kafka 集群设计要点 1. 分区策略优化 // 计算合理分区数公式(动态调整) int numPartitions max(Tp, Tc) / min(Tp, Tc) // Tp生产者吞吐量 Tc消费者吞吐量建议初始按业务键(如订单ID)哈希分区单分区吞吐建议…...

2025年RIS SCI2区,改进白鲸优化算法+复杂非线性方程组求解,深度解析+性能实测
目录 1.摘要2.白鲸优化算法BWO原理3.改进策略4.结果展示5.参考文献6.代码获取7.读者交流 1.摘要 本文提出了一种改进白鲸优化算法(ABWOA)用来解决非线性方程组(SNLEs)求解问题。ABWOA引入了平衡因子和非线性自适应参数࿰…...

Java后端开发day48--反射动态代理
(以下内容全部来自上述课程) 反射 反射允许对成员变量,成员方法和构造方法的信息进行编程访问。 就是获取里面的成员变量、构造方法和成员方法,idea中打代码跳出来的提示就是反射。 1. 获取class对象的三种方式 Class.for…...
十四、继承与组合(Inheritance Composition)
十四、继承与组合(Inheritance & Composition) 引言 C最引人注目的特性之一是代码复用。组合:在新类中创建已有类的对象。继承:将新类作为已有类的一个类型来创建。 14.1 组合的语法 Useful.h //C14:Useful.h #ifndef US…...

ValueError: Caught ValueError in DataLoader worker process 0.
参考链接: https://stackoverflow.com/questions/1841565/valueerror-invalid-literal-for-int-with-base-10 它提示我有个地方值错误空字符 果然因为格式处理没有传进去东西,找下原因,让它正常处理 原来是相对路径的.影响了程序运行 将v…...

【数据结构】——链表OJ(下)
前面我们已经刷了几道单链表的题目,下面我们继续看几道题目。 一、相交链表 这道题题目的要求是很好理解的,就是现在我们有两个链表,然后我们就相办法进行判断,这两个链表是否是相交的,那么链表的相交其实就是有没有共…...

Adobe Acrobat pro在一份PDF中插入空白页
在Adobe Acrobat pro中先打开我们的PDF文件; 用鼠标点击需要插入空白页处的上一页; 然后如下图操作: 默认会在光标处的下一页插入一张空白页,你也可以修改插入页的页码或者向前一页插入...

java-----异常
对于Error:表示系统级错误或者资源耗尽的状况,像OutOfMemoryError、StackOverflowError等。这类错误是程序无法处理的,通常也不应该尝试去处理。 对于Exception:表示程序可以处理的异常。它又能细分为: 受检查异常&a…...

[工具]B站缓存工具箱 (By 郭逍遥)
📌 项目简介 B站缓存工具箱是一个多功能的B站缓存工具,包含视频下载、缓存重载、文件合并及系统设置四大核心功能。基于yutto开发,采用图形化界面操作,极大简化B站资源获取与管理流程。 工具可以直接将原本缓存的视频读取&#…...
《内网渗透测试:绕过最新防火墙策略》
内网渗透测试是检验企业网络安全防御体系有效性的核心手段,而现代防火墙策略的持续演进(如零信任架构、AI流量分析、深度包检测)对攻击者提出了更高挑战。本文系统解析2024年新型防火墙的防护机制,聚焦协议隐蔽隧道、上下文感知绕…...
python_竞态条件
好的,我们通过一个具体的例子来说明在多线程环境中,可变对象和不可变对象的行为差异,以及不可变对象如何避免竞态条件(race condition)。 1. 竞态条件(Race Condition) 竞态条件是指在多线程环…...
聊聊JetCache的CachePenetrationProtect
序 本文主要研究一下JetCache的CachePenetrationProtect CachePenetrationProtect com/alicp/jetcache/anno/CachePenetrationProtect.java Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD, ElementType.FIELD}) public interface CachePenetr…...