本文主要介绍了mysql的数据增加/查询/修改和删除操作 .
SQL最核心的就是增删改查(CRUD)
* c create
* r read
* u update
* d delete
一.新增
1.往数据表中插入一条数据
insert into 表名 values( 值 ,值 , ….) ;
2.插入中文
3.指定列插入
4.一次插入多个记录
注意:
- SQL没有 字符 类型
所以字符串用单引号/双引号都可以
- 插入中文的前提是创建数据库的时候设置了utf8为字符集,否则会出现乱码/报错
二.查询
查询语句让我们能看到表中包含的数据结构
1.全列查询
select * from 表名 ;
注意:
- select * 是一个非常危险的操作 : 如果某个表的数据非常非常多,如果查询这个表所有的数据,那么服务器就会把所有记录放回给客户端,导致一瞬间这个服务器硬盘的带宽和网卡的带宽被吃满 ! 很容易卡死!
2.指定列查询
3.查询字段为表达式
查询的同时可以计算
(所有人成绩加10)
- 此处客户端中显示的结果是一个临时表,select不管怎么写,都不会影响到数据库服务器上的数据
4.查询的时候给lie/表达式 指定别名
- 也可以给表名用as设置别名
5.查询时去重
把重复的行只保留一份
select distinct 列名 from 表名;
6.排序查询
针对查询到的结果进行排序
- 默认是升序(小的在前)
- desc是降序(大的在前)
select 列名 from 表名 order by 列名 ;
- 降序 desc是descend下降的缩写
- 多个列排序
先按前面列排,如果前面的相同,按后面的排
7.条件查询
- 关系运算符
注意:
- = 运算符不能比较NULL
- <> 和 != 是等价的,都是表示不相等
- 逻辑运算符
查询语句执行的过程
1.服务器先遍历每一个记录
2.这对每条记录,看条件是否成立
3.如果成立,就将这一条加入结果集 ; 如果不成立 , 跳过 ;
比如
查询总分小于200的人
注意:
- 在条件中,不能尝试用别名 ! (比如条件里用total)
8.分页查询limit
针对查询的结果,进行截取,取出其中的一个部分
limit 4 约束了最多包含几个记录
offset 4约束了从第几条开始算(相当于下标)
上述八种select 的写法,都是select最基础的写法,也是工作中最常用的写法
三.修改update (最最基础的操作)
update 表名 set 列名 = 值 where 条件 ;
将孙悟空的数学成绩修改为80
- 注意: = 在此处不是相等 ,而是 赋值 了.
- 此处的修改是修改mysql服务器保存在硬盘上的数据(持久生效)
修改操作也可以搭配order by 这样的排序操作
查询总成绩最后三名的同学
给总成绩最后三名的同学语文成绩加10分
- select中支持中的条件/排序/分页,对于update来说同样生效
update可以理解成先查询再修改
- update如果不指定任何条件,那么会把所有的行都进行修改 ! !
因此update操作也是非常危险的 !
四.删除delete
delete from 表名 where 条件 ;
直接删除符合条件的行
注意
- 删除是按照行来删除的,无法删除某些列
- 如果在delete的时候,没有指定条件,那么就会把整个表的数据都删除
和drop table 差不多 , 但是表还在 .
总结
四种语句的接口风格不是统一的 .