【MySQL数据库和JDBC编程】第三章-第一节:MySQL的增删查改基础篇
创始人
2024-01-12 23:11:34

文章目录

  • 一:INSET新增
  • 二:SELECT查询
    • (1)全列查询
    • (2)指定列查询
    • (3)查询字段为表达式
    • (4)起别名
    • (5)去重(DISTINCT)
    • (6)排序(ORDER BY)
    • (7)条件查询(WHERE)
      • A:基本查询
      • B:AND和OR
      • C:范围查询
        • ①:BETWEEN AND
        • ②:IN
      • D:模糊查询LIKE
      • E:NULL的查询
      • F:分页查询-LIMIT
  • 三:UPDATE修改
  • 四:DELETE删除

一:INSET新增

INSERT新增:语法格式如下

insert
into 表名([列名1,列名2,....])
values(常量1,常量2,...)

以下面的student为例进行说明

create table student(Sid int,Snumber int comment '学号',Sname varchar(20) comment '姓名',Seamil varchar(20) comment '邮箱'
);

在这里插入图片描述

例子

①:插入如下三行数据,一次只插入一行

insert into student values(1, 2012345, '张三', 'zhangsan123@qq.com');
insert into student values(2, 2012557, '李三', NULL);
insert into student values(3, 2012663, '王五', 'wangwu@163.com');

在这里插入图片描述

②:指定列插入,并且一次插入多行数据

insert 
into student(Sid, Sname)
values
(4, '赵倩'),
(5, '孙莉');

在这里插入图片描述

二:SELECT查询

SELECT查询:根据WHERE子句的条件表达式从FROM子句指定的表、视图中找出满足条件的元组,再按照SELECT子句中的目标列表达式选出元组中的属性值形成结果表。如果有:

  • GROUP BY:结果按<列名1>的值进行分组,该属性列值相等的元组为一个组;通常会在每组中作用聚集函数;如果该子句还携带HAVING短语,则只有满足指定条件的组才予以输出
  • ORDER BY:结果表还要按<列名2>的值的升序或降序排序

在这里插入图片描述

以下面的exam为例进行说明

create table exam(Sid, int,Sname varchar(20),Chinese decimal(3, 1),Math decimal(3, 1),English decimal(3, 1)
);insert into 
exam
values 
(1, '唐三藏', 67, 98, 56),
(2, '孙悟空', 87.5, 78, 77),
(3, '猪八戒', 88, 98.5, 90),
(4, '曹操', 82, 84, 67),
(5, '刘备', 55.5, 86, 45),
(5, '孙权', 70, 73, 78.5),
(5, '宋江', 75, 65, 30);

在这里插入图片描述

(1)全列查询

全列查询:语法格式如下

  • 一般不建议使用通配符*进行查询,因为查询的列越多,传输的数据量就越大
  • 可能会影响到索引的使用
select * from 表名;

例子

select * from exam;

在这里插入图片描述

(2)指定列查询

全列查询:语法格式如下

  • 列的顺序可以不按照原有列顺序
select 列名1, 列名2, .. from 表名;

例子

select Sname, English from exam;

在这里插入图片描述

(3)查询字段为表达式

查询字段为表达式:在查询时列可以参与运算

例子

select Sname, English from exam;

在这里插入图片描述

(4)起别名

起别名:可以为查询结果起一个通俗易懂的名字,别名放在对应列名(表名、表达式也可以)之后即可

例子

select Sname 姓名, English + Math + Chinese 总成绩 from exam;

在这里插入图片描述

(5)去重(DISTINCT)

去重(DISTINCT):在列名前面加入distinct会把重复的记录合并为一个显示

  • 如果对多个列去重,那么只有多个列相同时才视为重复

例子

select distinct Math from exam;

在这里插入图片描述

(6)排序(ORDER BY)

