MySQL数据库语句,计算某一列的和用select sum(b) from a就可以了。
下面来补充一些MySql的基本 *** 作命令。
注: <>表示参数、[]表示可选项
连接数据库:mysql> mysql -u<username>-p<password>
显示所有数据库:mysql>show databases
选择数据库:mysql> use <database name>
创建一个数据库:mysql>create database <database name>[charset <charset>]
删除一个数据库:mysql>drop database <database name>
修改数据库名:mysql无法直接修改数据库名!
显示所有表:mysql>show tables
删除一张表:mysql>drop table <table name>
修改表名:mysql> rename table <table name>to <new table name>
清空表:mysql>truncate <table name>
truncate和delete的区别:truncate相当于删表再重建一张相同结构的表, *** 作后得到一张全新表;delete只是删除数据,而且是按照行来删除,如果表中有自增型字段,其影响还在。
查看表结构:mysql>desc <table name>
快速建一张相似的表:mysql>create table <table name>like <another table>
有三个办法(我的连接直接写的都是id,如果不用这个连接那么就自己换掉)(1)union all(两张表直接union all),这个不会和union一样去掉重复的(万一有一个id一样,的学生,成绩也一样,那不是直接少算一科,当然如果你的id是科目id,大一大二不会重复,那就当我没说),而是直接全部排列出来,然后两张表变成一张表,直接sum就行了。你说的并集,举例就是大二有人转系,有人走,有人来,那么有人有大一成绩但是没有大二成绩,有人有大二成绩没有大一成绩,可是这两者都要显示出来,是这个意思吧。只是union all以后,外面要套一层select * from,不然如果把这个放在子查询那么就会报错,毕竟这是两张表,不是一张。(2)计算两遍一个左连接,一个右连接,得到的结果union(不是union all啊),这样去掉重复的就OK了,别忘了没有空集补0,我的isnull写的应该不规范,而且需要测试测试,毕竟也有不需要写的可能。举例,select a.id,a.student_id,a.score+isnull(b.score,0) aa from a left join b on a.id=b.idunion select b.id,b.student_id,isnull(a.score,0)+b.score aa from a right join b on a.id=b.id(3)办法差不多,不过这个是先求出只有大一成绩的,再求出只有大二成绩的,然后再求出两个成绩都有的。select a.id,a.student_id,a.score from a where a.id not in (select id from b)unionselect b.id,b.student_id,b.score from b where b.id not in (select id from a)union select a.id,a.student_id a.score+b.score score from a,b where a.id=b.id至于full join的写法,mysql我忘了有没有了,如果有更好,没有的话,那么就不那么好办了。1、创建一张表,同时插入数据。
2、按照价格排序.select * from 表名 order by 字段名 [升序|降序]。
3、按照class分组(group by),数据会分成三类,肉类、蔬菜类、水果类。
4、按照class分组后在对结果做一个处理,统计三个类总钱数分别是多少。这里sum是mysql提供的内置函数(聚合函数),统计合的。
5、分组了之后可以通过聚合函数可以做一系列的查询 *** 作,查询每个类中有多少个。
6、分组后面跟having做过滤。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)