MySql:sql基础语句以及案例(2)(mysql例题讲解)

分组 GROUP BY

基本语法

案例:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

2. WITH ROLLUP           with rollup

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

连接的使用

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

例:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

使用MySQL的INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

以上SQL等价于:

2.LEFT JOIN

LEFT JOIN 会读取左边数据表的全部数据,即使右边表无对应数据

以 runoob_tbl 为左表,tcount_tbl 为右表,理解 MySQL LEFT JOIN 的应用:

MySql:sql基础语句以及案例(2)(mysql例题讲解)

RIGHT JOIN 与 left join 相反 会读取右边数据表的全部数据,即使左边边表无对应数据。

NULL 值得处理

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。

不能使用 = NULL 或 != NULL 在列中查找 NULL 值 

 MySql正则表达式

MySql:sql基础语句以及案例(2)(mysql例题讲解)

查找name字段中以’st’为开头的所有数据:

删除,添加或修改表字段

如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:

使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。尝试如下实例:

正文完
 0