MySQL数据库增删改查

news2024/10/3 8:23:30

删除表

drop table 表名;
drop table if exists 表名;

修改表

修改表名

alter table 表名 rename to 新表名;

image-20230914161657093

添加列

alter table 表名 add 列名 数据类型;

删除列

alter table 表名 drop 列名;

修改数据类型

alter table 表名 modify 列名 新数据类型;

修改列名和数据类型

alter table 表名 change 列名 新列名 新数据类型;

图形化客户端工具

Navicat

给指定列添加数据

 insert into 表名(列名1,列名2...) values(值1,值2...);

image-20230914164508259

给所有列添加数据时,依然可以用上面的格式,如下

INSERT into stu(id,name,sex,birthday,score,email,tel,status) value(2,'李四','男','1999-1-1',88.88,'lisi@163.com','13888888888',1);

但给所有列添加数据可以简化,把列名删去,减少代码量

 insert into 表名 values(值1,值2...);
 
 INSERT into stu value(2,'李四','男','1999-1-1',88.88,'lisi@163.com','13888888888',1);

image-20230914165805570

美化SQL

image-20230914170041525

点击后:
image-20230914170117525

批量添加,仅需把括号和里面的内容多复制几遍,并且加上逗号,然后运行即可,例如:

INSERT INTO stu (
	id,
	NAME,
	sex,
	birthday,
	score,
	email,
	tel,
	STATUS
)
VALUE
	(
		2,
		'李四',
		'男',
		'1999-1-1',
		88.88,
		'lisi@163.com',
		'13888888888',
		1
	),(		-- 先加逗号,然后复制一遍,分号只需要在最后就好
		2,
		'李四',
		'男',
		'1999-1-1',
		88.88,
		'lisi@163.com',
		'13888888888',
		1
	),(		-- 先加逗号,然后复制一遍
		2,
		'李四',
		'男',
		'1999-1-1',
		88.88,
		'lisi@163.com',
		'13888888888',
		1
	),(		-- 先加逗号,然后复制一遍
		2,
		'李四',
		'男',
		'1999-1-1',
		88.88,
		'lisi@163.com',
		'13888888888',
		1
	);		-- 分号默认在最后

image-20230914170520034
修改数据

update 表名 set 列名1=值1,列名2=值2,...[where 条件]

例如修改张三的性别生日和分数

注意:如果update语句没有加where条件,则会将表中所有数据全部修改!
image-20230914211616593
image-20230914211627517
删除数据

删除DELETE EROM 表名 [WHERE 条件] ;

示例:使用该语句后,筛选删除name为张三的列

image-20230914212228267
注意此处的条件语句,如果没有条件语句,所有数据都会被删除

DQL数据库查询

首先提前做好一个学生表,下面的代码全部复制到navicat 然后点击运行即可


-- 删除stu表
drop table if exists stu;


-- 创建stu表
CREATE TABLE stu (
 id int, -- 编号
 name varchar(20), -- 姓名
 age int, -- 年龄
 sex varchar(5), -- 性别
 address varchar(100), -- 地址
 math double(5,2), -- 数学成绩
 english double(5,2), -- 英语成绩
 hire_date date -- 入学时间
);

-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date) 
VALUES 
(1,'马运',55,'男','杭州',66,78,'1995-09-01'),
(2,'马花疼',45,'女','深圳',98,87,'1998-09-01'),
(3,'马斯克',55,'男','香港',56,77,'1999-09-02'),
(4,'柳白',20,'女','湖南',76,65,'1997-09-05'),
(5,'柳青',20,'男','湖南',86,NULL,'1998-09-01'),
(6,'刘德花',57,'男','香港',99,99,'1998-09-01'),
(7,'张学右',22,'女','香港',99,99,'1998-09-01'),
(8,'德玛西亚',18,'男','南京',56,65,'1994-09-02');

select * from stu;

基础查询

查询name age 两列

select name,age from stu;

image-20230914213313344

上文我们已经使用过下面的代码,用*星号查询全部数据

(但日后不建议使用,公司里代码规范不允许这样使用,在美化SQL代码后,*无法加注释,而且别人无法得知你查的全部数据到底是哪几项,所有建议还是把列名全部写出来)

select * from stu;

