MySQL增删改查(基础版)

插入

插入全部列

插入就是增加的意思。先创建一个学生表(id,名字,年龄,成绩):

create table student(id int,name varchar(50),age int,score double(3,1));

运行结果如下:
建立学生表
然后插入数据,insert into 表名 values(表里面的值)。四个数据对应的是:班级、名字、年龄、成绩

insert into student values(1,'张三',18,95.5);

运行结果如下:
插入数据
查看全部记录

select * from student;

运行结果如下:
显示全部记录

同时插入多条记录

插入的时候,一个括号代表一条记录,多个括号之间用 , 隔开,插入多条记录(即多个括号)。代码如下:

insert into student values(2,'小二',18,97.5),(3,'小三',18,85);

此处注意 , 为英文逗号!
运行结果如下:
插入多条记录

插入部分列

在插入部分列的时候,在表名后面加个括号,里面写上要插入的列名,然后在 values 后面的括号内填入要插入列的数值。未插入的列的值默认为NULL。代码如下:

insert into student(id,name) values (15,'林夕');

运行结果如下:
插入部分列

查询

查询是数据库当中用的最多的一种操作。也是考点最多的方式。

全列查询

全列查询就是把一个表的所有的列,所有的行都查询出来。
select * from 表名; * 是通配符,表示一个表的所有列。
代码如下:

select * from student;

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

查询部分列

在查询的时候,也可以查询部分列。select 列名,列名 from 表名
现在只在表中查询 名字 和 年龄,
代码如下:

select name,age from student;

运行结果如下:
查询部分列
这里通过查询就筛选出了由 名字 和 年龄 组成的表

查询的时候进行运算操作

进行运算就是查询的时候,同时进行一些运算操作(列和列之间)。
把所有人的年龄 +10
代码如下:

select name,age+10 from studennt;

运行结果如下:
年龄+10
在这里,查询结果都是临时表,原始数据不会被修改
接下来建立一个考试表(id,名字,语文成绩,数学成绩,英语成绩)
建一个成绩表
成绩表的记录

查询每个学生的总分

查询总分的时候,把所有成绩加起来,代码如下:

 select name,chinese+math+english as zongfen from grades;

运行结果如下:
每个同学的总成绩

给查询的临时表起别名

在列名之后通过 as 就可以给查询的临时表起别名了。
select 列名 as 别名 from 表名,在上一个成绩表中,把语文+数学+英语的总分 设置了属性名—>zongfen。

针对查询结果去重

成绩表内容
使用 distinct 针对查询的结果,将数学成绩相同的去掉,代码如下:

select distinct math from grades;

运行结果如下:
数学成绩去重

多个列去重

如果要针对多个列进行去重,就得这多个列的值都相同才能去重;
使用 distinct 针对查询的结果,将数学成绩和英语成绩相同的去掉,代码如下:

select distinct math,english from grades;

运行结果如下:
数学成绩和英语成绩相同的去掉

按照总成绩排序

在排序的时候,通过 order by 来进行排序。
select 列名 from 表名 order by 列名 asc / desc ;asc 和 desc 代表升序和降序。默认为asc,null 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面。
代码如下:

select name,chinese + math + english from grades order  by chinese + math + english;

运行结果如下:
按照总成绩排序

按照别名来排序

将总成绩换为别名,然后进行排序。
代码如下:

 select name,chinese + math + english as zongfen from grades order  by chinese + math + english;

运行结果如下:
给总成绩起别名
此时插入空值的数据再次进行排序
默认升序,null是最小值

对查询结果按照某一列进行排序

对查询的结果按照数学成绩进行排序,代码如下:

 select * from grades order by math asc;

运行结果如下:
按照数学成绩升序排序

根据多个列进行排序

在排序的时候,如果两个值相同的话,那么就可以再指定一个列来进行排序。这里使用语文和数学举例。当语文成绩一样的时候,就根据数学成绩进行排序。
代码如下:

select name,chinese,math from grades order by chinese,math;

根据语文和数学排序

条件查询

条件查询的时候,主要用到的是 where 。
在 where 后面加一些条件来进行查询。

查询某一列小于某个值

