函数及分组统计和数据库备份,恢复

函数分组统计

合计函数-COUNT

  • 基本句型:
    SELECT COUNT(*)|COUNT(列名) FROM tablename [WHERE where_definition];(COUNT和后面的括号之间没有空格,COUNT(col)不会计入NULL)
  • 统计一个班共有多少学生?
    SELECT COUNT(*) FROM students;
  • 统计数学成绩大于90的学生有多少个?
    SELECT COUNT(*) FROM students WHERE math > 90;
  • 统计总分大于250的人数有多少?
    SELECT COUNT(*) FROM students WHERE (chinese + english + math) > 90;

合计函数-SUM

  • 注意:sum仅对数值起作用,否则会报错;对多列求和,“,”号不能少。(sum(A+B+C),A,B,C为三列,如果某行记录中A列值为NULL,则不统计这行。)
  • 基本句型:
    SELECT SUM(列名){,SUM(列名)...} FROM tablename [WHERE where_definition]
  • 统计一个班级数学总成绩
    SELECT SUM(math) FROM students;
  • 统计一个班级语文、英语、数学各科的总成绩
    SELECT SUM(chinese),SUM(english),SUM(math) FROM students;
  • 统计一个班级语文、英语、数学的成绩总和
    SELECT SUM(chinese + english + math) FROM students;
  • 统计一个班级语文成绩平均分
    SELECT SUM(chinese)/COUNT(*) FROM students;

合计函数-AVG

  • AVG函数返回满足WHERE条件的一列的平均值
  • 基本句型:
    SELECT AVG(col) FROM table;
  • 求一个班级数学平均分
    SELECT AVG(math) FROM students;(AVG不会计入NULL)
  • 求一个班级总分平均分
    SELECT AVG(chinese + english + math) FROM students;

合计函数-MAX/MIN

  • 基本句型:(MAX/MIN函数返回满足WHERE条件的一列的最大/最小值)
    SELECT MAX(col)/MIN(col) FROM table [WHERE where_definition];
  • 求班级最高分和最低分(数值范围在统计中特别有用)
    SELECT MAX(chinese + english + math) FROM students;
    SELECT MIN(chinese + english + math) FROM students;

分组语句-GROUP BY [HAVING]

  • 使用GROUP BY子句对列进行分组
    基本句型:
    SELECT col1,col2... FROM table GROUP BY column;

注意:可以使用“`”(英文输入状态下ESC按键下的那个按键)把关键字包含起来,当作普通字符串对待。比如:order可以作为表名存在,而不会被认为ORDER关键字。(但是不推荐)

  • 对订单中商品归类后,显示每一类商品的总价
    SELECT product,SUM(price) FROM t_order GROUP BY product;
  • 使用having子句过滤(GROUP BY后不能使用WHERE )
    查询购买了几类商品,并且每类总价大于100的商品
    SELECT product,SUM(price) FROM t_order GROUP BY product HAVING SUM(price) > 100;

一些函数

函数及分组统计和数据库备份,恢复_第1张图片
时间日期相关函数

函数及分组统计和数据库备份,恢复_第2张图片
数学相关函数

函数及分组统计和数据库备份,恢复_第3张图片
字符串相关函数

数据库备份,恢复

备份

  • 在MySQL的bin文件里有一个mysqldump.exe程序。(在dos命令模式下执行命令)
    mysqldump -h localhost -u root -p mydb1>d:\\mydb1.sql(两个“\”是因为“\m”是转义字符)

恢复

  • 先创建数据库名,并选择数据库
    方式一:SOURCE d:\\mydb1.sql;(在mysql下执行该命令)
    方式二:mysql -u root -p mydb1(在dos命令行下执行该命令)

你可能感兴趣的:(函数及分组统计和数据库备份,恢复)