当我们需要了解某一数据分布时,可能会遇到重复数据,例如了解所有学生的所在地

这时候我们就要把重复数据筛选,去除重复记录

使用distinct关键字

select DISTINCT address from stu;

image-20230914213831770
别名 as

在不改变列名的情况下,给它取一个小名,例如代码中使用英文,表中math为数学成绩,我们就可以将代码改成如下进行查询

使用别名前
image-20230914214026248
使用别名后
image-20230914214351331
image-20230914214509166

(as可以不用写,但要和列名至少保留一个空格隔开)

select name,math as 数学成绩,english as 英语成绩 from stu;
select name,math 数学成绩,english 英语成绩 from stu;

条件查询

1.筛选出年龄大于二十的人

select name,age,sex from stu where age>20;

image-20230914215021369

2.筛选年龄在20到30之间的人

select name,age,sex from stu where age>=20 && age<=30;
-- 或者使用and代替&&
select name,age,sex from stu where age>=20 and age<=30;
-- 再或者划定范围用between and,英文翻译就是在什么之内
select name,age,sex from stu where age between 20 and 30;

3.虽然日期是字符,但筛选日期也可以使用这种区间法

select name,age,sex from stu where hire_date between '1998-09-01' and '1999-09-01';

image-20230914220004813

4.查询年龄等于18的学员

select * from stu where age = 18;

5.查询年龄不等于18的学员(两种用法)

select * from stu where age != 18;
select * from stu where age <> 18;

6.查询年龄等于18,或者年龄等于20,或者年龄等于22的学员

查询多个条件,可以使用 || 或者 or(推荐使用)

select * from stu where age = 18 or age = 20 or age = 22;

image-20230914220607461
还可以使用类似与数组的方法,在这里面的就查询

select * from stu where age in (18,20,22);

7.查询英语成绩为null的成员

null值的比较不能使用 = != ,要使用is is not

-- 错误写法
select * from stu where english = null;
-- 正确写法
select * from stu where english is null;

模糊查询

like

通配符 _:代表单个任意字符 %:代表任意个数字符

示例:

1.查询姓’马’的学员信息

select * from stu where name like '马%';

2.查询第二个字是‘花’的学员信息

select * from stu where name like '_花%';

3.查询名字中包含,德’的学员信息(最常用的查询)

select * from stu where name like '%得%';

条件查询

排序查询

ASC升序排列 DESC降序排列

1.查询学生信息,按照年龄升序排列(ASC可以不写,为默认值)

select * from stu order by age asc;

2.查询学生信息,按照数学成绩降序排排列

select * from stu order by math desc;

image-20230915192256153

3.查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

select * from stu order by math desc, english asc;

image-20230915192409329

分组查询

聚合函数

将一列数据作为一个整体,进行纵向计算,例如计算所有人分数的平均值

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值
-- 语法
select 聚合函数 from 表;

null值不参与所有聚合函数运算,所有统计这些值时,null不会被作为最小值显示出来

