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;
注意:要先排序再分页
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python学习笔记------集合(set)

集合定义格式 基本语法&#xff1a; #定义集合字面量 {元素&#xff0c;元素&#xff0c;元素......&#xff0c;元素} #定义集合变量 变量名称{元素&#xff0c;元素&#xff0c;元素......&#xff0c;元素} #定义空集合 变量名称set() #定义集合字面量 {元素&#…

【AI辅助研发】-趋势:大势已来,行业变革

【AI辅助研发】-趋势&#xff1a;大势已来&#xff0c;行业变革 引言 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术已逐渐渗透到各行各业&#xff0c;其中软件研发行业更是受益匪浅。AI辅助研发已成为大势所趋&#xff0c;不仅提高了软件开发的效…

登录凭证------

为什么需要登录凭证&#xff1f; web开发中&#xff0c;我们使用的协议http是无状态协议&#xff0c;http每次请求都是一个单独的请求&#xff0c;和之前的请求没有关系&#xff0c;服务器就不知道上一步你做了什么操作&#xff0c;我们需要一个办法证明我没登录过 制作登录凭…

免费无水印视频素材哪里下载?这几个地方您要知道

哟哟&#xff0c;切克闹&#xff0c;视频剪辑达人们&#xff0c;是不是在视频素材的海洋里迷航了&#xff1f;别着急&#xff0c;今天我就给大家分享几个超实用的无水印短视频素材合集网&#xff0c;让你的创作更加得心应手&#xff0c;从此素材不再是你的烦恼 1&#xff0c;蛙…

鸿蒙原生应用元服务开发-WebGL网页图形库开发概述

WebGL的全称为Web Graphic Library(网页图形库)&#xff0c;主要用于交互式渲染2D图形和3D图形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES&#xff0c;可以在HTML5的canvas元素对象中使用&#xff0c;无需使用插件&#xff0c;支持跨平台。WebGL程序是由JavaScr…

Hudi入门

一、Hudi编译安装 1.下载 https://archive.apache.org/dist/hudi/0.9.0/hudi-0.9.0.src.tgz2.maven编译 mvn clean install -DskipTests -Dscala2.12 -Dspark33.配置spark与hudi依赖包 [rootmaster hudi-spark-jars]# ll total 37876 -rw-r--r-- 1 root root 38615211 Oct …

【Python从入门到进阶】50、当当网Scrapy项目实战(三)

接上篇《49、当当网Scrapy项目实战&#xff08;二&#xff09;》 上一篇我们讲解了的Spider与item之间的关系&#xff0c;以及如何使用item&#xff0c;以及使用pipelines管道进行数据下载的操作&#xff0c;本篇我们来讲解Scrapy的多页面下载如何实现。 一、多页面下载原理分…

【Leetcode每日一刷】滑动窗口:209.长度最小的子数组

一、209.长度最小的子数组 1.1&#xff1a;题目 题目链接 1.2&#xff1a;解题思路 题型&#xff1a;滑动窗口&#xff1b;时间复杂度&#xff1a;O(n) &#x1faa7; 滑动窗口本质也是双指针的一种技巧&#xff0c;特别适用于字串问题 ❗❗核心思想/ 关键&#xff1a;左右…

A5自媒体wordpress主题模板

一个简洁的wordpress个人博客主题&#xff0c;适合做个人博客&#xff0c;SEO优化效果挺不错的。 https://www.wpniu.com/themes/204.html

前端学习之行内和块级标签

行内标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>span</title> </head> <body><!-- 行内标签特点&#xff1a;1、不换行,一行可以放多个2、默认宽度内容撑开代表&#…

谈谈我的自媒体创作真实感悟

因为我有数十款APP和小程序&#xff0c;基本都是些辅助内容创作的工具&#xff0c;于是我就顺水推舟做了几个自媒体账号&#xff1a;微信公众号&#xff0c;抖音&#xff0c;知乎&#xff0c;小红书&#xff0c;CSDN等&#xff0c;账号的名字都是全赞工程师。 目前这些号有收入…

分享一些实用性的大语言模型(GitHub篇)

1.多模态大模型 GitHub网址&#xff1a;haotian-liu/LLaVA&#xff1a;[NeurIPS23 Oral] 视觉指令调优 &#xff08;LLaVA&#xff09; 构建&#xff0c;旨在实现 GPT-4V 级别及以上的能力。 (github.com) 下面是LLaVA模型的介绍&#xff0c;作者都有一直维护和更新&#xff0c…

CSS居中对齐 (垂直居中)

内部块级元素的高度要小于容器(父元素) 方案一&#xff1a;行高 容器高度&#xff08;单行内联元素&#xff09; 限制条件&#xff1a;仅用于单行内联元素 display:inline 和 display: inline-block; 给容器添加样式 height: 100px;line-height: 100px;<!DOCTYPE html>…

TimescaleDB 开源时序数据库

文章目录 1.TimescaleDB介绍2.Hypertable 和 chunk3.Hypertable4.Hypertable操作 开源中间件 # TimescaleDBhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/timescale/timescale-summary/1.TimescaleDB介绍 TimescaleDB是基于PostgreSQL数据…

MATH数据集分享

来源: AINLPer公众号&#xff08;每日干货分享&#xff01;&#xff01;&#xff09; 编辑: ShuYini 校稿: ShuYini 时间: 2024-3-10 很多创新性的研究都可能会遇到数学问题&#xff0c;但是这项技能对于计算机来说仍然是个不小的挑战。为了衡量模型在解决数学问题上的表现。UC…

C++11的简单介绍(上)

1.C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞进行修复&#xff0c;语言的核心部分则没有改动&#xff0c;因此人们习惯性的把两个标准合并…

Go语言必知必会100问题-20 切片操作实战

前言 有很多gopher将切片的length和capacity混淆&#xff0c;没有彻底理清这两者的区别和联系。理清楚切片的长度和容量这两者的关系&#xff0c;有助于我们合理的对切片进行初始化、通过append追加元素以及进行复制等操作。如果没有深入理解它们&#xff0c;缺少高效操作切片…

一文彻底搞懂MyISAM和InnoDB区别

文章目录 1. 是否支持行级锁2. 是否支持事务3. 是否支持外键4. 是否支持数据库异常崩溃后的安全恢复5. 是否支持 MVCC6. 索引实现7. 常见的几种 MySQL 存储引擎对比 MySQL 5.5版本之前&#xff0c;MyISAM引擎是MySQL的默认存储引擎&#xff0c;拥有全文索引、压缩和空间函数等特…

力扣——合并k个升序链表

文章目录 题目解析题目链接题目解析 算法讲解暴力解法利用优先级队列进行优化 代码解析 题目解析 题目链接 首先先把题目连接给大家奉上题目链接 题目解析 严格来说这个题目是非常容易理解的相信大家有了合并两个升序链表来理解这个题目就会非常容易理解了。这个题目的意思就…

LeetCode 654.最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树…