Linux云计算训练营笔记day08(MySQL数据库)
Linux云计算训练营笔记day08(MySQL数据库)
目录
- Linux云计算训练营笔记day08(MySQL数据库)
- 数据准备
- 修改更新update
- 删除delete
- 数据类型
- 1.整数类型
- 2.浮点数类型(小数)
- 3.字符类型
- 4.日期
- 5.枚举: 表头的值必须在列举的值里选择
- 拷贝表
- 复制表头和数据
- 只复制表头不复制数据
- 约束条件
- 约束种类
- 主键
- 自增
- 非空约束
- 唯一约束
- 检查约束
数据准备
– Active: 1747188627686@@127.0.0.1@3306@gongli
CREATE DATABASE gongli CHARSET=utf8;
use gongli;
CREATE Table user(id int,name VARCHAR(15),age int
);
INSERT INTO user VALUES(1,"张三",18);
INSERT INTO user VALUES(2,"李四",30);
INSERT INTO user VALUES(3,"王五",40);
修改更新update
update 表名 set 字段=值 where 条件
where中常用的基础条件= > >= < <= <>(不等于)
-- 1.把张三的名字修改为韩立 ctrl + /
UPDATE user set name="韩立" where name="张三";
-- 2.把id为2的名字修改为王林
UPDATE user set name="王林" where id=2;
-- 3.同时修改多个值
UPDATE user set name="萧炎", age=25 where id=3;
删除delete
删除 delete 用于删除表中的记录
delete from 表名 where 条件
-- 删除id大于等于3的数据
DELETE from user where id>=3;
DELETE from user where name="王林";
-- 把表中所有的数据都删除, 表还存在
DELETE from user;
-- 显示当前库中的所有表
SHOW TABLES;
-- 删除user表 把表中所有的数据都删除, 表也不存在
DROP TABLE user;
-- 查询所有数据
SELECT * from user;
总结:
insert 向表中插入数据
update 修改表中的数据
delete 删除表中的数据
-- 1)创建数据库nsd,字符集使用utf8
CREATE DATABASE nsd CHARSET=utf8;
-- 2)创建表userinfo,字段有id(整数类型,长度为3) name字段(字符串类型)
-- money(整数类型,长度为6) age字段(整数类型,长度为3)
use nsd;
CREATE TABLE userinfo(id int(3),name VARCHAR(18),money int(6),age int(3)
);
-- 3)修改表名为user
RENAME TABLE userinfo to user;
-- 4)向表中插入数据 1 元瑶 8000 28 2 李木婉 10000 30
INSERT INTO user VALUES(1,"元瑶",8000,28),(2,"李木婉",10000,30);
-- 5)修改元瑶的年龄为35岁
UPDATE user set age=35 where name="元瑶";
-- 6)修改年龄小于35岁的价格为5000
UPDATE user set money=5000 where age<35;
SELECT * from user;
-- 7)删除价格为5000的信息
DELETE from user where money=5000;
-- 8)删除表
DROP TABLE user;
-- 9)删除数据库
DROP DATABASE nsd;
show DATABASEs;
数据类型
在数据库中每一张表的每一个字段都要指定数据类型以确保可以正确的保存对应的数据
1.整数类型
TINYINT (-128,127)
SMALLINT (-32 768,32 767)
INT (-2 147 483 648,2 147 483 647) 13049306482
BIGINT (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)
CREATE Table test1(id int,phone bigint
);
INSERT into test1 VALUES(1, 13049306482);
2.浮点数类型(小数)
FLOAT 单精度
DOUBLE 双精度
DOUBLE(m,n): m和n都是一个整数,m用于表示数字的总位数,n表示小数的位数,m包含n
double(7,4): 一共有7位数字,其中4位是小数,最大值是999.9999
create table person(age TINYINT(3), salary DOUBLE(7,2)
);
desc person;
-- TINYINT的范围是-128 ~~ 127, 取值不能超过,超范围会报错
INSERT into person VALUES(99,500.00);
-- 总共是7位.小数点保留2位,最大值是99999.99
INSERT into person VALUES(99,99999.99);
-- 插入小数时,如果精度超多了最大范围,会四舍五入
INSERT into person VALUES(99, 99999.678);
-- INSERT into person VALUES(99, 99999.996); 四舍五入后超过了范围也会报错
select * from person;
CREATE Table t1(id INT,age TINYINT
);
desc t1;
3.字符类型
char(n) 定长字符串,无论实际保存的字符是多少,该字段一定占用字段指定长度的字符两,不足部分补充空格
n是一个数字,最大长度是255
缺点:磁盘空间有所浪费 优点:磁盘空间占用长度是固定的,查询效率高
varchar(n)变成字符串,磁盘占用量由实际保存的数据决定(用多少占多少)
n是一个数字,最大长度是65535
缺点:查询效率慢一点 优点:磁盘空间没有浪费
如果超出字符的个数会报错
CREATE DATABASE tedu1 CHARSET=utf8;
use tedu1;
CREATE Table user(id int,name VARCHAR(3),email VARCHAR(15),city char(10)
);
-- 如果超出字符的个数会报错
INSERT INTO user VALUES(1, "唐三", "59361882@qq.com");
INSERT INTO user VALUES(12, "唐小舞", "59361882@qq.com");
SELECT * from user;
drop table user;
4.日期
DATE(仅日期,格式YYYY-MM-DD) 年月日 19991117
TIME(时间或时间间隔,格式HH:MM:SS) 时分秒
DATETIME(日期+时间,范围1000-9999年) 年月日时分秒
YEAR(1字节,存储年份) 年
CREATE TABLE s1(姓名 CHAR(10),生日 DATE,出生年份 YEAR,家庭聚会 DATETIME,聚会地点 VARCHAR(10),上班时间 TIME
);
INSERT INTO s1 VALUES("秦尘",19991117,1999,20250514180000,"东门大桥",090000);
INSERT INTO s1 VALUES("林枫","2000-11-17","2000","2025-05-14 19:00:00","春熙路","10:00:00");
SELECT * from s1;
5.枚举: 表头的值必须在列举的值里选择
enum(“男”,“女”) 只能选一个
set(“吃”,“喝”,“玩”) 可以选多个
CREATE Table s2(id int,name CHAR(5),sex ENUM("男","女","人妖"),love SET("美杜莎","古薰儿","小医仙","云韵","纳兰嫣然")
);
INSERT INTO s2 VALUES(1,"萧炎","男","美杜莎,古薰儿");
INSERT INTO s2 VALUES(2,"萧萧","女","美杜莎");
INSERT INTO s2 VALUES(NULL,"萧萧","女","美杜莎");
SELECT * from s2;
desc s2;
show TABLES;
拷贝表
CREATE Table s3 select * from s2; 复制表头和数据
复制表头和数据
CREATE Table s3 select * from s2;
SELECT * from s3;
只复制表头不复制数据
CREATE TABLE s4 like s2; 只复制表头不复制数据
CREATE TABLE s4 like s2;
SELECT * from s4;
约束条件
给表添加特点的约束条件,只有满足该约束添加的操作才可以进行,否则数据库直接拒绝
约束种类
1)主键约束
2)非空约束
3)唯一约束
4)外键约束
5)检查约束
主键
主键: 主键字段的值用来唯一表示该表中的一条记录
主键必须是 非空 且 唯一
非空: 表中的每条记录都要有值
唯一: 表中的每条记录的值不可以重复
PRIMARY KEY
通常主键字段的名为ID
CREATE Table t3(id INT PRIMARY KEY,name VARCHAR(10),age INT(3)
);
-- 主键 PRIMARY KEY 非空 唯一
INSERT INTO t3 VALUES(1,"张三",18),(2,"李四",20);
INSERT INTO t3 VALUES(NULL,"王五",18); --主键不能插入空值, 也不能插入重复的id
-- INSERT INTO t3(name,age) VALUES("小医仙",18); 插入数据时不能忽略主键字段, 除非自增
-- UPDATE t3 set id=1 where name="李四"; 修改的时候,不可以把重复的值更新到主键上
-- UPDATE t3 SET id=NULL WHERE name="李四"; 修改的时候,不可以把NULL更新到主键上
SELECT * from t3;
自增
具有主键约束的字段都会为其添加自增,自增是数据库为字段生成值的一种机制
AUTO_INCREMENT 自增
id INT PRIMARY KEY AUTO_INCREMENT
CREATE Table t4(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10),age INT(3)
);INSERT INTO t4(name,age) VALUES("萧炎",30);
INSERT INTO t4(name,age) VALUES("王林",25);SELECT * from t4;desc t4;desc t3;
-- 给已有的主键字段添加 自增
ALTER Table t3 CHANGE id id int AUTO_INCREMENT;
desc s2;
-- 给已有的字段添加 主键 和 自增
ALTER Table s2 CHANGE id id int PRIMARY KEY AUTO_INCREMENT;
非空约束
NOT NULL,当字段添加非空约束后,字段的值不能为NULL
一张表可以有多个字段为非空约束
CREATE TABLE t5(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10) NOT NULL,age INT(3)
);INSERT INTO t5 VALUES(1,"王林",28);
-- INSERT INTO t5(age) VALUES(30); 插入值的时候NULL 不能为空
INSERT INTO t5(name) VALUES("李倩梅");
INSERT INTO t5(name,年龄) VALUES("王林",35);desc t5;
SELECT * from t5;DELETE FROM t5 WHERE id=2; --删除id为2的数据
-- 在已经存在的表中添加非空约束
ALTER Table t5 CHANGE age age int(3) NOT NULL;
ALTER Table t5 CHANGE age 年龄 INT(3) NOT NULL; -- 修改字段名
唯一约束
UNIQUE 要求对应字段在整张表中的值是不可以重复的,一张表可以有多个字段添加唯一约束
CREATE Table t6(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10) UNIQUE,age INT(3) NOT NULL
);INSERT INTO t6(name,age) VALUES("萧炎",25);
-- UNIQUE 唯一约束 可以插入NULL值
INSERT INTO t6(name,age) VALUES(NULL,30);
-- NULL是不不存在的值,所以不存在重复的意思
INSERT INTO t6(name,age) VALUES(null,30);SELECT * from t6;
desc t6;
-- 修改字段不能为空 并且 唯一
ALTER Table t6 CHANGE name name VARCHAR(10) NOT NULL UNIQUE;
DELETE FROM t6 WHERE id>=3;
-- 若指定唯一约束时,会将非空约束取消
ALTER Table t6 CHANGE age age INT(3) UNIQUE;
检查约束
CHECK 该约束允许我们自定义约束条件,只有满足该条件的操作才可以进行
CREATE Table t7(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10),age int(3) CHECK(age>0 and age<110)
);
INSERT INTO t7 VALUES(1,"元瑶",101);
INSERT INTO t7 VALUES(2,"韩立",3);
INSERT INTO t7(age) VALUES(7);
INSERT INTO t7(age) VALUES(8);
INSERT INTO t7(age) VALUES(9);SELECT * from t7;
相关文章:
Linux云计算训练营笔记day08(MySQL数据库)
Linux云计算训练营笔记day08(MySQL数据库) 目录 Linux云计算训练营笔记day08(MySQL数据库)数据准备修改更新update删除delete数据类型1.整数类型2.浮点数类型(小数)3.字符类型4.日期5.枚举: 表头的值必须在列举的值里选择拷贝表复…...
计算机视觉与深度学习 | matlab实现EMD-CNN-LSTM时间序列预测(完整源码、数据、公式)
EMD-CNN-LSTM 一、完整代码实现二、核心公式说明1. **经验模态分解(EMD)**2. **1D卷积运算**3. **LSTM门控机制**4. **损失函数**三、代码结构解析四、关键参数说明五、性能优化建议六、典型输出示例以下是用MATLAB实现EMD-CNN-LSTM时间序列预测的完整方案,包含数据生成、经…...
【vue】【环境配置】项目无法npm run serve,显示node版本过低
解决方案:安装高版本node,并且启用高版本node 步骤: 1、查看当前版本 node -v2、配置nvm下载镜像源 1)查看配置文件位置 npm root2)找到settings.txt文件 修改镜像源为: node_mirror: https://npmmirro…...

