首页 > 数据库 >MySQL的增删改查

MySQL的增删改查

时间:2024-09-22 20:22:07浏览次数:3  
标签:... exam -- 改查 result MySQL 增删 SELECT name

CRUD 即 增加(Create)、 查询(Retrieve)、 更新(Update)、 除(Delete)四个单词的首字母缩写 首先创建一张表:
drop table IF EXISTS student;
create table student(
id INT,
sn INT, -- 学号
name VARCHAR(20), -- 姓名
qq_mail VARCHAR(20) -- QQ邮箱
);

新增(Create

(一)、插入数据方式

1.单行数据+全列插入

insert into student values (1,101,'张三','[email protected]');
insert into student values (2,201,'李四','[email protected]');

2、多行数据 + 指定列插入

insert into student (id,sn,name,qq_mail) values
(3,301,'王五','[email protected]'),
(4,401,'赵六','[email protected]');

二、 查询(Retrieve

select column1, column2, ...
from table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];

案列:创建一个考试成绩表


DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
 id INT,
 name VARCHAR(20),
 chinese DECIMAL(3,1),
 math DECIMAL(3,1),
 english DECIMAL(3,1)
);
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
 (1,'唐三藏', 67, 98, 56),
 (2,'孙悟空', 87.5, 78, 77),
 (3,'猪悟能', 88, 98.5, 90),
 (4,'曹孟德', 82, 84, 67),
 (5,'刘玄德', 55.5, 85, 45),
 (6,'孙权', 70, 73, 78.5),
 (7,'宋公明', 75, 65, 30);

(一)、查询方式

1、全列查询

通常情况下不建议使用*全列查询
1、查询的列越多,意味着需要传输的数据量越大;
2、可能会影响到索引的使用。

select * from exam_result;

2、指定列查询

指定列的顺序不需要按照表中的列顺序来。

select id,name,chinese from exam_result;

3、查询字段为表达式

-- 表达式不包含字段

SELECT id, name, 10 FROM exam_result;

-- 表达式包含一个字段

SELECT id, name, english + 10 FROM exam_result;

-- 表达式包含多个字段

SELECT id, name, chinese + math + english FROM exam_result;

4 、别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
SELECT column [ AS ] alias_name [...] FROM table_name ;


这里的总分就是我们定义的别名:
SELECT id, name, chinese + math + english 总分 FROM exam_result;

去重:DISTINCT

使用 DISTINCT 关键字对某列数据进行去重:

比如我们这里对重复的数学成绩去重:

select distinct math from exam_result;

 6、 排序:ORDER BY

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...] 
 ORDER BY column [ASC|DESC], [...];

1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序 。

2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面。

查询同学姓名和 English,按 English 排序显示

升序排列:

SELECT name, English FROM exam_result ORDER BY English;

降序排列:

SELECT name, English FROM exam_result ORDER BY English desc; 

7、条件查询 WHERE

当使用 SELECT 语句进行查询时,MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。MySQL 支持的

比较运算符如下表所示

逻辑运算符:and 的优先级要高于 or

 :

1. WHERE 条件可以使用表达式,但不能使用别名。

2. AND 的优先级高于 OR ,在同时使用时,需要使用小括号 () 包裹优先执行的部分。

(1)、基本查询

-- 查询英语不及格的同学及英语成绩 ( < 60 )

SELECT name, english FROM exam_result WHERE english < 60;

-- 查询语文成绩好于英语成绩的同学

SELECT name, chinese, english FROM exam_result WHERE chinese > english;

(2)、AND、OR

-- 查询语文成绩大于 80 分,且英语成绩大于 80 分的同学

SELECT * FROM exam_result WHERE chinese > 80 and english > 80 ;

-- 查询语文成绩大于 80 分,或英语成绩大于 80 分的同学 

SELECT * FROM exam_result WHERE chinese > 80 or english > 80 ;

(3)范围查询

1、between …… and……

查询语文成绩在80-90之间的学生姓名;

SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;

2、in

-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);

(4)模糊查询:LIKE
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE '孙%';__ 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';__ 匹配到孙权

(5) 分页查询:LIMIT  
-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

案例、按id进行分页,每页三条记录

select id,name,math,english,chinese from exam_result order by id limit 3 offset 0;
select id,name,math,english,chinese from exam_result order by id limit 3 offset 3;
select id,name,math,english,chinese from exam_result order by id limit 3 offset 6;

