IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。
IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。
mysql> select IFNULL(1,0);
-> 1
mysql> select IFNULL(0,10);
-> 0
mysql> select IFNULL(1/0,10);
-> 10
mysql> select IFNULL(1/0,'yes');
-> 'yes'
FROM_UNIXTIME()函数把整数类型的时间戳转换成日期格式
FROM_UNIXTIME(1249488000, '%Y-%m-%d %H:%i:%s')
UNIX_TIMESTAMP()函数把日期格式转换成时间戳
UNIX_TIMESTAMP('2009-08-06')
UNIX_TIMESTAMP函数的参数如果是常量,需要加单引号。如果是变量,不要加单引号,否则会导致sql语句参数数量不正确的错误。
-- 字符串转日期
str_to_date('2012-10-11 16:42:30', '%Y-%m-%d %H:%i:%s')
mysql 批量更新
如果要更新很多条数据,update语句并不能批量更新,只能多次执行update语句,每次更新一条数据,性能很差。可以使用insert语句来实现批量更新的功能。
指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致UNIQUE索引或PRIMARY KEY中出现重复值,则执行UPDATE操作。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:
mysql> INSERT INTO 表名 (a,b,c) VALUES (1,2,3)
-> ON DUPLICATE KEY UPDATE c=c+1;
mysql> UPDATE table SET c=c+1 WHERE a=1;
mysql 获取日期字符串
date_format(now(), '%Y-%m-%d')
Y 4位年份 m 月份 d 日
mysql 获取月份,月份从1到12
month(now())
mybatis insert操作后返回主键
针对自增主键的表,在插入时不需要设置主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:
<insert id="add" parameterType="vo.Category" useGeneratedKeys="true" keyProperty="id">
keyProperty是字段对应的属性名。
<insert id="add" parameterType="vo.Category">
<selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>
插入一行记录,获得记录对应的对象的id属性,就是记录的属性值。
mysql查看正在处理的任务
show processlist;
修改表名的命令:
ALTER TABLE table_name RENAME TO new_table_name;
修改字段名称和类型的命令:
alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空]
添加字段
alter table 表名 add column 字段名 字段类型
删除字段
alter table 表名 drop column 字段名
在mysql client环境中查看mysql的配置
show variables like '%配置项的名称%'
在mysql client环境中查找某表名
select table_name from information_schema.tables where table_name like '%xxx%'
show tables from 数据库名 like '%xxx%'
更好
ubuntu修改mysql默认编码为utf8
sudo vim /etc/mysql/my.cnf
在[mysqld]下面加上:
character_set_server=utf8
停止mysql
sudo service mysql stop
启动mysql
sudo service mysql start
查看数据库表空间占用情况
select * from table db_table_size;
创建表时用select语句给表填充数据
create table a (id int not null auto_increment, primary key(id)) select * from b;
查询存储过程
show procedure status;
查看存储过程创建代码
show create procedure 存储过程名;
删除存储过程
drop procedure 存储过程名 if exists
复制mysql数据库命令
mysqldump 源数据库 -h 主机 -u用户名 -p密码 --add-drop-table | mysql -h 主机 目标数据库 -u用户名 -p密码
#查询数据库所有表名
select table_name from information_schema.tables where table_schema = '库名';
分享到:
相关推荐
【狂神MySQL笔记】是一份全面且深入的MySQL学习资源,涵盖了从基础到高级的各种MySQL技术知识点。作为数据库领域的核心工具,MySQL因其高效、稳定、开源等特性,被广泛应用于各种规模的企业和项目中。这份笔记旨在...
尚硅谷的MySQL笔记可能是为了帮助学习者深入理解和掌握MySQL的相关知识而编写的。这份笔记可能包含了从基础概念到高级特性的全面讲解,包括但不限于SQL语言、数据类型、数据库设计、索引、事务处理、视图、存储过程...
这份"MySQL笔记"涵盖了其主要知识点,并且每个概念都配有实例,使得学习更为直观易懂。以下是对这些笔记的详细解析: 一、基础概念 MySQL的基础部分包括数据库、表、字段、记录等基本元素的创建、修改和删除。理解...
MySQL笔记
"狂神说Java"的MySQL笔记可能深入探讨了如何在Java编程环境中与MySQL进行交互,这对于我们理解数据库管理和开发至关重要。以下是对这个主题的详细阐述: 1. **MySQL基础**: - 数据库概念:MySQL是一个用于存储和...
mysql笔记
总的来说,这个MySQL笔记涵盖了数据库管理的各个方面,通过一天的学习,你可以建立起对MySQL的初步理解,并具备基本的数据库操作能力。然而,要想成为真正的MySQL专家,还需要不断实践和深入学习更高级的主题,如...
mysql笔记 mysql笔记 mysql笔记 mysql笔记 mysql笔记 mysql笔记 mysql笔记 mysql笔记
这份"mysql笔记及考试答案.zip"压缩包包含了深入学习MySQL的重要资源,包括一个PDF格式的MySQL笔记和一个包含考试试题及答案的文件,这对于复习MySQL知识或者准备相关考试非常有帮助。 MySQL笔记可能涵盖了以下几个...
MySQL笔记.md
老杜MySQL笔记总结.md(全)
这份"MySQL笔记资料"涵盖了全面的MySQL学习内容,包括基础理论、实战技巧以及优化策略,旨在帮助用户深入理解和掌握这个强大的数据存储与管理工具。 一、MySQL基础知识 在MySQL的学习之初,你需要了解其基本概念,...
这只是MySQL笔记的部分内容,实际上MySQL的功能远不止这些,还包括视图、索引、事务处理、存储过程、触发器、函数等多个高级特性。了解并掌握这些内容,将有助于在实际项目中更高效地管理和操作数据。
"MySQL笔记合集.pdf" MySQL 是一款开源的关系数据库管理系统(RDBMS),是一种relational database management system(RDBMS),是当下最流行的数据库管理系统之一。MySQL 的主要特点是开源、免费、跨平台、支持...
本笔记将深入探讨MySQL的基础知识,帮助你全面掌握这个强大的数据存储和管理工具。 首先,我们要理解数据库的基本概念。数据库是一个组织和存储数据的系统,允许用户通过结构化查询语言(SQL)进行数据的检索、更新...
- 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果 - 如果只有INSERT和SELECT操作,可以选择Archive,...
MySQL笔记,老杜,初级MySQL笔记