国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应
在汽车应用中,轮速传感器可用于车轮速度感应,为 ABS、ESC 等安全系统提供精确的轮速信息,帮助这些系统更好地发挥作用,在紧急制动或车辆出现不稳定状态时,及时调整车轮的制动力或动力分配。 国芯思辰两线制差分式轮速…...
鸿蒙PC操作系统:从Linux到自研微内核的蜕变
鸿蒙PC操作系统是否基于Linux内核,需要结合其技术架构、发展阶段和官方声明综合分析。以下从多个角度展开论述: 一、鸿蒙操作系统的多内核架构设计 多内核混合架构 根据资料,鸿蒙操作系统(HarmonyOS)采用分层多内核架构,内核层包含Linux内核、LiteOS-m内核、LiteOS-a内核…...

小程序弹出层/抽屉封装 (抖音小程序)
最近忙于开发抖音小程序,最想吐槽的就是,既没有适配的UI框架,百度上还找不到关于抖音小程序的案列,我真的很裂开啊,于是我通过大模型封装了一套代码 效果如下 介绍 可以看到 这个弹出层是支持关闭和标题显示的…...
深入理解动态规划:从斐波那契数列到最优子结构
引言 动态规划(Dynamic Programming, DP)是算法设计中一种非常重要的思想,广泛应用于解决各类优化问题。许多看似复杂的问题,通过动态规划的视角分析,往往能找到高效的解决方案。本文将系统介绍动态规划的核心概念,通过经典案例展…...
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL 场景说明: 先有项目需要读取生产库数据,但是不能直接读取生产库数据,需要把生产数据同步到一个中间库,下游系统从中间库读取数据。 生产库mysql - OGG - 中间库…...

