一、什么是CRUD?
大家肯定跟我一样,看到CRUD这四个字母一头雾水,什么是CRUD呀?
这里我就为大家一一讲解:
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
是数据库操作最基本的操作
也是未来我们进入公司实习,最开始的最日常的工作
由此可见,对我们未来涞水非常的重要
所以,接下来就让我们来看看具体什么是CRUD吧
二、新增(Create)
在MySQL中 使用 insert 来往表里插入数据
但是大前提是,选中数据库,并且创建好对应的表
inse into 表名 values (列,列......)
括号里面的给出的数目和类型,都是要和表结构匹配的

那么这里就有人要问了,能不能插入字符串呢?
sql中,字符串是可以使用的
很多编程语言都没有“字符”类型,这种情况一般 ’ 和 " 都能表示字符串
但是MySQL 5,默认字符集是拉丁文,无法直接插入中文的,都需要在创建数据库的时候显示设定好的字符集


1、单行数据 + 全列插入
插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致
如果列的类型不匹配MySQL会尝试自动把字符串转成整数,就会报错

这个时候,可以通过特殊的写好,让这种操作可以成功,比如指定列进行插入
2、多行数据 + 指定列插入

这个时候,在name 列是没有数据的

当然也可以一行插入多组数据

这个时候有的人就会想:一次插入十个数据 和 十次分别插入一个,哪个执行效率会比较高呢?
显然是一次插入十个数据
因为MySQL是通过客户端去找服务器,服务器接收到sql之后再进行处理的
因此,每个sql都涉及上述这样的交互过程
所以显然第一种情况会更好
3、插入特殊类型
上述我么都是进行了插入数字、字符串,相对于来说就比较简单
接下来我们进行插入datetime 类型
比较简单的写法,直接使用特定的格式化字符串,表示时间日期


这属于MySQL支持的一种标准化格式
这是一个“标准化时间字符串”,MySQL会自动解析这个字符串,转换成8个字节的时间戳
当然也可使用 now() 这样的函数,直接获取当前的时间日期


三、查询(Retrieve)
查询是数据库操作中最常见的用法
学好查询非常重要
接下来就让我们一起进入查询的学习
1、全列查询
select * from 表名;
这里 * 被称为通配符
注意:
select * from 表名; 这个操作非常危险
一旦表中数据量过大,就会导致整个数据库崩盘
并且可能会影响到索引的使用

2、指定列查询
select 列名, 列名...... from 表名;

在查询的时候 要确保列的名字 和 表的列的名字是一致的(顺序是随意的)
3、表达式查询
可以在查询的过程中,指定表达式(把查询出来的每一行,都带入表达式进行运算)

有的人在看到新查的表会有疑惑,这是个新的表吗?会在数据库中改变表吗?
在当前的表达式查询中,并没有修改服务器上硬盘存储的数据本题,只是在查询结果的基础上进行运算的,得到的是一个**“临时表”**
此处查询出来的临时表,每个列的类型不在受限于原始表
这个临时表在查询炒作结束的时候,数据就消失了,数据的本题内容不会发生任何改变
select 进行的任意操作,都不会修改数据本体!!!
4、指定别名
select 表达式 as 别名 from 表名:

5、去重
查询的视乎,进行去重
查询结果中如果存在重复的元素,就只保留一个
select distinct 列名 from 表名;

6、排序
查询的同时,进行排序
select 列名 from 表名 order by 列名;
最后面那个列名,就是排序的一句(列名不一定出现在 select 的列名中)
这样就构成了升序排序

这样就是降序排序 就是在后面加了dese
字符串虽然也可以排序,但是这个时候排序大部分情况 不符合需求
“字典序”中文字典序是没有意义的

order by 可以指定多个列来进行排序
指定多个列的时候,就也是带有“优先级”的
前面的列,优先级高,后面的优先级低
优先级高的列值相同,才会比较优先级低的列

先按照数学成绩排序,如果数学成绩相同,在按照语文成绩排序

先按照数学成绩升序排,如果数学相同,再按照语文成绩降序排

先按照数学成绩降序排,数学相同,再按照语文成绩降序排
7、条件查询
查询的时候,指定筛选条件
条件满足,这个数据就被保留(最为结果集,最终的结果集,就是所有满足条件)
不满足,这个数据直接跳过
执行条件查询的时候,就会遍历整个表,把每个记录都带入到条件中,看条件是否满足

基本查询:
- 查询英语成绩不及格的同学即英语成绩(< 60)



1156

被折叠的 条评论
为什么被折叠?



