更新mysql元数据_MySQL学习笔记_时间,多表更新,数据库元数据

MySQL技术内幕

一、MySQL基础知识

1.1、显示表中的列

SHOW COLUMNS FROM order_info like 'order%'

1.2、显示表

SHOW TABLES LIKE 'order%';

1.3、限制返回行数

例如从第10行开始返回5个记录

SELECT last_name FROM student ORDER BY birth DESC LIMIT 10,5;

1.4、时间相关

SELECT

CURDATE() AS 当前日期,

YEAR(NOW()) AS 年,

QUARTER(NOW()) AS 季节,

MONTH(NOW()) AS 月,

DAYOFMONTH(NOW()) AS 日,

DATE_ADD(NOW(),INTERVAL 10 DAY) 日期添加,

DATE_ADD(NOW(),INTERVAL 10 MONTH) 月份添加,

DATE_ADD(NOW(),INTERVAL -2 YEAR) 年份添加,

DATE_SUB(NOW(),INTERVAL 10 YEAR) 年份添加2,

TO_DAYS(NOW()) - TO_DAYS('2015-08-01') AS 日期相减,

TIMESTAMPDIFF(DAY,NOW(),'2015-08-01')AS 日期相减2,

UNIX_TIMESTAMP(NOW()) AS 时间 戳 ,

FROM_UNIXTIME(1439869720) 时间戳转,

STR_TO_DATE('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s') AS 时间

二、使用SQL管理数据

2.1、大小写:

数据库,数据表和视图的名字由服务器的操作系统规定(Windows不区分,Unix区分)

关键字和函数名不区分大小写,

存储函数、存储过程和事件的名字不分大小写,

数据列和索引的名字不区分大小写,

触发器的名字要区分大小写,

数据表的别名最好保存同样的的字母大小写组合

2.2、快速建表

CREATE TABLE kehu_20150819 LIKE kehu -- 只复制数据结构

CREATE TABLE kehu_20150818 AS SELECT * FROM kehu -- 复制表结构和数据

2.3、获取数据库元数据

列出数据库

SHOW DTABASES;

列出默认数据库或者给定数据库的表

SHOW TABLES;

SHOW TABLES FROM db_name;

查看数据表的create table语句

SHOW CREATE TABLE tbl_name;

查看数据表的数据列或者索引信息

SHOW COLUMNS FROM tbl_name;

SHOW INDEX FROM tbl_name;

最好的方法查询information_schema库

2.4、涉及多个数据包的删除和更新

2.4.1 一次删除多个数据表的数据行

DELETE t1,t2 FROM t1 INNER JOIN t2 ON t1.id = t2.id;

或者

DELETE FROM t1,t2 USING t1 INNER JOIN t2 ON t1.id = t2.id;

2.4.2 从数据表找出兵删除数据行

DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id =t2.id WHERE t2.id IS NULL;

或者

DELETE FROM t1 USING t1 LEFT JOIN t2 ON t1.id = t2.id WHERE t2.id IS NULL;

2.4.3 更新单表

UPDATE score ,grade_event SET score.score =score.score +1

WHERE score.event_id = grade_event.event_id

AND grade_event.date = '2015-08-01' ;

或者

UPDATE score SET score =score +1

WHERE event_id = (SELECT event_id FROM grade_event WHERE date = '2015-08-01' );

必须用到2.4.1写法的情况:

UPDATE t1,t2 SET t2.a = t1.a WHERE t2.id = t1.id;

三、数据类型

坐标值 POINT(10 20)

空值 NULL "\N"解释为NULL

SELECT

INET_ATON('192.168.1.1') AS IP转整数,

INET_NTOA(3232235777) AS 整数转IP;

四、查询优化

索引类型:

hash index 散列索引在使用"="或者"<=>"操作符进行的精确匹配比较操作速度快,但是在查找一个范围的

比较操作表现不佳,例如 id< 50 weight BETWEEN 100 AND 150

bit tree index 在使用=,>,<>,!=和BETWEEN 进行的精确操作比较或者范围比较操作里很有效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值