排序(ORDER BY):使用order by可以按照指定列进行排序

  • asc(默认):升序
  • desc:降序
  • null数据在任何情况下被视为最小值

例子

①:对所有数据按照Chinese升序排序

select * from exam order by Chinese;

在这里插入图片描述

②:对所有数据按照Engilish降序排序

select * from exam order by English desc;

在这里插入图片描述

③:对多个列进行排序,写在前面的列的权重要高于后面的列,也即主要关键字和次要关键字之分。如下对所有数据依次按照Math降序、English升序、Chinese升序排序。也即在保证Math降序的前提下再对English升序,最后对Chinese升序

select Sname, Math, English, Chinese from exam order by Math desc, English, Chinese;

在这里插入图片描述

(7)条件查询(WHERE)

条件查询(WHERE):查询时where后面可以跟上查询条件,select会根据where后面的内容来判断,查询条件主要包括

  • 比较运算(特别注意这个=
    在这里插入图片描述

  • 逻辑运算
    在这里插入图片描述

A:基本查询

例子

①:查询英语成绩低于60分的同学

select Sname from exam where English < 60;

在这里插入图片描述

②:查询语文成绩高于英语成绩的同学

select Sname from exam where Chinese > English;

在这里插入图片描述

③:查询总分低于200分的同学

select Sname, Chinese+Math+English from exam where Chinese+Math+English < 200;

在这里插入图片描述

B:AND和OR

  • AND优先级要高于OR

例子

①:查询语文成绩大于80且英语成绩大于80的同学

select Sname, Chinese, English from exam where Chinese > 80 and English > 80;

在这里插入图片描述

②:查询语文成绩大于80或英语成绩大于80的同学

select Sname, Chinese, English from exam where Chinese > 80 or English > 80;

在这里插入图片描述

C:范围查询

①:BETWEEN AND

例子

①:查询语文成绩在[80, 90]的同学

select Sname, Chinese from exam where Chinese between 80 and 90;

在这里插入图片描述

②:between and等价于and

select Sname, Chinese from exam where Chinese >= 80 and Chinese <= 90;

在这里插入图片描述

②:IN

例子

①:查询数学成绩是58或59或98或99的同学

select Sname, Math from exam where Math in (58, 59, 98, 99);

在这里插入图片描述

②:in 等价于 or

select Sname, Math from exam where Math = 50 or Math=59 or Math=98 or Math=99;

在这里插入图片描述

D:模糊查询LIKE

例子

①:%可以匹配任意多个字符(包括0个)

select Sname from exam where Sname like '孙%';

在这里插入图片描述

②:匹配严格的一个任意字符

select Sname from exam where Sname like '孙_';

在这里插入图片描述

E:NULL的查询

例子

select Sname from student where Sname is not null;
select Sname from student where Sname is null;

F:分页查询-LIMIT

其语法格式如下,表达的意思是从s开始,筛选n条结果

select ... from table limit n offset s;

例子

select * from exam limit 3 offset 4;

在这里插入图片描述

三:UPDATE修改

语法:格式如下,其功能是修改指定表中满足WHERE子句条件的元组

  • 如果省略WHERE子句,则表示要修改表中所有元组

在这里插入图片描述

例子

①:将指定同学的数学成绩变更为80分

update exam set Math = 80 where Sname like '孙悟空';

在这里插入图片描述

②:将指定同学的数学、语文成绩分别变更为60分、70分

update exam set Chinese = 70, Math = 60 where Sname like '宋江';

在这里插入图片描述

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

update exam set Math = Math + 1 order by Chinese+Math+English limit 3;

在这里插入图片描述

四:DELETE删除

语法:格式如下,其功能是从指定表中删除满足WHERE子句条件的所有元组,注意

  • DELETE删除的是表的数据,而不是表的定义
  • 如果省略WHERE子句,那么就表示删除全部元组

在这里插入图片描述

例子

delete from exam where Sname = '孙悟空';

在这里插入图片描述

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...