-
1、now():当前日期和时间;
2、curdate():当前日期;
3、curtime():当前时间;
4、date_add():日期变化,可以增加也可以减少
select date_add('2014-3-12',interval 3 week\2 year\365 day\5 month)
5、datediff():日期差值的计算
6、date_format():日期格式化
select date_format('2012-2-15','%m/%d/%Y')
查看全部 -
1、[not] between……and……:【不】在范围之内
2、[not] in ():【不】在列出值范围之内
3、is[not] null :【不】为空
查看全部 -
ERROR 1055 (42000): Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.s.type_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
报错的解决方法:
修改设置
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
查看全部 -
数据表A中有的记录,才能在B表中显示出来,A中没有的记录B表也不能显示
查看全部 -
-- 通过tdb_goods_cates数据表来更新tdb_goods表
UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name
SET goods_cate = cate_id ;
查看全部 -
老师的代码问题:
可以把 这个语句理解为 SELECT goods_id, cate_name FROM ( tdb_goods INNER JOIN tdb_goods_cates) ON...
将括号中部分作为一个整体。
查看全部 -
哈哈哈好好
查看全部 -
any some all关键字的使用
查看全部 -
1、ceil():向上取整;floor():向下取整
2、div:整数除法;select 3 div 4 结果为0
3、mod:取余数,等价于% select 3 %/mod 4,结果为3 也可对浮点数取余数。如select 3.5 % 3 结果为0.5
4、power():幂运算
5、round():四舍五入,取小数位数
6、truncate():取小数位数,但不四舍五入,数字截取
查看全部 -
1、countcat():字符连接;select concat('imooc','-','mysql') from db
2、countcat_ws():使用指定的分隔符进行字符连接;select concat_ws('|','A','B','C')
3、format():数字格式化,返回一个字符串;select format(12345.67,2):小数点后保留两位
4、upper():字符大写;
5、lower():字符小写;
6、left():获取左侧字符;
7、right():获取右侧字符;
8、length():获取字符串长度;
9、ltrim():删除前导空格;rtrim():删除后续空格;trim():删除前导及后续空格;select trim(leading '?' from '??mysql???'):删除前导的‘?’
select trim(trailing '?' from '??mysql???'):删除后续的‘?’
select trim(both '?' from '??mysql???'):删除所有的‘?’,但是无法删除中间的‘?’,需要使用replace()函数
replace('??my??sql???','?'," ")
10、substring():截取字符串
substring('mysql',1,2):从第1位取2位,起始为hi也可以为负值,但长度不能为负值
11、like:模式匹配
在mysql中,%代表任意多个字符,_代表任意一个字符。
使%或者_不为通配符的方法:
select * from test where first_name like '%1%%' escape '1':1后面的%不在为通配符,而是代表%
查看全部 -
sql: 结构化查询语言,这里的查询并不是查找,而是所有sql命令的统称。
同理:子查询的外层查询并不只是select,可以是select insert update set do...
查看全部 -
自动编号 auto_increment的数字类型必须为数值型,如果为浮点型,小数位数必须为0
查看全部 -
sex enum('1','2','3') default '3'
sex只能从1 2 3 中取值,默认sex的值为男;
查看全部 -
create table tb3( -> id smallint unsigned auto_increment primary key, -> username varchar(20) not null unique key, -> sex enum('1','2','3') default '3' -> ); select *from tb3;+----+----------+------+| id | username | sex |+----+----------+------+ | 1 | Tom | 3 | +----+----------+------+
查看全部 -
关于本小节中,count(id) >= 2;的测试!!!
以下面的数据表为例:

注意表中sex列, 其中值为NULL的有2个,值为0的有3个,值为2的有1个,值为3的有1个。
上面这步很重要!!接着我们来测试一下:
当 count(id) >= 1 时:

当 count(id) >= 2 时:

当 count(id) >= 3 时:

当 count(id) >= 4 时:

由此可见, count(id) >= 2 输出的结果跟id毫无关系! 它只跟set列中具有相同值的个数有关,
值为NULL的有2个,值为0的有3个,值为2的有1个,值为3的有1个
当 count(id) >= 1 时, 输出的是NULL,0,2,3。因为他们的数目都满足>=1
当 count(id) >= 2 时, 输出的是NULL,0。因为他们对应的数目分别为2和3,都满足>=2
当 count(id) >= 3 时, 输出的是0, 因为值为0的个数为3,满足>=3
当 count(id) >= 4 时, 没有输出。因为没有满足条件的元素。
这问题让我纠结的半个小时,看了一些慕友的问答后,更是把我搞糊涂了,说什么输出的是非NULL值,还有说什么跟id有什么什么关系。经过测试,输出的结果只跟set列具有相同的值的个数有关系,跟是不是NULL没关系,跟id也没关系。
你可以把count(id) >= 2 改成count(username) >= 2或者改成count(age) >= 2或者改成count(password) >= 2,输出的结果都是一样的
查看全部
举报