目录
前言:前一篇我们讲了如何创建一个表/数据库,怎样查看一个表的所有列(危险操作)/所有数据库和如何删除表/库(危险操作),接下来,我们要进一步了解mysql.
1.新增(Create) C
1.1 单行数据+全列插入
insert into 表名 values();
插入的数量必须和定义表的列的数量以及顺序一致。
如果这里的zhangsan 你用1 代替也是可以的
说明mysql可以将数字转化为字符串。
1.2:多行新增+指定列插入
insert into 表名(指定的列名)values();
----新增的数据要和列一一对应。
指定多个列用逗号隔开。
未被指定的列,用默认值来进行填充。
1.3:思考题
当前一次插入一条记录,分10次插入和一次把10条记录一起插入,那个效率比较高?
前置的效率要低于后者效率
1.既然是通过网络访问,发起网络和返回网络响应,每一次都是由一定的时间开销。
2.数据库服务器是把数据保存在硬盘上的。
3.mysql关系型数据库(关系模式指的是一张二维表格模式)每一次进行mysql操作,内部都会开启一个事务,每次事务都会存在开销。
2.查询(Retrieve)R 简单查询
查询的时候,查询只是一个临时表,不会存入硬盘中,无论是怎么的操作都不会影响表中的数据。
2.1:指定列查询
select (指定列名) from 表名;
----------指定多个列用逗号隔开。
2.2:查询字段为表达式
select 指定列,表达式 from 表名;
-------只是针对每一行的对应列计算
2.3:别名 as
select 列名 as 别名 from 表名;
--------这个 as可以舍去,但带着比较好
2.4:去重 distinct
select distinct 列名 from 表名
-----对莫列的数据进行去重
如果是多个列去重
-------- 去掉的是指定列都完全相同的。
2.5:排序 order by
select * from 表名 order by (根据那一列进行排序);
------asc 为升序(从小到大)默认是升序;
-------desc 为降序(从大到小)
2.5.1:使用表达式及别名进行排序。
2.5.2:可以对多个字段进行排序,排序优先级随书写顺序
select * from 表名 order by 字段,字段;
---------第一列相同,再比较第二列的,依次类推
注意:
1.没有order by子句的查询,返回的顺序是未定义的。永远不要依赖这个顺序。
2.null数据排序,视为比任何值都要小。
2.6:条件查询 :where
运算符 | 说明 |
> ,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于 ,null不安全,例如null==null结果都是null |
<=> | 等于,null安全,例如null<=>null的结果是TRUE(1) |
!=,<> | 不等于 |
between a0 and a1 | 范围匹配,[a0 a1] |
in (option) | 如果是option中的任意一个,返回true |
is null | 是null |
is not null | 不是null |
like | 模糊匹配。% 表示任意字符;_表示一个字符 |
AND | 多个条件都为true,结果才是true |
OR | 任意一个条件都为true,结果才是true |
NOT | 条件为true,结果为false |
注意:
1.where 条件可以使用表达式,但不能使用别名。
2.AND的优先级高于OR,再同时使用时,需要使用小括号包裹优先执行的部分。
2.6.1:模糊查询 Like
------对于数据库来说,查询开销比较大。
2.7:分页查询 limit
select * from 表名 limit (n,n);
------------第一个n从第几行数据开始查起,第二个n是显示几行数据。第一个数据的序号是0
2.7.1:例题
查询全班总成绩倒数第二的同学信息
如果是第二就是排倒序---order by sum desc
那如果要查总成绩第五的同学信息,没有返回null改咋办勒?
2.7.2: ifnull()函数
ifnull(expression_1,expression_2)
如果expression_1不为空,返回expression_1;
如果expreession_1为空,返回expreesion_2;
查询字段不管是0还是空字符串,都不为null,会原样输出。只有查询字段为null时,才会使用第二个参数。
3.修改 Update
切实在改服务器硬盘数据
Update 表名 set 列名=值 where 条件;
4.删除 Delete(危险操作)
delete from 表名 where 条件;
总结:
以上就是我总结的数据库简单的CRUD操作,若有不对之处,请各位铁子留言纠正。若感觉不错,请一键三联。