来来mysql嵌套casewhen,是不是不能这么写?
直接加在语句最后就行了。UPDATE `member` SET score = (CASE WHEN score IS NOT NULL THEN score = 0 ELSE score = 1 END) where id =1;mysql数据库中CASE WHEN语句。case when语句,用于计算条件列表并返回多个可能结果表达式之一。CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。
mysql行级锁,没加上,是怎么回事?
1. 程序中非数据库交互操作导致事务挂起
将接口调用或者文件操作等这一类非数据库交互操作嵌入在 SQL 事务代码之中,那么整个事务很有可能因此挂起(接口不通等待超时或是上传下载大附件)。
2. 事务中包含性能较差的查询 SQL
事务中存在慢查询,导致同一个事务中的其他 DML 无法及时释放占用的行锁,引起行锁等待。
3. 单个事务中包含大量 SQL
通常是由于在事务代码中加入 for 循环导致,虽然单个 SQL 运行很快,但是 SQL 数量一大,事务就会很慢。
4. 级联更新 SQL 执行时间较久
这类 SQL 容易让人产生错觉,例如:update A set ... where ...in (select B) 这类级联更新,不仅会占用 A 表上的行锁,也会占用 B 表上的行锁,当 SQL 执行较久时,很容易引起 B 表上的行锁等待。
5. 磁盘问题导致的事务挂起
极少出现的情形,比如存储突然离线,SQL 执行会卡在内核调用磁盘的步骤上,一直等待,事务无法提交。
综上可以看出,如果事务长时间未提交,且事务中包含了 DML 操作,那么就有可能产生行锁等待,引起报错。
PHP+MySQL能做什么?
PHP+MySQL是今天用的最多的动态结合技术,是网站程序员开发应用软件系统的主流技术。
可以做一个小网站PHP+MYSQL
PHP随着发展是好几个名字的缩写,定义为PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。主要用于WEB开发,是开源的脚本语言。 MySQL是一个小型关系型数据库管理系统。 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。
数据库有哪些?
主流数据库主要有MySql、Oracle、db2、SqlServer、mongodb、PostgreSql
国内主要有:南大通用、武汉达梦、人大金仓、神州通用
要了解数据库之前,先要了解下关系型数据库和非关系型数据库。
关系型数据库将数据保存在不同的二维表里,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
非关系型数据库是基于键值对,不需要经过Sql层的解析,性能非常高。
MySql:关系型数据库,瑞典MySql公司开发,属于Oracle公司下的产品。MySql数据库体积小、速度快、成本低、代码开源,比较适合中小型项目开打。
Oracle:关系型数据库,甲骨文公司开发。在整个数据库领域一直处于领先地位,是目前世界上最流行的关系数据库管理系统,可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。高效率、高可靠性、高吞吐量。
db2:关系型数据库系统,IBM公司研制。主要应用于大型应用系统,具有较好的可伸缩性,支持从大型机到单用户环境。高层次、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
SqlServer:关系型数据库,微软公司产品。操作简单,具有可伸缩性、灵活性、扩充性好,而且价格便宜。
mongodb:非关系数据库,也叫文档型数据库,是一种NoSql的数据库。存放xml、json、bson类型的数据,数据结构由键值(key=>value)对组成。不需要编写sql语句,不需要建表,只需定制collection,mongodb自动创建collection。数据存储在物理内存中,使得热数据的读写变得十分快。高可用和集群架构拥有十分高的扩展性,十分适合文档格式的存储与查询。 不支持事务操作、占用空间过大。
PostgreSql:关系型数据库,美国加州大学计算机系研发。PostgreSql支持继承、函数重载、复杂的sql、大量的分析函数,非常适合数据仓库。PostgreSql对CPU利用率比较高,对资源消耗比较大,PostgreSql不支持类型自动转换,需要显示转换或添加CAST。另外sql在一些使用语法上有比较严格的限制,对事务的处理是自动提交事务。