Linux云计算训练营笔记day08(MySQL数据库)

news2025/5/20 16:04:12

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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2380088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应

在汽车应用中&#xff0c;轮速传感器可用于车轮速度感应&#xff0c;为 ABS、ESC 等安全系统提供精确的轮速信息&#xff0c;帮助这些系统更好地发挥作用&#xff0c;在紧急制动或车辆出现不稳定状态时&#xff0c;及时调整车轮的制动力或动力分配。 国芯思辰两线制差分式轮速…

小程序弹出层/抽屉封装 (抖音小程序)

最近忙于开发抖音小程序&#xff0c;最想吐槽的就是&#xff0c;既没有适配的UI框架&#xff0c;百度上还找不到关于抖音小程序的案列&#xff0c;我真的很裂开啊&#xff0c;于是我通过大模型封装了一套代码 效果如下 介绍 可以看到 这个弹出层是支持关闭和标题显示的&#xf…

电子电路原理第十六章(负反馈)

1927年8月,年轻的工程师哈罗德布莱克(Harold Black)从纽约斯塔顿岛坐渡轮去上班。为了打发时间,他粗略写下了关于一个新想法的几个方程式。后来又经过反复修改, 布莱克提交了这个创意的专利申请。起初这个全新的创意被认为像“永动机”一样愚蠢可笑,专利申请也遭到拒绝。但…

命令拼接符

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

【通用智能体】Lynx :一款基于终端的纯文本网页浏览器

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

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…

软件架构风格系列(2):面向对象架构

文章目录 引言一、什么是面向对象架构风格1. 定义与核心概念2. 优点与局限性二、业务建模&#xff1a;用对象映射现实世界&#xff08;一&#xff09;核心实体抽象1. 员工体系2. 菜品体系 &#xff08;二&#xff09;封装&#xff1a;隐藏实现细节 三、继承实战&#xff1a;构建…

go-zero(十八)结合Elasticsearch实现高效数据检索

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

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇&#xff0c;前面的文章把各个模块的实现都介绍了一轮&#xff0c;本章是从运行的角度结合波形图&#xff0c;把整个流程走一遍。 先看下一运行的配置&#xff0c;我把一些配置关闭了&#xff0c;这样跑起来会好分析一些&#xff0c;不同配置跑起来效果会有差异。使用…

【notes】VScode 使用总结

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

【论文阅读】KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS

KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS Scaling的解释&#xff1a; 通过系统性的方法扩展强化学习算法的能力&#xff0c;使其能够处理更复杂的问题、更大的状态/动作空间、更长的训练周期或更高效的资源利用 原文摘要&#xff1a; 研究背景与问题定位 传统预训…

Qwen3 - 0.6B与Bert文本分类实验:深度见解与性能剖析

Changelog [25/04/28] 新增Qwen3-0.6B在Ag_news数据集Zero-Shot的效果。新增Qwen3-0.6B线性层分类方法的效果。调整Bert训练参数&#xff08;epoch、eval_steps&#xff09;&#xff0c;以实现更细致的观察&#xff0c;避免严重过拟合的情况。 TODO&#xff1a; 利用Qwen3-0.6…

UWB定位方案在水力发电站人员安全的应用推荐

一、行业应用背景‌ 水力发电站具有‌环境复杂‌&#xff08;金属设备密集、高温高压区域多&#xff09;、‌安全风险高‌&#xff08;人员误入高危区域易引发事故&#xff09;等特点&#xff0c;传统定位技术难以满足精度与可靠性要求。品铂科技基于UWB的高精度定位系统已在多…

无刷直流水泵构成及工作原理详解--【其利天下技术】

无刷直流水泵是相对于有刷直流泵而言的。 一&#xff1a;无刷直流水泵简介 无刷直流水泵即BLDC PUMP&#xff0c;其中“BL”意为“无刷”&#xff0c;DC即直流电机。 无刷直流水泵(BLDC PUMP)以电子换向器取代了机械换向器&#xff0c;所以无刷直流水泵既具有直流电机良好的调…

大数据:新能源汽车宇宙的未来曲率引擎

** 发布日期&#xff1a;2025-05-14** 关键词&#xff1a;大数据、新能源、机器学习、碳中和、CSDN爆款 1. 大数据科普&#xff1a;定义、特征与技术核心 1.1 什么是大数据&#xff1f; 大数据&#xff08;Big Data&#xff09;指规模巨大、类型多样、生成速度快且价值密度低…

【Java ee】关于抓包软件Fiddler Classic的安装与使用

Web Debugging Proxy Tool | Fiddler Classic 安装网站↑ 下载好安装包之后&#xff0c;双击一路next就可以了 一、抓包软件 电脑上安装了抓包软件之后&#xff0c;抓包软件就可以监听你的网卡上通过的数据。 本来是你的客户端通过网卡&#xff0c;把数据发给目标服务器&a…

C++--内存管理

内存管理 1. C/C内存分布 在C语言阶段&#xff0c;常说局部变量存储在栈区&#xff0c;动态内存中的数据存储在堆区&#xff0c;静态变量存储在静态区&#xff08;数据段&#xff09;&#xff0c;常量存储在常量区&#xff08;代码段&#xff09;&#xff0c;其实这里所说的栈…

TC3xx学习笔记-UCB BMHD使用详解(二)

文章目录 前言Confirmation的定义Dual UCB: Confirmation StatesDual UCB: Errored State or ECC Error in the UCB Confirmation CodesECC Error in the UCB ContentDual Password UCB ORIG and COPY Re-programming UCB_BMHDx_ORIG and UCB_BMHDx_COPY (x 0-3)BMHD Protecti…

用Python实现数据库数据自动化导出PDF报告:从MySQL到个性化文档的全流程实践

本文将介绍如何使用Python构建一个自动化工具&#xff0c;实现从MySQL数据库提取员工数据&#xff0c;并为每位员工生成包含定制化表格的PDF报告。通过该方案&#xff0c;可显著提升数据导出效率&#xff0c;避免手动操作误差&#xff0c;同时支持灵活的格式定制。 需求&#…