MySQL之二——记录

1.记录的操作

  • INSERT    插入记录

1)方式一

INSERT   [INTO]   tb_name   [(col_name,...)]   {VALUES | VALUE}   ({expr | DEFAULT},...),(...),...

注:如果要为默认自动编号的值赋值,可以将其设置为NULL

注:如果要为默认自动编号的值赋值,可以将其设置为DEFAULT

注:插入的值可以是数值也可以是表达式(字符/数字)

注:可以用默认值为设置了默认字段的值赋值。

注:插入多条记录,要在中间用逗号分隔。

2)方式二

INSERT   [INTO]   tb_name   SET  col_name={expr | DEFAULT},...

说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery);另外,对于上一种方法可以一次插入多条记录,而此方法一次只能插入一条记录。

注:这种方式可以只添加需要字段的内容,默认值可以通过自动补全

3)方式三

INSERT   [INTO]   tb_name   [(col_name,...)]   SELECT   ...

说明:此方法可以将查询结果插入到指定数据表。

注:这样就可以将一个表中的数据插入到另一个数据表中,但也要注意数据项不匹配的问题,比如:

 

 

  • UPDATE  更新记录

单表更新

UPDATE   [LOW_PRIORITY]   [IGNORE]   table_reference   SET   col_name1={expr1 | DEFAULT}   [,col_name2={exp2 | DEFAULT}]   ...   [WHERE where_condition]

注:如果省略WHERE条件,则会导致整个表的记录都被更新,eg如下:

 

注:也可以对单一的表中的多条记录进行操作,eg如下:

 

注:如果想对某些条件进行操作的话,必须加上WHERE条件,比如我们要为id为偶数的对应年龄加上10,则可以:

注意: id % 2 = 0表示 id 为偶数,是 “=” 号。

 

  • DELETE  删除记录

单表删除

DELETE   FROM   tb_name   [WHERE   where_condition]

注:如果不加WHERE条件,则表示删除所有记录。如果删除某些特定的记录,需要加条件,比如删除第六条记录可写为:

问题:如果此时再新插入一条记录,那么它的标号id将是几?

注:记录会添加当前记录中id号最大的,然后+1,并不会补充中间被删除的记录的id号。

 

  • SELECT   查找记录

SELECT   select_expr   [select_expr   ...]

[

     FROM   table_references

     [WHERE   where_condition]

     [GROUP   BY   {col_name | position}   [ASC | DESC],...]

     [HAVING   where_condition]

     [ORDER   BY   {col_name | expr | position}   [ASC | DESC],...]

     [LIMIT    {[offset,]   row_count | row_count   OFFSET   offset}]

]

查询表达式  select_expr:

每一个表达式表示想要的一列,必须有至少一个。

多个列之间以英文逗号分隔。

星号(*)表示所有的列。tb_name.* 可以表示命名表的所有列。(为了解决多表连接问题出现相同字段的情况)

查询表达式可以使用 [AS]   alias_name 为其赋予别名。

别名可用于GROUP BY,ORDER BY或HAVING子句。

注:SELECT语句字段的别名影响以后的结果集中字段的别名;SELECT语句中字段出现的顺序将影响以后结果集中字段出现的顺序

 

  • WHERE   条件表达式

对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。

在WHERE表达式中,可以使用MySQL支持的函数或运算符。

 

  • GROUP BY   查询结果分组

[GROUP   BY   {col_name | position]   [ASC | DESC],...]

注:ASC升序是默认的,DESC降序

这块看到一篇特别棒的博客,自己理解的很有意思,分享一下链接:https://blog.csdn.net/intmainhhh/article/details/80777582

里面提到的中间的虚拟表select *的结果,再通过虚拟表得到最后select 实际需要的字段,然后输出。

 

  • HAVING   分组条件,即我们在GROUP BY分组的时候可以对一条记录分组也可以对某些记录分组

[HAVING   where_condition]

错误原因:如果在采用HAVIING进行分组条件的指定时, 一定要保证分组的条件要么为一个聚合函数,要么保证这个字段必须出现在当前的SELECT语句当中,否则会报错。

注:聚合函数是指:max(),min(),count(),avg(),sum()等,这类函数只有一个返回结果。

 

  • ORDER   BY   对查询结果进行排序

[ORDER   BY   {col_name | expr | position}   [ASC | DESC],...]

如果某一项相同,则可以按照一个新的顺序规则进行排序然后输出:

 

  • LIMIT   限制查询结果返回的数量

[LIMIT   {[offset,]   row_count | row_count   OFFSET   offset}]

注:如果只有一个数字,代表从第一条记录开始返回,共返回这个数字条记录数。如果想要从中间某条开始返回并返回其后连续的某几条记录,则需要多个参数,如下图所示:

注:返回的并不是预期的3,4条记录,因为当前的SELECT语句当前的记录偏移值OFFSET是从0开始编号,所以,如果想输出3,4条记录,则可以:

再举一例说明:

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值