SELECT 字段列表 FROM 表名[WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

1.查询男同学和女同学各自的数学平均分

select sex,avg(math) from stu group by sex;

2.查询男同学和女同学各自的数学平均分,以及各自人数

select sex,avg(math),count(*) from stu group by sex;

3.查询男同学和女同学各自的数学平均分,以及各自人数,要求: 分数低于70分的不参与分组

select sex,avg(math),count(*) from stu where math>70 group by sex;

4.查询男同学和女同学各自的数学平均分,以及各自人数,要求: 分数低于70分的不参与分组,分组之后人数大于

select sex,avg(math),count(*) from stu where math>70 group by sex having count(*)>2;

image-20230915195240100

分页查询

1.从0开始查询,查询3条数据

select * from stu limit 0 , 3: 

2,每页显示3条数据,查询第1页数据

select * from stu limit 0 3;

3。每页显示3条数据,查询第2页数据

select * from stu limit 3 .3;

4.每页显示3条数据,查询第3页数据

select * from stu limit 6 , 3;

每页的开始索引计算:

(页码-1)*每页显示的条数

l
select sex,avg(math),count() from stu where math>70 group by sex having count()>2;


[外链图片转存中...(img-roXriq3j-1694780321837)]

### 分页查询

1.从0开始查询,查询3条数据

```mysql
select * from stu limit 0 , 3: 

2,每页显示3条数据,查询第1页数据

select * from stu limit 0 3;

3。每页显示3条数据,查询第2页数据

select * from stu limit 3 .3;

4.每页显示3条数据,查询第3页数据

select * from stu limit 6 , 3;

每页的开始索引计算:

(页码-1)*每页显示的条数

例如:每页显示15条,第十一页的开始索引就是(11-1)*15=150,第一条的序号就是150

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

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

相关文章

WorkPlus专注私有化部署,为企业安全打造超级沟通协作APP

在如今全球化竞争和高速发展的商业环境中&#xff0c;企业内部的沟通和协作至关重要。面对众多的通讯和协作平台&#xff0c;WorkPlus独辟蹊径&#xff0c;专注私有化部署&#xff0c;致力于为企业打造安全专属、自主可控的超级沟通协作APP。正是这一专注与创新&#xff0c;让W…

发表《Nature》!哈佛大学团队成功研发自纠错量子计算机

&#xff08;图片来源&#xff1a;网络&#xff09; 量子计算机能达到当今最快的超级计算机也无法达到的速度和效率。然而&#xff0c;该技术尚未大规模推广和商业化&#xff0c;很大程度上是因为它无法自我纠错。与经典计算机不同&#xff0c;量子计算机无法通过一遍又一遍地…

双赢!企业咨询行业和低代码工具的破局之路

对于传统咨询企业来说&#xff0c;主要专注于流程和功能方面的咨询&#xff0c;在信息化时代中&#xff0c;以流程和业务驱动的模式为基础进行战略咨询、管理咨询和业务咨询&#xff0c;作为传统企业的外脑&#xff0c;在大数据时代&#xff0c;咨询行业在数智化时代如何应对自…

发表《数学》期刊!西班牙研究人员成功应用量子计算模型来预测多种疾病

Jos Luis Salmern 将量子计算应用于医疗保健领域&#xff08;图片来源&#xff1a;网络&#xff09; 谷歌量子人工智能&#xff08;AI&#xff09;研究小组的Sergio Boixo表示&#xff0c;量子计算还处于起步阶段&#xff0c;虽然很难预测其未来&#xff0c;但该技术已取得了一…

lvs+keepalived: 高可用集群

lvskeepalived: 高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用&#xff0c;于是keepalived软件。实现的是调度器的高可用。 但是&#xff1a;keepalived不是专门为集群服务的&#xff0c;也可以做其他服务器的高可用。 lvs的高可用集群&#xf…

第九章 无线网络和移动网络 | 计算机网络(谢希仁 第八版)

文章目录 第九章 无线网络和移动网络9.1 无线局域网WLAN9.1.1 无线局域网的组成9.1.2 802.11局域网的物理层9.1.3 802.11局域网的MAC层协议9.1.4 802.11局域网的MAC帧 9.2 无线个人区域网WPAN9.3 无线城域网WMAN9.4 蜂窝移动通信网9.4.1 蜂窝无线通信技术简介9.4.2 移动IP9.4.3…

1. 概述

1.概述 1.1 信息时代的计算机网络 1.1.1 计算机网络的各类应用 1.1.2 计算机网络带来的负面问题 1.2 因特网概述 1.2.1 网络、互联网与因特网的区别与关系 若干个节点&#xff08;Node&#xff09;和链路&#xff08;Link&#xff09;互连形成了网络&#xff08;Network&…

Flask后端开发(一)-基础知识和前期准备

目录 1.背景介绍1.1. 项目背景1.2. 项目难点1.3. 项目环境 2. flask后端开发实现的功能3. flask部署和前后端对接3.1. flask运行配置和服务器部署3.2. flask前后端传参 4. 后端测试工具4.1. 工具介绍4.2. 工具使用 后记 1.背景介绍 1.1. 项目背景 就是前几个月临时接手了一个…

Linux基础命令4——Linux快捷键与帮助命令

目录 Linux快捷键 Linux常用帮助命令 help命令——只适用于于内置命令 --help命令——只适用于外置命令 内外部都可使用的帮助命令 man命令 info命令 Linux快捷键 ctrlshift加号 放大屏幕 ctrl减号 缩小屏幕 ctrl l …

28、Flink 的SQL之DROP 、ALTER 、INSERT 、ANALYZE 语句

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

中国技术的对外输出:Telegram也开始搞小程序应用了

Telegram 宣布为其开发者提供了一项“能够在其中运行迷你应用”的新功能&#xff08; 迷你应用即 Mini App&#xff0c;下文中以“小程序”代替&#xff09;。 在 Telegram 的博客中&#xff0c;开发人员介绍可以使用 JavaScript 构建自己的迷你应用 在一篇博客文章中&#xf…

蓝桥杯 Java 青蛙过河

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改/**二分法从大&#xff08;n&#xff09;到小找足够小的步长前缀和记录每个位置的前面有的总石头数&#xff08;一个石头表示可以容纳一个青蛙&#xff0c;一位置有多少个石头hi就是多少&#xff09;&…

2023/10/24 MySQL学习

列表查询 in的用法,括号里面跟的应该是具体值,可填多个 select 表中变量名 from 表名 where 变量名 like ___... 一个下划线代表一个字符,多个就是多个字符 %号是任意多字符 %号的用法 %任意字符串 代表查找以这个字符串结尾的变量名 %任意字符串% 查找以这个字符串在变…

PPT放映时显示安全警告:已阻止OLE操作。如果选择启用OLE操作,您的计算机可能不再安全。如果不信任此演示文稿的来源,请不要启用此内容

PPT放映时显示安全警告&#xff1a;已阻止OLE操作。如果选择启用OLE操作&#xff0c;您的计算机可能不再安全。如果不信任此演示文稿的来源&#xff0c;请不要启用此内容。 ⚙️1.软件环境⚙️&#x1f50d;2.问题描述&#x1f50d;&#x1f421;3.解决方法&#x1f421;&#…

MS5192T/MS5193T——低噪声、低功耗、16/24 位∑-ΔADC

MS5192T/MS5193T 是一款适合高精度测量应用的低功耗、低 噪声、三通道差分输入的 16bit/24bit 模数转换器。其内部集成了 输入缓冲器、低噪声仪表放大器&#xff0c;当增益设置为 64 &#xff0c;更新速率为 4.17Hz 时&#xff0c;均方根噪声为 25nV 。集成了精密低噪声、低漂移…

ITSource 分享 第3期【在线个人网盘】

项目介绍 本期给大家介绍一个在线个人网盘 系统. 可以上传&#xff0c;下载&#xff0c;分享文件。 一 业务介绍 本系统分为以下几个模块: 1.登录注册 除了账号密码登录&#xff0c;如果配置了qq邮箱配置的话&#xff0c;还支持qq一键授权登录。 2.首页大盘 首页是个人网盘…

适用于物联网的UI设计工具都有哪些?

随着科学技术的飞速发展&#xff0c;“万物相连的互联网”时代逐渐成为现实。如今&#xff0c;物联网已经不是什么新词了。事实上&#xff0c;早在各种屏幕设备诞生之前&#xff0c;人们就与物理世界交织在一起&#xff0c;产生了无数的互动。如何将人们多年积累的互动经验与物…

APP采用原生开发还是混合开发好?

最近也有不少用户留言&#xff0c;问一些基础的内容&#xff0c;例如&#xff1a;App采用怎样的开发方式更好&#xff1f;便有感而发&#xff0c;希望通过这篇文章再做一下小结。 先亮结果&#xff0c;是采用原生还是混合的开发方式&#xff0c;需要先了解业务规划&#xff0c…

继承【C/C++】

目录 一、继承 1、概念 2、定义 3、继承方式和访问限定符 4、继承中的作用域 5、基类和派生类对象赋值转换 6、派生类的默认成员函数 构造 ​编辑 析构 友元 静态成员 二、多继承和菱形继承 菱形继承的问题 三、虚拟继承 原理 练习题&#xff1a; 四、组合…

1-07 React配置postcss-px-to-viewport

React配置postcss-px-to-viewport 移动端适配 安装依赖&#xff1a;在项目根目录下运行以下命令安装所需的依赖包&#xff1a; npm install postcss-px-to-viewport --save-dev配置代码 const path require(path);module.exports {webpack: {alias: {: path.resolve(__di…