Mysql数据库-基本表操作

1.表操作

  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;

  2. 查看表结构:desc 表名;

  3. 修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,
    表的存储引擎等等
    示例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;

  4. 删除表: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;
只是删除表中数据,表还在
在这里插入图片描述
–截断表(慎用):

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事
    物,所以无法回滚
  3. 会重置 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 '孙_';
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de7aba7ec22548c184ab2b06ff2828d8.png
–查询 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;
注意:要先排序再分页
在这里插入图片描述

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

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

相关文章

深入解读 Elasticsearch 磁盘水位设置

本文将带你通过查看 Elasticsearch 源码来了解磁盘使用阈值在达到每个阶段的处理情况。 跳转文章末尾获取答案 环境 本文使用 Macos 系统测试&#xff0c;512M 的磁盘&#xff0c;目前剩余空间还有 60G 左右&#xff0c;所以按照 Elasticsearch 的设定&#xff0c;ES 中分片应…

CatBoost高级教程:分布式训练与大规模数据处理

导言 CatBoost是一种高效的梯度提升算法&#xff0c;可以处理大规模数据集并支持分布式训练。在实际应用中&#xff0c;处理大规模数据集时&#xff0c;分布式训练可以大大加快模型训练的速度&#xff0c;并提高训练效果。本教程将详细介绍如何在Python中使用CatBoost进行分布…

解决 cx-programmer 梯形图中繁体中文乱码问题

我的情况 cx-programmer9.5是繁体版&#xff0c;梯形图编辑区中打出的字体&#xff0c;简体繁体 都是乱码。 但是状态栏显示注解是正常的繁体。 原因 简体和繁体的编码不一样。繁体的BIG5和简体的GB2312不能互转&#xff0c;A编码的用B解码也是乱码。 解决 把系统字体调整为繁…

picGo 图床配置 - gitee

记录一下&#xff0c;怕忘记了 PicGo 下载安装 官网下载地址 从下面随意复制一个链接到浏览器上打开 我下载的是.exe版本的&#xff0c;你可以选择自己想安装的方式 安装完之后打开就是这个样子 配置PicGo 首先安装这个插件 安装完之后会有一个gitee&#xff0c;点击&#xff…

Java性能优化秘籍:内存管理、垃圾回收与性能调优

Java性能优化&#xff1a;内存管理、垃圾回收和性能调优 作为一名软件研发专家&#xff0c;深入理解Java性能优化的重要性不言而喻。本文将围绕Java性能优化的核心主题——内存管理、垃圾回收和性能调优&#xff0c;与大家分享一些实用的技巧和案例。 1. 内存管理 内存管理是…

STM32CubeMX学习笔记18——FSMC(TFT-LCD屏触摸)

1.触摸屏简介 目前最常用的触摸屏有两种&#xff1a;电阻式触摸屏和电容式触摸屏 1.1 电阻式触摸屏 电阻式的触摸屏结构如下图示&#xff0c;它主要由表面硬涂层、两个ITO层、间隔点以及玻璃底层构成&#xff0c;这些结构层都是透明的&#xff0c;整个触摸屏覆盖在液晶面板上…

集合框架(一)Set系列集合

Set<E>是一个接口 特点 无序&#xff1a;添加数据的顺序和获取出的数据顺序不一致&#xff1b;不重复&#xff0c;无索引 注意&#xff1a;Set要用到的常用方法&#xff0c;基本上就是collection提供的!自己几乎没有额外新增一些常用功能! HashSet集合的底层原理 前置知…

[Mac软件]VMware Fusion Pro for Mac 13.5.1 Build 23298085 VM虚拟机中文版

黑果魏叔网站VMware Fusion Pro – 无需重启即可在 Mac 上运行 Windows、Linux 和其他系统的虚拟化软件。最新版本完全支持 Windows 10、macOS Mojave 和最新的 Mac&#xff0c;包括 18 核 iMac Pro 和配备 6 核 Intel i9 CPU 的 MacBook Pro。VMware Fusion 支持 DirectX 10.1…

Mybatis 如何引用其他文件中的sql 片段