三、 修改(Update

UPDATE table_name SET column = expr [, column = expr ...]
[ WHERE ...] [ ORDER BY ...] [ LIMIT ...]

-- 将孙悟空同学的数学成绩变更为 80 分

UPDATE exam_result SET math = 80 WHERE name = ' 孙悟空 ' ;

-- 将总成绩倒数前三的 3 位同学的数学成绩加上 1 分

UPDATE exam_result SET math = math + 1 ORDER BY chinese + math + english LIMIT 3 ;

四、删除(Delete

DELETE FROM  table_name [WHERE ...]

删除孙权的考试成绩

DELETE FROM  exam_result where name = '孙权';


以上就是关于MySQL增删改查的基础部分全部内容了,学习MySQL难度不是很高,重要的是多加练习提高熟练度

                           

标签:...,exam,--,改查,result,MySQL,增删,SELECT,name
From: https://blog.csdn.net/weixin_72703349/article/details/142438334

相关文章

  • [Mysql]基础入门篇_关于数据库的简介_初识DQL语句
    @[TOC]文章目录何为数据库数据库类型数据库管理系统(本博主使用的是Mysql数据库)何为SQL准备工作及select查询操作的简单使用何为数据库数据库是一个有组织的数据集合,允许高效存储、管理和检索信息。它通过结构化的方式存储数据,通常使用数据库管理系统(DBMS)来执行操作,如......
  • python如何操作mysql
    首先要通过pipinstallpymysql安装一个pymysql模块直接上代码:importpymysql#连接数据库conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='test')#创建游标cursor=conn.cursor()#创建一张表#sql="createtablemy......
  • mysql安装(windows-mysql-8.1.0-winx64.zip安装)
    1、官网下载,解压缩2、配置环境变量3、新增my.ini文件,根据电脑环境修改配置 #设置mysql的安装目录 basedir #设置mysql数据库的数据的存放目录 datadirmy.ini文件内容如下:[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=D:\kaifa\mysql-8.1.0-winx6......
  • mybatis 配置文件完成增删改查(一)
    文章目录编写三步走查询所有编写接口方法编写sql语句执行方法,测试结果数据库字段名和实体类变量名不一致:ResultMap数据库字段名和实体类变量名不一致:方法二编写三步走编写接口方法:Mapper接口参数有无结果类型编写sql语句:sql映射文件执行方法,测试查询所有文件直......
  • MySQL数据库知识
    1.在编程中,数据库的内容非常重要。2.**语句的执行顺序:**selectfromwheregroupbyhavingorderby--是这个顺序吗?不是。MySQL执行语句的顺序是:fromwhereselectgroupbyhavingorderby3.orderby排序,默认升序asc降序desc4.groupby分组查询--注意:按分组......
  • MySQL 的 ACID 属性:保障数据完整性的基石
    《MySQL的ACID属性:保障数据完整性的基石》在数据库领域,MySQL以其强大的功能和广泛的应用而备受青睐。其中,ACID属性是MySQL保证数据完整性和可靠性的重要特性。那么,什么是MySQL的ACID属性呢?它又是如何在实际应用中发挥作用的呢?让我们一起来深入了解一下。一、ACID属性......
  • MySQL 优化器:理解与探秘
    在MySQL数据库的世界里,优化器扮演着至关重要的角色。它就像是一位幕后的魔法师,默默地为数据库的高效运行贡献着力量。那么,MySQL优化器究竟是什么?它又是如何工作的呢?让我们一起来揭开它的神秘面纱。一、MySQL优化器是什么?MySQL优化器是数据库管理系统中的一个核心组件......
  • MySQL 中的全文索引:强大的文本搜索利器
    《MySQL中的全文索引:强大的文本搜索利器》在MySQL数据库中,全文索引是一种非常有用的功能,它可以帮助我们快速地在大量文本数据中进行搜索。那么,什么是MySQL中的全文索引呢?它又是如何工作的呢?让我们一起来深入了解一下。一、什么是全文索引?全文索引是一种特殊类型的索引,它允......
  • MySQL数据库备份和恢复
    一、MySQL数据库备份使用mysqldump命令(逻辑备份)语法备份单个数据库:mysqldump-uusername-pdatabase_name>backup_file.sql例如,如果要备份名为mydb的数据库,用户名为root,执行命令mysqldump-uroot-pmydb>mydb_backup.sql。然后系统会提示输入密码,输入正确密码......
  • 帝国CMS忘记后台管理员帐号怎么办?使用MySQL数据库管理软件phpmyadmin
    如果你忘记了帝国CMS后台管理员的账号,可以通过直接查询数据库的方式来找回或重置账号。以下是具体的步骤:步骤一:登录phpMyAdmin访问phpMyAdmin打开浏览器,访问phpMyAdmin的URL,通常是:  http://yourdomain.com/phpmyadmin其中yourdomain.com需要替换成你的实际域名或......