电子电路原理第十六章(负反馈)
1927年8月,年轻的工程师哈罗德布莱克(Harold Black)从纽约斯塔顿岛坐渡轮去上班。为了打发时间,他粗略写下了关于一个新想法的几个方程式。后来又经过反复修改, 布莱克提交了这个创意的专利申请。起初这个全新的创意被认为像“永动机”一样愚蠢可笑,专利申请也遭到拒绝。但…...
Go语言数组的定义与操作 - 《Go语言实战指南》
在 Go 语言中,数组(Array) 是一种定长、同类型的集合。它在内存中是连续分布的,适合用于性能敏感的场景。 一、数组的定义 数组的基本语法如下: var 数组名 [长度]元素类型 示例: var nums [5]int …...
物联网简介:万物互联的未来图景
物联网简介:万物互联的未来图景 引言 在科技飞速发展的今天,我们身边的一切似乎都在悄然发生变化。从清晨智能闹钟根据你的睡眠状态自动唤醒,到厨房里的咖啡机在你起床前已经煮好咖啡;从城市交通系统通过实时数据优化红绿灯时长…...

命令拼接符
Linux多命令顺序执行符号需要记住5个 【|】【||】【 ;】 【&】 【&&】 ,在命令执行里面,如果服务器疏忽大意没做限制,黑客通过高命令拼接符,可以输入很多非法的操作。 ailx10 网络安全优秀回答者 互联网…...

