Mysql 操作技巧

來源:互聯網
上載者:User

標籤:

  1. 複製表結構 + 表資料
    Mysql> create tables t2 like t1;
    Mysql> insert into t2 select * from t1; 
  2. mysql 索引
    a、Alert Table 用來建立普通索引、Unique 唯一索引 (當前列數值不可重複) 或 Primary Key 主鍵索引
    Mysql> alter table table_name add index index_name(column_list);
    Mysql> alter table table_name add Unique(column_list);
    Mysql> alter table table_name add Primary Key(column_list);

    b、creat index (不可處理主鍵索引)
    Mysql> create index index_name on table_name(column_list);
    Mysql> create Unique index index_name on table_name(column_list);

    c、drop index(不可處理主鍵索引)
    Mysql> drop index index_name on table_name;

    d、alter table drop
    Mysql> alter table table_name drop index index_name;
    Mysql> alter table table_name drop primary key;

  3. mysql 視圖
    建立視圖 (視圖可根據主表即時更新)
    Mysql> create view v_t1 as select * from t1 where id>4 and id <11;
    Mysql> show tables;
    Mysql> show create view v_t1;
    Mysql> drop view v_t1;

  4. Mysql 內建函數
    concat ("string1","string2") // 連結字串
    lcase(STRING) // 轉換小寫
    ucase(string) // 轉換大寫
    length(string) //string 長度
    ltrim(string) // 去除 string 前面空格
    rtrim(string) // 去除 string 後面空格
    repeat(string,count) // 重複 string count 次
    replace(str,search_str,replace_str) //str 中用 replace_str 替換 search_str

  5. mysql 預先處理語句
    設定 stmt1 預先處理,傳遞一個資料作為 where 判斷條件
    Mysql> prepare stmt1 from ‘select * from t1 where id>?‘;
    設定一個變數
    Mysql> set @i=5;
    執行 stmt1 預先處理
    Mysql> execute stmt1 using @i;
    刪除預先處理 stmt1
    Mysql> drop prepare stmt1;

  6. mysql 交易處理 (Engine=MyISAM 表引擎不支援事務機制)
    查看錶引擎是否支援
    Mysql> show create table t1;
    設定表引擎為 innodb
    Mysql> alter table t1 engine=innodb;
    關閉自動認可功能
    Mysql> set autocommit=0;
    查看當前 autocommit 設定
    Mysql> select @@autocommit;
    提交
    Mysql> commit;
    從表 t1 中刪除了一條記錄
    Mysql> delete from t1 where id =11;
    此時做一個 p1 還原點
    Mysql> savepoint p1;
    再次從表 t1 中刪除一條記錄
    Mysql> delete from t1 where id =10;
    再次做一個 p2 還原點
    Mysql> savepoint p2;
    此時恢複到 p1 還原點,當然後面 p2 這些還原點自動失效
    Mysql> rollback to p1;
    退回到最原始的還原點
    Mysql>roolback;

  7. Mysql 儲存 (批量處理)
    例子:建立儲存 P1, 建立 100 個使用者;
    Mysql> \d // 執行 “;” 臨時替換為 “//”
    Mysql> create proceduce p1()
    ->begin
    ->set @i=1;
    ->while @i<100 do
    ->insert into t1(name) value(concat("user",@i));
    ->set @[email protected]+1;
    ->end while;
    ->end//
    Mysql> \d ;
    查看儲存
    Mysql> show procedure status\G
    Mysql> show create procedure p1\G
    執行
    Mysql> call p1();

  8. Mysql 觸發器
    修改 delimiter 為 //
    Mysql> \d // 
    例子:建立觸發器 tg1,當向 t1 表插入資料時,t2 表也被插入資料
    Mysql> create trigger tg1 before insert on t1 for each row
    ->begin
    ->insert into t2(name) values(new.name);
    ->end//
    Mysql> \d ;
    查看觸發器
    Mysql> show triggers;
    刪除觸發器
    Mysql> drop trigger tg1;
    建立觸發器 tg2,當向 t1 表刪除資料時,t2 表也被刪除資料
    Mysql> create trigger tg2 before delete on t1 for each row
    ->begin
    ->delete from t2 where name=old.name;
    ->end//

    建立觸發器 tg3,當向 t1 表更新資料時,t2 表也被更新資料
    Mysql> create trigger tg3 before update on t1 for each row
    ->begin
    ->update t2 set name=new.name where name=old.name;
    ->end//

  9. 重排 auto_increment
    Mysql 資料庫自動成長的 ID 恢複重新排序
    Mysql> alter table tablename auto_increment = 1;

    Other:
    聯集查詢
    Mysql> select * from t1 union select *from t2
    快速刪除
    Mysql> truncate table tablename;

 

Mysql 操作技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.