数据库表的增删改查操作

一、 在表中插入插入数据

全列插入

要正确插入中文,就必须指定数据的字符编码方式,需要修改my.ini配置文件

//多行插入
insert into students values{
(1,"小明",17),
(2,"小花",18),
(3,"小丽",18);
}
指定列插入
insert into students(id,name) values(3,"小志");

二、查询

全列查询
select * from students;

注意:通常情况下不建议全列查询
生产环境的服务器(数据库)数量非常大,一旦执行select*操作,可能会給设国产环境的服务器造成很大的负担,甚至导致服务器卡死。

指定列查询
//指定列的顺序不需要按照定义表的顺序
select id,name from students;
查询字段为表达式

select 表达式 from 表名

select name,chinese+english+math from exam_result;

在这里插入图片描述

查询字段指定别名

select 表达式 as 别名 from 表名
在这里插入图片描述

列求和:将同一行的若干列加在一起
行求和:将同一列的若干行加在一起
去重查找(distinct)

将某一列中重复的去掉
select distinct 列名 from 表名
在这里插入图片描述
在这里插入图片描述

去重操作也可以针对多列,去重的多个列都对应相同的行进行去掉
使用distinct时必须把所有的列放在distinct之后

在这里插入图片描述

排序查询(order by)

select * from 表名 order by 列/表达式 asc/desc

order by指定对哪个列进行排序,默认是升序排序
asc:升序
desc:降序

例1:查找学生信息,并按照总成绩的升序进行排序,并使用别名
在这里插入图片描述
例2:按照多个序列排序
先把所有同学的信息按照语文降序排序,再按照数学降序排序,再按照英语降序排序列越靠前优先级越高,如果语文成绩相同,再按照数学成绩排序,如果语文和数学都一样,就按照英语排序。
在这里插入图片描述
数据表中出现空值作为最小元素

条件查询查询(where)

在这里插入图片描述

=:比较相等,而不是赋值(updata中的=相当于赋值)
<=>:比较相等,能针对null进行比较
// 表达式null=null是错误的
//表达式null<=>null是正确的

在这里插入图片描述
注意1:where条件可以使用表达式。不能使用别名
注意2:and的优先级高于or,在同时使用时,需要使用小括号()包裹住有限执行的部分
例1:查询数据中chinese为null的记录
要使用<=>
在这里插入图片描述
这样错误:
在这里插入图片描述
例2:查询总分在250分以下(<)
where中不能使用别名:
在这里插入图片描述
在这里插入图片描述
例3:查询语文和英语同时大于80
在这里插入图片描述
例4:查找语文成绩在80和90 之间(between)
在这里插入图片描述
例5:查询数学成绩是88.0或者78.0或者90 的
在这里插入图片描述

模糊匹配查询(like)

select 列名 from 表名 where like 匹配表达式

like操作要搭配通配符来使用
%:匹配任意个任意字符
_:匹配一个任意字符

例1:查找所有同学中带有红字的
在这里插入图片描述

like不仅可以进行字符串的匹配查询,还适用于数字的匹配查询。
like的查询速度低

例2:查找所有同学中姓名以小开头的,且语文成绩大于85的
在这里插入图片描述

当多个条件一起联合生效时,一般要求哪个条件能过滤掉的数据多,就把哪个条件放在最左侧
分页查询(limit)
上面的select操作除了条件查询,剩下的都不应该在生产服务器上直接执行;
即使是条件查询也不能保证安全,很有可能条件查询后也会剩下很多,
最保险的就是加上分页查询

例1:查找同学信息中总分最高的前3个
在这里插入图片描述
例2:查找同学信息中总分4-6名的同学(offset)
在这里插入图片描述

offset意思是从哪个下标开始,这里的下标也是从0开始
如果limit后面的数字太大,超出记录的数目,返回结果不会有任何错误

三、修改

update 表名 set 列名 = 修改的值,列名 = 修改的值 where字句

例1:将小红同学的语文成绩变更为60,数学成绩为90
在这里插入图片描述
例2:将总成绩倒数前3位同学的数学成绩加上30
在这里插入图片描述

修改数据时不应该超出指定列的数据类型的范围

四、删除(delete)

真实工作中谨慎使用删除操作,不要乱删!!!!
delete from 表名 where 筛选条件

数据库的数据都是存在磁盘上的
如果数据特别多,超出磁盘容纳的上限,此时就无法继续写入数据了,根据数据的重要情况,决定是定期清理,还是定期备份。

例1:删除小明同学在表中的数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值