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
相关文档:
创建数据库:
mysql>create database test;
Query OK, 1 row affected (0.02 sec)
创建数据库表:
mysql>use test;
Database changed
创建数据库表:
myaql>create table user(SID VARCHAR(11), name VARCHAT(6) );
Query OK, 0 rows affected (0.08 sec)
插入记录:
mysql>insert int use ......
1.select max(id) from user;
2.select last_insert_id() as id from user limit 1;
(这个测试的返回id一直是0,有点问题)
3.储存过程
1)
oracel中
create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;
create or replace procedure ......
MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
1、IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
2、OUT 输出参数:该值可在存储过程内部被改变,并可返回
3、I ......
Mysql 存储例程的使用
一、 简介
存储过程(Stored Procedure)是一组为了完成特定功能的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 ......