MySQL除了基本的增删改查语句,还有一些容易被忽视的扩展语法。
1. SELECT
跳过前10个记录之后的5个记录
limit 10, 5;
随机抽取1条记录
ORDER BY RAND() limit 1;
GROUP BY event_id WITH ROLLUP;
连接操作使用using关键字,相当于 ON tbl1.common_field =
tbl2.common_field
SELECT tbl1.*, tbl2.* FROM tbl1 JOIN tbl2
USING(common_field) where ...
查询结果竖向显示 (\G替代分号)
SELECT* FROM alarm_info\G
2. CREATE TABLE & ALTER
TABLE
CREATE TABLE new_tbl_name
LIKE tbl_name;
INSERT INTO new_tbl_name SELECT * FROM
tbl_name;
添加自增类型的关键字
ALTER TABLE t ADD seq int unsigned not null
AUTO_INCREMENT PRIMARY KEY;
3. INSERT
添加元组,主键冲突时:
(覆盖) REPLACE INTO tbl_name
VALUES (...);
(不添加) INSERT IGNORE INTO
tbl_name VALUES (...)
(更新原有主键) INSERT INTO tbl_name VALUES (...) ON
DUPLICATE KEY UPDATE colname=expr;
可以使用values(row_name)函数替代前面row_name对应的值
4. SHOW
查看数据库列名(以下两种方式等价)
SHOW COLUMNS FROM table1
LIKE '%name%';
DESC table1
'%col_name%';
查看索引
SHOW INDEX FROM alarm_info;
5. Create Partition
当表项较多时,创建分区可以提高查询效率
PARTITION BY RANGE (year(rm_date) * 100 + month(rm_date))
(
PARTITION p201206 VALUES LESS THAN (201206),
)
阅读(666) | 评论(2) | 转发(0) |