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;

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

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

相关文章

致远OA人事标准模块功能简介【附应用包百度网盘下载地址,官方售价4W】

人事管理应用&#xff0c;围绕岗位配置、招聘管理、员工档案、入转调离、员工自助申报、数据信息管理等人力资源管理关键业务&#xff0c;构建全员可参与的人事工作协同平台&#xff0c;让人事从繁杂琐碎的事务中解脱出来&#xff0c;高质高效工作&#xff0c;让管理层清楚掌握…

数字孪生工厂实战指南:基于Unreal Engine/Omniverse的虚实同步系统开发

引言&#xff1a;工业元宇宙的基石技术 在智能制造2025与工业元宇宙的交汇点&#xff0c;数字孪生技术正重塑传统制造业。本文将手把手指导您构建基于Unreal Engine 5.4与NVIDIA Omniverse的实时数字孪生工厂系统&#xff0c;集成Kafka实现毫秒级虚实同步&#xff0c;最终交付…

【向量模型 + HNSW 参数如何选择】

目录 一、embedding_function&#xff08;向量模型&#xff09; 可选方式 选型建议 二、HNSW 参数选择&#xff08;核心影响搜索速度与准确率&#xff09; 2.1 参数解释和推荐值 2.2 配置模板参考 1、推荐默认配置&#xff08;适合大多数项目&#xff09;&#xff1a; 2…

fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 安装 license申请

启动 注册账号&#xff1a;https://login.microchip.com/申请免费许可&#xff1a;https://www.microchipdirect.com/fpga-software-products C:\Windows\System32>vol驱动器 C 中的卷是 Windows卷的序列号是 ****-****为“D:\Microsemi\License.dat”创建环境变量“LM_LICE…

【C++】解析C++面向对象三要素:封装、继承与多态实现机制

解析C面向对象三要素&#xff1a;封装、继承与多态实现机制 1. 面向对象设计基石2. 封装&#xff1a;数据守卫者2.1 访问控制实现2.2 封装优势 3. 继承&#xff1a;代码复用艺术3.1 继承的核心作用3.2 继承类型对比3.3 典型应用场景3.4 构造函数与析构函数处理3.4.1 构造顺序控…

Python并发编程:开启性能优化的大门(7/10)

1.引言 在当今数字化时代&#xff0c;Python 已成为编程领域中一颗璀璨的明星&#xff0c;占据着编程语言排行榜的榜首。无论是数据科学、人工智能&#xff0c;还是 Web 开发、自动化脚本编写&#xff0c;Python 都以其简洁的语法、丰富的库和强大的功能&#xff0c;赢得了广大…

数学复习笔记 10

前言 我觉得数学的高分乃至满分属于那些&#xff0c;聪明&#xff0c;坚韧&#xff0c;勇敢&#xff0c;细致的人。我非常惭愧自己不是这样的人&#xff0c;我在生活中发现了这样的同学&#xff0c;和他们交流的时候我常常感到汗流浃背&#xff0c;因为他们非常扎实的基础知识…

深入理解 Webpack 核心机制与编译流程

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&#…

概率相关问题

问题汇总 1. 贝叶斯定理&#xff08;贝叶斯公式和全概率公式&#xff09;2. 概率题2.1 随机发生器的概率为1/2 1. 贝叶斯定理&#xff08;贝叶斯公式和全概率公式&#xff09; 定义&#xff1a;在信息和条件有限的情况下&#xff0c;基于过去的数据&#xff0c;通过动态调整的…

【系统架构师】2025论文《WEB系统性能优化技术》

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文分享【系统架构师】2025论文《系统可靠性设计》&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 项目介绍背景介绍系统模块技术栈性能…

ADS1220高精度ADC(TI)——应用 源码

文章目录 德州仪器ADS1220概述资料引脚&封装布线寄存器配置寄存器0&#xff08;00h&#xff09;配置寄存器1&#xff08;01h&#xff09;配置寄存器2&#xff08;02h&#xff09;配置寄存器3&#xff08;03h&#xff09; 连续转换流程驱动源码ads1220.cads1220.h 德州仪器A…

Uniapp 安卓实现讯飞语音听写(复制即用)

在移动应用开发中&#xff0c;语音交互功能能够极大提升用户体验&#xff0c;让操作更加便捷自然。讯飞语音听写技术凭借其高准确率和稳定性&#xff0c;成为众多开发者的选择。本文将详细介绍如何在 Uniapp 项目中&#xff0c;实现安卓端的讯飞语音听写功能&#xff0c;帮助你…

【golang】DNS 资源记录(RR)接口

Go 中 miekg/dns 包对 DNS 资源记录&#xff08;RR&#xff09;接口 的定义&#xff1a; type RR interface {Header() *RR_HeaderString() stringcopy() RRlen(off int, compression map[string]struct{}) intpack(...)unpack(...)parse(...)isDuplicate(r2 RR) bool }这个接…

16.2 VDMA视频转发实验之模拟源

文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项3.3 自定义IP核源码 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1&#xff0c;相较于16.1&#xff0c;使用自定义IP核vid_gen_motion替换Xilinx TPG IP核。 2 系统框图 基于14…

深度学习之用CelebA_Spoof数据集搭建一个活体检测-训练好的模型用MNN来推理

一、模型转换准备 首先确保已完成PyTorch到ONNX的转换&#xff1a;深度学习之用CelebA_Spoof数据集搭建活体检测系统&#xff1a;模型验证与测试。这里有将PyTorch到ONNX格式的模型转换。 二、ONNX转MNN 使用MNN转换工具进行格式转换&#xff1a;具体的编译过程可以参考MNN的…

JVM学习专题(一)类加载器与双亲委派

目录 1、JVM加载运行全过程梳理 2、JVM Hotspot底层 3、war包、jar包如何加载 4、类加载器 我们来查看一下getLauncher&#xff1a; 1.我们先查看getExtClassLoader() 2、再来看看getAppClassLoader(extcl) 5、双亲委派机制 1.职责明确&#xff0c;路径隔离​&#xff…

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库&#xff08;版本高的系统无需做&#xff09;vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…

使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别

使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别 动机 任务适配需求 Qwen2.5-VL在视觉理解方面表现优异&#xff0c;但电气主接线图识别需要特定领域的结构化输出能力&#xff08;如设备参数提取、拓扑关系解析&#xff09;。微调可增强模型对专业符号&#xff08;如…

系统集成项目管理工程师学习笔记

第九章 项目管理概论 1、项目基本要素 项目基础 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目具有临时性、独特性、渐进明细的特点。项目的“临时性”是指项目只有明确的起点和终点。“临时性”并一定意味着项目的持续时间短。 项目可宣告结束的情况&…

Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)

好的&#xff0c;那我们现在进入&#xff1a; 第七讲&#xff1a;掉电重连后&#xff0c;为什么设备不再上报事件&#xff1f;——持久化与自动恢复的系统设计 关键词&#xff1a;掉电恢复、状态重建、初始化流程、SecsMessage 缓存机制、自动重连、事件再注册 本讲目标 你将理…