没长正的技术专栏 勤动手、多思考

MySQL

2014-01-05

阅读:

2020-03-27

MySQL 常用语句积累

表信息查询

(1)查询表名称信息 SQL 语句

SELECT
	table_name,
	TABLE_COMMENT
FROM
	information_schema. TABLES
WHERE
	table_schema = 'xxx'
AND LENGTH(TABLE_COMMENT) > 0;
-- and table_type='base table';

(2)统计表的数据量

SELECT
	TABLE_NAME,
	TABLE_ROWS
FROM
	`information_schema`.`tables`
WHERE
	`table_schema` = 'XXXX';

(3)查询数据库表列及列字段备注信息

SELECT
	t.TABLE_NAME,
	t.TABLE_COMMENT,
	c.COLUMN_NAME,
	c.COLUMN_TYPE,
	c.COLUMN_COMMENT
FROM
	information_schema. TABLES t,
	INFORMATION_SCHEMA. COLUMNS c
WHERE
	c.TABLE_NAME = t.TABLE_NAME
	AND t.`TABLE_SCHEMA` = 'xxx'

(4) 查看进程、杀掉进程

-- 查询进程
SHOW PROCESSLIST;

-- 杀掉进程
kill pid;

函数

(1) 系统函数


-- <1.四舍五入

select ROUND(1.015,2) -- 保留两位小数  1.02

-- <2.非空 IFNULL(expr1,expr2)函数

select IFNULL(fieldName,0) from tableName;

-- <3. 时间函数 NOW()、DATE_FORMART(date,formart)  ...

select DATE_FORMAT(NOW(), "%Y-%m-%d %H:%i:%s")

(2) 自定义函数(使用)

-- ----------------------------
-- Function structure for getConversionRate
-- ----------------------------
DROP FUNCTION IF EXISTS `getConversionRate`;
DELIMITER ;;
CREATE FUNCTION `getConversionRate`(`reportCustomers` integer,`dealedCustomers` integer) RETURNS varchar(20) CHARSET utf8
BEGIN
	#转化率
	IF reportCustomers = 0 || dealedCustomers =0 THEN
		RETURN '';
	ELSE
		RETURN concat(ROUND((dealedCustomers*100)/reportCustomers,1),'%');
	END IF;
END
;;
DELIMITER ;

数据备份

(1)通过查询语句备份

create table newTableName select * from oldTableName;  -- 主键、唯一键等不会备份

(2) 插入数据

insert into newTableName(field1,field2) select field1,field2 from otherTabelName; -- insert into  select

参考:

菜鸟教程

SQL 优化

时间函数1

时间函数2


欢迎拍砖,多多交流,转载请注明出处:[没长正的技术专栏](http://blog.meizhangzheng.com) 如涉及侵权问题,请发送邮件到xsj34567@163.com,如情况属实本人将会尽快删除。


上一篇 数据库概述

下一篇 WEB安全

Comments

Content