【通用智能体】Lynx :一款基于终端的纯文本网页浏览器
Lynx :一款基于终端的纯文本网页浏览器 一、Lynx简介二、应用场景及案例场景 1:服务器端网页内容快速查看场景 2:网页内容快速提取场景 3:表单提交与自动化交互场景 4:网络诊断与调试场景 5:辅助工具适配 三…...

51单片机的lcd12864驱动程序
#include <reg51.h> #include <intrins.h>#define uchar...

GStreamer (三)常⽤插件
常⽤插件 1、Source1.1、filesrc1.2. videotestsrc1.3. v4l2src1.4. rtspsrc和rtspclientsink 2、 Sink2.1. filesink2.2. fakesink2.3. xvimagesink2.4. kmssink2.5. waylandsink2.6. rkximagesink2.7. fpsdisplaysink 3 、视频推流/拉流3.1. 本地推流/拉流3.1.1 USB摄像头3.1…...
Java POJO接收前端null值设置
在 Java 中,若要让 price 字段接收前端传递的 null 值,只需确保以下几点: 1. 使用包装类型 Double 你的 price 字段已经是包装类型 Double(而不是基本类型 double),这天然支持 null 值。基本类型 double …...
详细总结和讲解redis的基本命令
Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Se…...
Linux 内核等待机制详解:prepare_to_wait_exclusive 与 TASK_INTERRUPTIBLE
1. prepare_to_wait_exclusive 函数解析 1.1 核心作用 prepare_to_wait_exclusive 是 Linux 内核中用于将进程以独占方式加入等待队列的关键函数,其主要功能包括: 标记独占等待:通过设置 WQ_FLAG_EXCLUSIVE 标志,表明此等待条目是独占的。 安全入队:在自旋锁保护下,将条…...
蓝桥杯2300 质数拆分
问题描述 将 2022 拆分成不同的质数的和,请问最多拆分成几个? 01背包问题 #include<iostream> #include<cmath> #include<algorithm> using namespace std;int prime[2025]; int dp[2025]; //dp[j]:和为 j 时的最多拆分…...

