数据库计数 数据库中count的用法
大家好,如果您还对数据库计数不太了解,没有关系,今天就由本站为大家分享数据库计数的知识,包括数据库中count的用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
excel数据透视表计数,求计数项
首先,在 Excel工作表中创建数据。可以将现有的电子表格或数据库中的数据导入到新 Excel工作表中。确保数据可用于数据透视表:
删除所有空行或空列。删除所有自动小计。确保第一行包含各列的描述性标题。确保各列只包含一种类型的数据—例如,一列中是文本,另一列中是数值。
·开始构建数据透视表
将“类别”字段从“数据透视表字段列表”拖动到数据透视表的“将行字段拖至此处”区域。
不要担心会将字段放错位置,以后可以随意移动它们。
请注意,向导会使用工作表中“类别”列的数据自动填充行。此外,“数据透视表字段列表”中所使用的字段以粗体显示。
SQL语句如何统计数据库当日信息数量
你说的当日是指某一天吗?首先你的时间字段的类型必须是datetime类型,如果不是就转换一下。
查询语句可以这样写,假设我们要查询2006年6月1日这一天的数据量。我不知道你的时间字段是不是datetime类型,所以进行了转换。
select count(*)
from表
where convert(varchar(8),cast(时间字段 as datetime),112)='20060601'
把“表”和“时间字段”替换成实际的名称就可以了
数据库求答案
二、填空题
1.数据库文件由数据文件和(日志)文件构成。
2.完整性约束主要包括(实体)完整性、域完整性和(参照)完整性。
3.数据库系统的应用结构C/S结构的中文全称是(客户服务器结构),B/S结构的中文全称是(浏览器/服务器结构)。
4. SQL server局部变量名字必须以(@)开头。
5.创建、修改和删除数据库对象的语句分别是create、(alter)和(drop)。
6.在SQL server中计算最大、最小、平均、求和与计数的聚合函数是max、min、(avg)、( sum)和( count)。
7.数据完整性用于保证数据库中数据的(正确性)、(一致性)和(可靠性)。
8.触发器在工作过程中会产生两张临时的表,即( inserted)和( deleted)。
9.create procedure是用来创建(存储过程)的语句。
10.根据题意补充代码:
Student表如表1所示,sc表如表3所示。
(1)查询学生总人数
代码:select count(*) as总人数from student
(2)计算C01课程的平均成绩
代码:Select avg(成绩) as平均成绩from sc where课程号=‘C01‘
(3)求计算机系的学生学号和姓名;
代码:select学号,姓名from student
Where系别=’计算机系’
(4)创建触发器,限制不能删除有人选的课程。
代码:
CREATE trigger limit ON课程
FOR delete
AS
IF EXISTS(SELECT课程.课程号 FROM课程 JOIN选课 ON课程.课程号=选课.课程号)
Print‘该课程有人选,不能删除’
rollback
评卷人得分
三、简答题
1.简述什么是实体完整性。
实体完整性是用于保证数据表的每一个特定实体记录都是唯一的。
2.简述视图与基本表的区别和联系。
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表其他内容。表是实表;视图是虚表。
6、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系:视图是在基本表之上建立的表,它的结构和内容都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
四、编程题
1表1:student表(学生表)
学号姓名性别年龄系别
1周杨男 18计算机系
2沈晔女 21经管系
3张宁萍女 19电子工程系
4李立初男 19艺术系
表2:course表(课程表)
课程号课程名学分
C01 SQLServer 4
C02数据结构 3
C03专业英语 2
表3:sc表(选课表)
学号课程号成绩
1 C01 88
2 C01 90
2 C02 70
3 C03 79
1、把course表中课程号为3的课程的学分修改为3。
Update course
Set学分=’3’
Where课程=’3’
Select* from course
2、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。
Select* from student
Where年龄>18
Order by学号 desc
3、在以上三个表中查询选的课程的“学分”为3,并且成绩大于80的学生的学号、姓名
和性别。
Select student.学号, student.姓名, student.性别fromstudent, course, sc
Where student.学号= sc.学号 and course.课程号= sc.课程号 and course.学分=’3’ and sc.成绩>’80’
4、将student表的列系别改为nchar(8)数据类型,并且不允许为空。
Alter table student
Alter column系别 nchar(8) not null
5、在student表中插入彭夏雨同学的记录。姓名:彭夏雨,学号:4,年龄:20
Insert student
Values(‘彭夏雨’,’4’,’ 20’)
6.声明一个长度为8的字符型变量“shuaige”,并赋初值为”陈俊杰”。请按前面的要求写
出相应的语句。
Declare@shuaige char(8)
Set@shuaige=’陈俊杰’
7、查询周杨同学所上课程的成绩。
Selectsc.成绩from student,sc
Wherestudent.学号=sc.学号 and姓名=’周扬’
数据库中count的用法
数据库中count的用法的用法你知道吗?下面我就跟你们详细介绍下数据库中count的用法的用法,希望对你们有用。
数据库中count的用法的用法如下:
count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧。count(*)它返回检索行的数目,不论其是否包含 NULL值。
SELECT从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。
例如:SELECT COUNT(*) FROM student;
COUNT(DISTINCT字段),返回不同的非NULL值数目;若找不到匹配的项,则COUNT(DISTINCT)返回 0。
这个优化仅适用于 MyISAM表,原因是这些表类型会储存一个函数返回记录的精确数量,而且非常容易访问。
对于事务型的存储引擎(InnoDB, BDB),存储一个精确行数的问题比较多,原因是可能会发生多重事物处理,而每个都可能会对行数产生影响。
例,创建用于测试的数据表,以进行count数据统计:
CREATE TABLE `user`(
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`password` varchar(10) DEFAULT NULL,
PRIMARY KEY(`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
测试数据为:
1 name1 123456
2 name2 123456
3 name3 123456
4 name4 NULL
请注意以下查询的返回结果:
1,select count(*) from `user`
2,select count(name) from `user`
3,select count(password) from `user`
输出结果:4,4,3
原因分析:
1,count(*)是对行数目进行计数,所以结果为4。
2,count(column_name)是对列中不为空的行进行计数,所以count(name)=4,而count(password)=3。
以上二点,在使用count函数时,要注意下。
使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息:
mysql> SELECT owner, COUNT(*) FROM pet;
ERROR 1140(42000): Mixing of GROUP columns(MIN(),MAX(),COUNT(),...)
with no GROUP columns is illegal if there is no GROUP BY clause
COUNT()和GROUP BY以各种方式分类你的数据。下列例子显示出进行动物普查操作的不同方式。
每种动物的数量:
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species| COUNT(*)|
+---------+----------+
| bird| 2|
| cat| 2|
| dog| 3|
| hamster| 1|
| snake| 1|
+---------+----------+
每种性别的动物数量:
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex| COUNT(*)|
+------+----------+
| NULL| 1|
| f| 4|
| m| 4|
+------+----------+
(在这个输出中,NULL表示“未知性别”。)
按种类和性别组合的动物数量:
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species| sex| COUNT(*)|
+---------+------+----------+
| bird| NULL| 1|
| bird| f| 1|
| cat| f| 1|
| cat| m| 1|
| dog| f| 1|
| dog| m| 2|
| hamster| f| 1|
| snake| m| 1|
+---------+------+----------+
若使用COUNT(),你不必检索整个表。例如,前面的查询,当只对狗和猫进行时,应为:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species='dog' OR species='cat'
-> GROUP BY species, sex;
+---------+------+----------+
| species| sex| COUNT(*)|
+---------+------+----------+
| cat| f| 1|
| cat| m| 1|
| dog| f| 1|
| dog| m| 2|
+---------+------+----------+
或,如果你仅需要知道已知性别的按性别的动物数目:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species| sex| COUNT(*)|
+---------+------+----------+
| bird| f| 1|
| cat| f| 1|
| cat| m| 1|
| dog| f| 1|
| dog| m| 2|
| hamster| f| 1|
| snake| m| 1|
+---------+------+----------+
顺便提下mysql的DISTINCT的关键字有很多你想不到的用处
1.在count不重复的记录的时候能用到
比如SELECT COUNT( DISTINCT id) FROM tablename;
就是计算talbebname表中id不同的记录有多少条
2,在需要返回记录不同的id的具体值的时候可以用
比如SELECT DISTINCT id FROM tablename;
返回talbebname表中不同的id的具体的值
3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义
比如SELECT DISTINCT id, type FROM tablename;
实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的结果不一样
4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的
5.其实还有另外一种解决方式,就是使用
SELECT id, type, count(DISTINCT id) FROM tablename
虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据)
返回的结果是只有id不同的所有结果和上面的4类型可以互补使用,就是看你需要什么样的数据了
文章分享结束,数据库计数和数据库中count的用法的答案你都知道了吗?欢迎再次光临本站哦!