假设: 有一些通用的sql,在整个项目中都有可能使用的到, 但是我不太想定义java接口,结合着java逻辑来实现功能, 又或者,在每一处的mapper.xml内都定义sql片段, 那么如果需要调整sql,我就需要调整好多处相同的代码. 如何后期维护方便,使用起来又简单呢? 想法: 单独创建一个mapp…

RocketMQ学习笔记二

课程来源&#xff1a;马士兵教育官网 - IT职业领路人 马士兵初级版&#xff08;4.5h&#xff09; 本课程讲解的是RocketMQ4.8版本。 消息中间件的使用场景&#xff1f; 异步与解耦&#xff1b;流量削峰&#xff1b;数据分发。 RocketMQ的角色 RocketMQ的基本概念 RocketMQ…

微服务篇-B 深入理解SOA框架(Dubbo)_I 服务注册和发现(学习总结)

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;转载请注明原作者&#xff0c;严禁复制转载 Part 1 理论部分 1 什么是Dubbo? Dubbo是一个面向服务设计的SOA框架&#xff0c;提供了高性能、透明化的RPC远程服务调用的能力、出色的S…

denied: requested access to the resource is denied报错解决

Docker 镜像在文件中包含一组指令&#xff0c;可在 Docker 容器中执行代码。大多数情况下&#xff0c;在创建 docker 镜像之后&#xff0c;当尝试将镜像推送到远程仓库时&#xff0c;会发生这种类型的报错“Docker denied: requested access to the resource is denied” 由于错…

RabbitMQ - 07 - 通过注解创建队列和交换机

之前消息模型的实现,都是通过rabbitMQ Management 控制台来手动创建 queue 和 exchange 的 在项目开发中有两种方式通过代码声明 创建 一种是通过 Bean 方式,这种代码量较大 稍繁琐 一种是通过注解的方式声明 先编写消费者代码 通过注解绑定了 消息队列,交换机,还有 routin…

零售EDI:劳氏 Lowe‘s EDI项目案例

通过 EDI&#xff0c;企业与Lowes之间可以直接交换各种商业文档&#xff0c;如订单、发票、收据等&#xff0c;从而实现信息的实时交换&#xff0c;提高了供应链的效率和准确性。在现代供应链管理中&#xff0c;EDI 已经成为了不可或缺的重要工具。 作为一家拥有多条业务线的企…

SpringCloudFeign远程调用

文章目录 1. Feign 是什么2. Feign 的使用2.1 引入依赖2.2 写接口2.3 服务调用方2.4 启动测试 3. Feign 日志配置4. Feign 使用优化5. 注意包扫描问题6. 注意的问题6.1 参数问题6.2 Feign 自动装配 1. Feign 是什么 Feign 是一个声明式、模板化的 HTTP 客户端&#xff0c;它是…

Intel® Extension for PyTorch*详细安装教程

最近在研究Intel的pytorch的加速拓展Intel Extension for PyTorch*,但是发现官网的文档全是英文的&#xff0c;不太好找安装教程。所以特此分享Intel Extension for PyTorch*的详细安装教程。 文章目录 一、安装所需系统要求1.1 硬件需求1.2 软件需求 二、准备2.1 安装驱动程序…

Linux 进程程序替换

&#x1f493;博主CSDN主页:麻辣韭菜-CSDN博客&#x1f493;   ⏩专栏分类&#xff1a;http://t.csdnimg.cn/G90eI⏪   &#x1f69a;代码仓库:Linux: Linux日常代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d;&#x1f5…

[leetcode] 946. 验证栈序列

题目描述 给定 pushed 和 popped 两个序列&#xff0c;每个序列中的 值都不重复&#xff0c;只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入 pushed […

力扣530. 二叉搜索树的最小绝对差

思路1&#xff1a;中序遍历&#xff0c;递归排序成有序数组&#xff1b;因为是有序&#xff0c;只需要求相邻两个值的最小差值。 class Solution {ArrayList <Integer> list new ArrayList();int ans 100001;//题目最大 100000public int getMinimumDifference(TreeNo…

动态规划|【路径问题】|174.地下城游戏

题目 174. 地下城游戏 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健…