本节目标:
1. CRUD
2. 新增(Create)
语法:inesert into 表名values(值,值,值....);
上述插入数据的时候,虽然values后面,第一列写的是字符串类型,会尝试自动转成int.'100'=> 100
第二列写的是 整数类型,会尝试自动转成字符串,200 => '200'
上述这样的转换,就是“隐式类型转换”
对于Java来说,是非常排斥的.
比较支持隐式类型转换,称为“弱类型系统”
不太支持隐式类型转换,称为“强类型系统”
2.1 单行数据 + 全列插入
insert into 表名(列名,列名...)values(值,值....)
2.2 多行数据 + 指定列插入
语法:insert into 表名values(值,值....)(值,值....)(值,值....)
2.3插入时间
注意:2024-05-11 中间要用-隔开20:53:00 中间用:隔开
3. 查询(Retrieve)
3.1全列查询
(查询出这个表中的所有的行和所有的列.)
语法:select * from 表名;
*称为“通配符”
*可以指代所有的列.
3.2 指定列查询
(查询的时候手动指定列名.得到的结果,就是和列名关联的. select 列名, 列名 ...... from 表名;)
比如当前只需要关注两列,一共有20列.
使用指定列查询,得到的数据量就比全列查询要少很多.
3.3 查询字段为表达式
这样的结果,只是数据库查询过程,生成的“临时表’
数据库本体(数据库服务器硬盘上的数据)是没有任何改变的~
3.4 别名
如果表达式简单,一眼就能看明白,如果表达式比较复杂,就没法直观观察了 ....
此处就可以给表达式取别名. 此时别名就是查询结果的列名.
语法:select 列名 ,列名(或表达式)as 别名 from 表名;
as可以省略
3.5 去重:DISTINCT
语法:select distinct 列名 from表名;
去重的意思,多个行的数据,如果出现相同的值,就会只保留一份 ~~
3.6 排序:ORDER BY
-- ASC 为升序(从小到大)-- DESC 为降序(从大到小)-- 默认为 ASC
3.6.1.升序排序
3.6.2降序排序
3.6.3. 使用表达式及别名排序
3.6.4. 可以对多个字段进行排序,排序优先级随书写顺序
3.7 条件查询:WHERE
注意MySQL没有=号在where中,=表示比较相等,在其他地方,=还可能表示赋值
注 :1. WHERE 条件可以使用表达式,但不能使用别名。2. AND 的优先级高于 OR ,在同时使用时,需要使用小括号 () 包裹优先执行的部分
基本运算符
and与or
范围查询
模糊查询 LIKE
3.8 分页查询:LIMIT
select*容易查询出太多的数据,使机器挂了
通过指定列查询,虽然你查到的结果是变少了很多,但是如果行数足够多的话,仍然是有可能会把机器搞出问题的.
此时更稳妥的做法,就是“分页查询”,限制一次查询,最多能查到多少个记录 ~~
语法:select 列名 from 表名 limit N;
语法:UPDATE 表名 SET 表达式 WHERE 条件;
3.9删除
小结
1) insert
2) select
a)全列查询
select * from 表名;b)指定列查询
select 列名 from 表名;c)指定表达式查询
select 表达式from表名;d)查询指定别名
select 表达式as别名 from表名;e)查询的时候进行去重
select distinct 列名 from 表名;f)查询的时候进行排序
select 列名 from 表名 order by列desc,列 ....;g)条件查询[重要]
select 列名from 表名 where 条件;所有select操作都只是针对查询结果临时表,做出计算/调整不会影响到整个硬盘上的原始数据.
列和列 之间进行的操作.
到这里竹竹零就要和大家说再见了,希望时光不负赶路人,愿我们做最好的自己!!
如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!
您的鼓励就是对我最大的支持! ! !