要查询某一列小于某个值的数据的时候,在 where 后面加条件就好。
select 列名 from 表名 where 某一列 < 70; 代码如下:

select name,chinese from grades where chinese < 75;

语文小于75

列和列之间的比较

在比较的时候,通过 where 就可以。代码如下:

select name,english,chinese from grades where chinese < english;

运行结果如下:
语文成绩小于英语成绩

并且条件查询

在查询的时候,通过 and 来连接多个条件进行查询。
代码如下:

select name,math,chinese from grades where math>80 and chinese >80;

运行结果如下:
数学和语文成绩都大于80

或者条件查询

通过 or 来完成对或者条件的查询,代码如下:

select name,math,chinese from grades where math>80 or chinese >80;

运行结果如下:
数学成绩大于80或者语文成绩大于80

and 和 or 的优先级

在 SQL 当中 and 的优先级比 or 的优先级大,在同时使用时;如果想打破优先级,需要使用小括号()包裹优先执行的部分。
代码如下:

select name,math,chinese,english from grades where (math>80 or chinese >80) and english>90;

运行结果如下:
先比较括号里面的

between 方法

between 就是介于两者之间的表示,要注意的是 between 两边都是闭区间。
between a0 and a1 —> a0<=value<=a1
代码如下:

select name,english from grades where english between 90 and 100;

运行结果如下:
英语成绩在[90,100]之间的同学

in 方法

in 方法就是给定几个值,如果有满足这些数据的时候,就输出。代码如下:

select name,english from grades where english in (95,86);

运行结果如下:
英语成绩在95和86当中的

模糊匹配 like

模糊匹配就是有一些关键字一样就可以查询出来。

%通配符

通过 % 通配符就可以进行模糊查询,% 表示0个或者多个字符。代码如下:

select * from grades where name like '六%';

运行结果如下:
学生名字是六开头的

_下划线

下划线通配符,一个下划线只能匹配到一个字符。代码如下:

select * from grades where name like '小%';

运行结果如下:
小开头的学生信息

查找NULL成绩

查找 NULL 成绩的时候,有两种方法:
1.通过 <=> 来判断是不是
2.通过 is null 来判断是不是

<=>

通过 <=> 来判断,代码如下:

select * from grades where chinese <=> null;

运行结果如下:
语文成绩为空的学生信息

is null

is null 也是判断 空 的一中方法,代码如下:

select * from grades where chinese is null;

运行结果如下:
语文成绩为空的学生信息

分页查询 limit

分页查询当中,使用 limit 来进行分页。代码如下:

select * from grades limit 3;

运行结果如下:
3行记录为一列

offset

offset 是配合 limit 来使用的,就是从 offset 这个位置去查找。
代码如下:

select * from grades limit 3 offset 2;

运行结果如下:
从第2个之后查找记录

搭配条件使用

limit 可以搭配 条件、order by 等操作来使用。
代码如下:

select name,math+english+chinese as zongfen from grades order by zongfen limit 2;

运行结果如下:
以总分为条件升序,一页显示2条记录

修改

修改主要是使用 update 来进行的。
修改: update 表名 set 列名 = 值 where 条件; where 后面的条件,是针对哪些进行修改。符合 where 条件的就进行修改,不符合就不修改。如果 where 省略了,就是修改所有记录。
在修改的时候会把原始数据修改。

使用where来修改

通过 where 后面加条件就可以完成修改。代码如下:

update grades set english = 70 where name = '六六';

运行结果如下:
把六六的英语成绩改成70

一次修改多个数值

在修改的时候可以一次修改多个数值,代码如下:

 update grades set english = 70,chinese = 80 where name = '小一';

运行结果如下:小一的英语成绩改成70,语文成绩改成80

修改全部数据

修改全部数据的时候,不加 where 就可以了。例如:把英语成绩全部修改为原来的一半。代码如下:

update grades set english=english/2;

运行结果如下:
英文成绩修改为原来的一半

删除

删除操作的时候,使用的是 delete 关键字。

使用where删除

delete from 表名 where 条件;代码如下:

delete from grades where id=2;

运行结果如下:
删除id为2的同学信息

删掉所有数据

删掉所有数据的时候,就不加 where 了。
代码如下:

delete from grades;

运行结果如下:
删除所有数据

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值