软件架构风格系列(2):面向对象架构
文章目录 引言一、什么是面向对象架构风格1. 定义与核心概念2. 优点与局限性二、业务建模:用对象映射现实世界(一)核心实体抽象1. 员工体系2. 菜品体系 (二)封装:隐藏实现细节 三、继承实战:构建…...
ngx_http_random_index_module 模块概述
一、使用场景 随机内容分发 当同一目录下存放多份等价内容(如多张轮播图、不同版本静态页面等)时,可通过随机索引实现负载均衡或流量分散。A/B 测试 通过目录请求自动随机分配用户到不同测试组,无需后端逻辑参与。动态“首页”选…...

go-zero(十八)结合Elasticsearch实现高效数据检索
go-zero结合Elasticsearch实现高效数据检索 1. Elasticsearch简单介绍 Elasticsearch(简称 ES) 是一个基于 Lucene 库 构建的 分布式、开源、实时搜索与分析引擎,采用 Apache 2.0 协议。它支持水平扩展,能高效处理大规模数据的存…...

AM32电调学习解读九:ESC上电启动关闭全流程波形分析
这是第九篇,前面的文章把各个模块的实现都介绍了一轮,本章是从运行的角度结合波形图,把整个流程走一遍。 先看下一运行的配置,我把一些配置关闭了,这样跑起来会好分析一些,不同配置跑起来效果会有差异。使用…...
怎么打包发布到npm?——从零到一的详细指南
怎么打包发布到npm?——从零到一的详细指南 目录 怎么打包发布到npm?——从零到一的详细指南一、准备工作1. 注册 npm 账号2. 安装 Node.js 和 npm 二、初始化项目三、编写你的代码四、配置 package.json五、打包你的项目六、登录 npm七、发布到 npm八、…...
NX二次开发C#---遍历当前工作部件实体并设置颜色
该代码片段展示了如何在Siemens NX软件中使用C#进行自动化操作。通过NXOpen和UFSession API,代码首先获取当前工作部件,并遍历其中的所有实体。对于每个实体,代码检查其类型和子类型是否为“实体”,如果是,则将其颜色设…...
如何用体育数据做分析:从基础统计到AI驱动的决策科学
一、体育数据分析的演进与价值创造 体育数据分析已从简单的比分记录发展为融合统计学、计算机科学和运动科学的交叉学科。现代体育组织通过数据分析可以实现: 竞技表现提升:勇士队利用投篮热图优化战术布置 商业价值挖掘:曼联通过球迷行为数…...
09、底层注解-@Import导入组件
09、底层注解-Import导入组件 Import是Spring框架中的一个注解,用于将组件导入到Spring的应用上下文中。以下是Import注解的详细介绍: #### 基本用法 - **导入配置类** java Configuration public class MainConfig { // 配置内容 } Configuration Impo…...

【notes】VScode 使用总结
文章目录 扩展 c/cwindows7 系统下 c/c 自动升级导致的插件无法正常使用 设置 文件格式设置打开文件的默认格式 扩展 c/c windows7 系统下 c/c 自动升级导致的插件无法正常使用 问题 1. c/c扩展的1.25.x版本不再支持windows7 系统,当设置VScode自动升级拓展插件时…...

【论文阅读】KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS
KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS Scaling的解释: 通过系统性的方法扩展强化学习算法的能力,使其能够处理更复杂的问题、更大的状态/动作空间、更长的训练周期或更高效的资源利用 原文摘要: 研究背景与问题定位 传统预训…...
云服务器开发软件操作步骤
云服务器开发软件的主要步骤。通常,这包括选择云服务提供商、配置服务器环境、开发、测试、部署、维护等阶段。每个阶段都需要详细解释,可能需要分步骤说明。例如,选择云服务提供商时,需要考虑AWS、阿里云、腾讯云等,比…...