mysql中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
相关文档:
====================================================
引自:http://blog.sina.com.cn/s/blog_538a9d1901008f9g.html
什么是C2级安全性?安全性的分类是怎样的?(2008-01-30 17:04:39)
D类:最低保护,保留给不能通过更高级别检查的系统
C1:谨慎保护,要求有基于用户级别的控制来保护数据,主要防� ......
我的系统是ubuntu6.06,最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用网上介绍的方法修改root用户的密码:
# mysqladmin -uroot -p password 'newpassword'
Enter pass ......
原理
QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用
QC。每个Cache都是以SQL文本作为key来存的。在应用QC之前,SQL文本不会被作任何处理。也就是说,两个SQL语句,只要相差哪怕是一个字符(例如大小写不一样;多一个空格等),那么这两个SQL将使用不同的一 ......
我有一个表
CREATE TABLE `test1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`desc` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
(1)以下查询会报错误:[Err] 1221 - Incorrect usage of UNION and ORDE ......