Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13176
  • 博文数量: 3
  • 博客积分: 94
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-30 20:52
文章分类
文章存档

2012年(3)

我的朋友

分类: Mysql/postgreSQL

2012-05-08 17:58:05

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) |
给主人留下些什么吧!~~

坏坏小丸子2012-05-12 16:41:20

- -呵呵,博主辛苦了~多谢分享~~

7大爷2012-05-09 22:41:17

刚刚入门~前来学习了~多多交流