Mysql数据库-基本表操作
1.表操作
-
创建表:
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
示例:create table users ( id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日' ) character set utf8 engine MyISAM; -
查看表结构:
desc 表名; -
修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,
表的存储引擎等等
示例1:在users表添加一个字段,用于保存图片路径
alter table users add assets varchar(100) comment '图片路径' after birthday;
示例2:修改name,将其长度改成60
alter table users modify name varchar(60);
示例3:删除password列,删除字段及其对应的列数据都没了
alter table users drop password; -
删除表:
drop table t1;
2.增
1.插入数据
表结构如图

单行数据 + 全列插入:INSERT INTO students VALUES (100, 10000, '唐三藏', NULL);
多行数据 + 指定列插入:INSERT INTO students (id, sn, name) VALUES (102, 20001, '曹孟德'), (103, 20002, '孙仲谋');
2.插入冲突:
由于 主键 或者 唯一键 对应的值已经存在而导致插入失败:INSERT INTO students (id, sn, name) VALUES (100, 10010, '唐大师') ON DUPLICATE KEY UPDATE sn = 10010, name = '唐大师';
由于数据冲突,使用ON DUPLICATE KEY UPDATE sn = 10010, name = '唐大师' 更新数据
3.替换
主键 或者 唯一键 没有冲突,则直接插入;
主键 或者 唯一键 如果冲突,则删除后再插入
REPLACE INTO students (sn, name) VALUES (20001, '曹阿瞒');
–将一张表的查询结果插入到另一张表:insert into no_duplicate_table (select distinct*from duplicate_table);

3.删
–删除孙悟空同学的考试成绩:delete from exam_result where name='孙悟空';

–删除整张表数据(慎用):delete from for_delete;
只是删除表中数据,表还在

–截断表(慎用):
- 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
- 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事
物,所以无法回滚 - 会重置 AUTO_INCREMENT 项
TRUNCATE for_truncate;
截断整表数据,注意影响行数是 0,所以实际上没有对数据真正操作
再插入一条数据,自增 id 在重新增长

4.改
–将孙悟空同学的数学成绩变更为 80 分:UPDATE exam_result SET math = 80 WHERE name = '孙悟空';

–将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分:UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';

–将总成绩倒数前三的 3 位同学的数学成绩加上 30 分:UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT 3;

–将所有同学的语文成绩更新为原来的 2 倍:update exam_result set chinese=chinese*2;
5.查
表结构如图

–全列查询:select *from exam_result;

–指定列查询:SELECT id, name, english FROM exam_result;

指定列名不按照表中的顺序来也可以,可自行调整:SELECT name,id, english FROM exam_result;

–查询字段为表达式:SELECT id, name, english + 10 FROM exam_result;
SELECT id, name, chinese + math + english FROM exam_result;

–为查询结果指定别名:select id,name,math+chinese+english as 总分 from exam_result;
as可以省略

– 结果去重:SELECT distinct math FROM exam_result;


带条件查找(WHERE 条件)
比较运算符

=不支持NULL的比较,要比较NULL需要用到<=>、IS NULL、IS NOT NULL
图中两个比较的结果不同

逻辑运算符

–语文成绩在 [80, 90] 分的同学及语文成绩:select name,chinese from exam_result where chinese>=80 and chinese <=90;
或select name,chinese from exam_result where chinese between 80 and 90;


–数学成绩是 78 或者 79 或者 98 或者 99 分的同学及数学成绩:数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
或:select math from exam_result where math in(78,79,98,99);


–查询姓孙的同学 及 孙某同学
(模糊匹配)查询姓孙的同学:select name from exam_result where name like '孙%';
% 匹配任意多个(包括 0 个)任意字符

(严格匹配)查询孙某同学:select name from exam_result where name like '孙_';
_ 匹配严格的一个任意字符

– 语文成绩好于英语成绩的同学:select name ,chinese ,english from exam_result where chinese>english;

–语文成绩 > 80 并且不姓孙的同学:select name ,chinese from exam_result where chinese>80 and name not like '孙%';

– 孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80:select name ,chinese+math+english as 总分 from exam_result where (chinese+math+english>200) and (chinese<math) and (english>80) or name like '孙_';

–查询 qq 号已知的同学姓名:SELECT name, qq FROM students WHERE qq IS NOT NULL;
–查询 qq 号已知的同学姓名:SELECT name, qq FROM students WHERE qq IS NULL;
查询结果排序:
– ASC 为升序(从小到大,默认)
– DESC 为降序(从大到小)
若查询结果不进行排序,则返回的顺序是未定义的
NULL 视为比任何值都小,降序出现在最下面
–查询同学及数学成绩,按数学成绩升序显示:select name,math from exam_result math order by math asc;
–查询同学及数学成绩,按数学成绩降序显示:select name,math from exam_result math order by math desc;

–查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示:select name,math,english,chinese from exam_result order by math desc , english asc , chinese asc; 
–查询同学及总分,由高到低:select name,math+english+chinese as 总分 from exam_result order by 总分 desc;
ORDER BY 子句中可以使用列别名

– 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示:select name,math from exam_result where name like '孙%' or name like '曹%' order by math desc;

筛选分页结果
从 0 开始,筛选 n 条结果:limit n
从 s 开始,筛选 n 条结果:limit s,n
从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用:limit n offset s;
–按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页:select id,name from exam_result order by id limit 3 offset 0;
select id,name from exam_result order by id limit 3 offset 3;
select id,name from exam_result order by id limit 3 offset 6;

–查找总分前三的同学,并降序显示:select id,name,chinese+math+english as 总分 from exam_result order by 总分 desc limit 6 offset 0;
注意:要先排序再分页

相关文章:
Mysql数据库-基本表操作
1.表操作 创建表:CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集ÿ…...
OceanBase社区版单节点安装搭建(Docker)
OceanBase社区版单节点安装搭建(Docker) 文章目录 OceanBase社区版单节点安装搭建(Docker)一、环境检查及Docker配置1.1 安装docker1.2 配置docker镜像源 二、OB镜像下载三、obd部署单节点数据库四、创建业务租户、数据库、表4.1 …...
Unity 关节:铰链、弹簧、固定、物理材质:摩檫力、 特效:拖尾、
组件-物理-关节:铰链(类似门轴) 自动动作、多少力可以将其断开、 弹簧可以连接另一个刚体(拖动即可) 固定一般是等待一个断裂力,造成四分五裂的效果。 物理材质 设置摩檫力,则可以创造冰面的…...
RIPEMD算法:多功能哈希算法的瑰宝
title: RIPEMD算法:多功能哈希算法的瑰宝 date: 2024/3/10 17:31:17 updated: 2024/3/10 17:31:17 tags: RIPEMD起源算法优势安全风险对比SHA优于MD5应用领域工作原理 一、RIPEMD算法的起源与历程 RIPEMD(RACE Integrity Primitives Evaluation Messag…...
如何学习ChatGPT?从入门到精通(附资料下载)
2023 ChatGPT从入门到精通视频教程(共30课).zip 学习ChatGPT需要涉及多个层面,包括理解其基本原理、掌握相关技术、以及进行实际的项目应用。以下是一些具体的学习步骤和建议: 理解ChatGPT的基本原理: 深入了解ChatGP…...
Linux安装MeterSphere并结合内网穿透实现公网远程访问本地服务
文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…...
【 React 】state和props有什么区别?
1. state 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state,一般在constructor中初始化 当需要修改里面的值的状态需要通过调用setState来改变,从而达到更新组件内部数据的作用,并且重新调用组件render方法…...
So you think you understand IP fragmentation?
文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自:https://lwn.net/Articles/960913/ February 7, 2024This article was …...
为什么main方法在Java中代表主线程?
main 方法在 Java 等编程语言中确实代表着程序的入口点,也就是程序开始执行的地方。当我们启动一个 Java 应用程序时,JVM(Java 虚拟机)会首先查找 main 方法,并从那里开始执行程序。 关于为什么 main 方法代表主线程&a…...
腾讯 后端 一面(115min)
> 3.3投递 3.5测评 3.7约面 > 03.07 技术架构团队 一. 面试官介绍部门 二. 自我介绍 三. 拷打项目 1. 为什么、怎么用微服务架构改写 2. token无感刷新 3. ipfs用来干什么 为什么又用了minio 4. 怎么用redis做缓存的,缓…...
Python错题集-8:AttributeError(找不到对应的对象的属性)
1问题描述 AttributeError: AxesSubplot object has no attribute arc 2代码详情 import matplotlib.pyplot as plt# 创建一个新的图形和坐标轴 fig, ax plt.subplots()# 定义弧线的参数 center (0.5, 0.5) # 圆心坐标 (x, y) width 1.0 # 半径 height 0.5 # 半径 ang…...
针对娃哈哈和农夫山泉,AI是如何看待的
娃哈哈和农夫山泉事件是中国饮料行业的两个重要事件。娃哈哈和农夫山泉都是中国知名的饮料品牌,两者之间的竞争一直存在。以下是对这两个事件的介绍: 1. 娃哈哈事件:娃哈哈是中国最大的饮料生产企业之一,也是中国最具影响力的品牌…...
Linux篇面试题 2024
目录 Java全技术栈面试题合集地址Linux篇1.绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?2.怎么查看当前进程?怎么执行退出?怎么查看当前路径?3.怎么清屏&…...
Vue 监听器:让你的应用实时响应变化
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
复制表
目录 复制表 将部门 30 的所有员工信息保存在 emp30 表中 将复杂查询结果创建为表 只将 emp 表的结构复制为 empnull 表 从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 复制表 严格来说,复制表不是复制操作&am…...
Kafka 面试题及答案整理,最新面试题
Kafka中的Producer API是如何工作的? Kafka中的Producer API允许应用程序发布一流的数据到一个或多个Kafka主题。它的工作原理包括: 1、创建Producer实例: 通过配置Producer的各种属性(如服务器地址、序列化方式等)来…...
qt带后缀单位的QLineEdit
QLineEditUnit.h #pragma once #include <QLineEdit> #include <QPushButton>class QLineEditUnit : public QLineEdit {Q_OBJECT public:QLineEditUnit(QWidget* parent Q_NULLPTR);~QLineEditUnit();//获取编辑框单位QString UnitText()const;//设置编辑框单位…...
堆宝塔(Python)
作者 陈越 单位 浙江大学 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下: 首先准备两根柱子,一根 A 柱串宝塔,一根 B 柱用于…...
采用 Amazon DocumentDB 和 Amazon Bedrock 上的 Claude 3 构建游戏行业产品推荐
前言 大语言模型(LLM)自面世以来即展示了其创新能力,但 LLM 面临着幻觉等挑战。如何通过整合外部数据库的知识,检索增强生成(RAG)已成为通用和可行的解决方案。这提高了模型的准确性和可信度,特…...
论文阅读:Diffusion Model-Based Image Editing: A Survey
Diffusion Model-Based Image Editing: A Survey 论文链接 GitHub仓库 摘要 这篇文章是一篇基于扩散模型(Diffusion Model)的图片编辑(image editing)方法综述。作者从多个方面对当前的方法进行分类和分析,包括学习…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
