駱昊的Java空間

          傳道、授業(yè)、解惑,何有于我哉! Java SE / Java ME / Java EE / C / C++ / C#

          關(guān)于MySQL的簡單總結(jié)

           

          MySQL是最著名的開源數(shù)據(jù)庫,容易上手且功能強(qiáng)大,Yahoo!、BBC News等著名站點(diǎn)都使用了MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲

          Linux環(huán)境中可以通過/etc/my.cnfMySQL服務(wù)器進(jìn)行配置(在Windows中是一個叫my.ini的文件),有接近300個配置參數(shù)可以用來在啟動MySQL服務(wù)器時控制其行為(包括:內(nèi)存、日志、錯誤報告等等)

          Linux環(huán)境中可以通過service mysqld start來啟動MySQL服務(wù),通過service mysqld stop來停止MySQL服務(wù)(在Windows中可以通過net start mysql來啟動,通過net stop mysql來停止,也可以通過控制面板中的性能和維護(hù)中的管理工具中的服務(wù)來啟動和停止MySQL服務(wù))

          在服務(wù)器啟動后,可以通過輸入mysqladmin –u root –p variables命令來查看配置參數(shù),可以通過在mysql客戶端中輸入show variables;來查看

          MySQL支持多種存儲引擎,可以通過show engines;來查看MySQL支持的所有存儲引擎,或通過show variables like ‘%storage_engine%’;來查看當(dāng)前使用的存儲引擎;如果需要修改所使用的存儲引擎可以用alter table t_YYY type=XXX;alter table t_YYY engine=XXX;來修改指定的表所使用的存儲引擎,也可以通過在my.cnfmy.ini)文件中加入default-storage-engine=XXX來指定默認(rèn)的存儲引擎,下面是對各種存儲引擎的一個簡單說明:

          ² MyISAM:默認(rèn)的MySQL插件式存儲引擎,不支持事務(wù),但是在Web、數(shù)據(jù)倉儲等大數(shù)據(jù)量應(yīng)用環(huán)境下最常使用的存儲引擎之一

          ² InnoDB:最常用的用于事務(wù)處理的存儲引擎,具有眾多特性,包括ACID事務(wù)支持,在Windows環(huán)境下是默認(rèn)的存儲引擎

          ² BDB:可替代InnoDB的事務(wù)引擎,支持COMMIT、ROLLBACK和其他事務(wù)特性,但在5.1之后的版本中不復(fù)存在

          ² Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問,但服務(wù)器關(guān)閉時不能持久存儲

          ² MRG_MYISAM:允許MySQL DBA或開發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們,對于數(shù)據(jù)倉儲等VLDB環(huán)境十分適合

          ² Archive:為大量很少引用的歷史、歸檔、或安全審計(jì)信息的存儲和檢索提供了完美的解決方案

          ² Federated:能夠?qū)⒍鄠€分離的MySQL服務(wù)器鏈接起來,從多個物理服務(wù)器創(chuàng)建一個邏輯數(shù)據(jù)庫,適合于分布式環(huán)境或數(shù)據(jù)集群環(huán)境

          ² NDBClusterMySQL的簇式數(shù)據(jù)庫引擎,尤其適合于具有高性能查找要求的應(yīng)用程序,這類查找需求還要求具有最高的正常工作時間和可用性

           

          MySQL支持豐富的數(shù)據(jù)類型:

          ² 時間日期類:DATE / DATETIME / TIME / TIMESTAMP / YEAR

          ² 數(shù)值類:BIGINT / BIT / DECIMAL / FLOAT / INT / MEDIUMINT / SMALLINT / TINYINT

          ² 字符()類:BINARY / BLOB / LONGBLOB / MEDIUMBLOB / TINYBLOB / CHAR / ENUM / SET / TEXT / LONGTEXT / MEDIUMTEXT / TINYTEXT / VARBINARY / VARCHAR

          MySQL圖形化的客戶端:

          ² PHPMyAdminhttp://www.phpmyadmin.net/

          ² MySQL Administratorhttp://www.mysql.com/products/tools/administrator

          ² SQLyoghttp://www.webyog.com/en

          MySQL常用命令和操作:

          1.     登錄MySQL服務(wù)器

          mysql –u username –p database_name

          mysql –h hostname –u username –p database_name

          2.     修改MySQL提示符

          prompt XXX

          \c

          記錄輸入多少個命令的提符

          \d

          提示當(dāng)前數(shù)據(jù)庫

          \D

          提示當(dāng)前日期

          \h

          提示當(dāng)前服務(wù)器主機(jī)

          \u

          提示用戶名

          \U

          提示用戶名@主機(jī)

          3.     操作數(shù)據(jù)庫

          a)     創(chuàng)建數(shù)據(jù)庫:create database db_name;mysqladmin –u root –p create db_name

          b)     切換到某數(shù)據(jù)庫:user db_name;

          c)     刪除數(shù)據(jù)庫:drop database db_name;

          4.     操作表

          a)     創(chuàng)建表:create table t_name (col1, definition, col2, definition, … , coln, definition);

          b)     顯示表結(jié)構(gòu):desc t_name;

          c)     列出所有表:show tables;

          d)     修改表結(jié)構(gòu)

                          i.          增加字段:alter table t_name add column xxx definition;

                         ii.          刪除字段:alter table t_name drop column xxx;

                       iii.          改變字段:alter tabel t_name change column xxx yyy definition;

          e)     刪除表:drop table t_name;

          f)      重命名表:alter tabel t_name rename t_new_name;

          5.     管理用戶

          a)     創(chuàng)建用戶并授權(quán):grant privilege1, privilege2, … , privilegen on db_name.t_name to 'username'@'host' identified by 'userpassword'; (說明:如果要將所有權(quán)限分配給用戶可以用all privileges代替授權(quán)項(xiàng)目;如果要將所有數(shù)據(jù)庫的所有表授權(quán)給該用戶,可以用*.*表示;可以用'%'所有站點(diǎn);如果沒有通過identified by 設(shè)置用戶口令,之后可以用set password for 'username'@'host' = password('serpassword');來設(shè)置口令)

          b)     召回用戶權(quán)限:revoke privilege1, … , privilegen from 'username'@'host';(說明:可以用all privileges代表召回所有權(quán)限)

          c)     重命名用戶:rename user 'username1'@'host1' to 'username2'@'host2';

          6.     存儲函數(shù)(例子)

          mysql > delimiter $$

          mysql > create function calculate_bonus

                 -> (employee_id INTEGER) RETURNS DECIMAL(5, 2)

                 -> BEGIN

                 -> DECLARE article_count INTEGER;

                 -> DECLARE bonus DECIMAL(10, 2);

                 -> SELECT count(id) AS article_count FROM articles

                 -> WHERE author_id = employee_id;

                 -> set bonus = article_count * 10;

                 -> RETURN bonus;

                 -> END;

                 -> $$

          mysql > DELIMITER ;

          mysql > select name, phone, calculate_bonus(id) from authors;

          mysql > drop function calculate_bonus;

          7.     視圖(例子)

          mysql > create view author_view as select name, e-mail, phone from authors ordered by email ASC;

          mysql > select * from author_view;

          mysql > alter view author_view as select name, phone FROM authors ordered by phone;

          mysql > drop view author_view;

          8.     觸發(fā)器(例子)

          mysql > DELIMITER $$

          mysql > create trigger article_counter

                 -> after insert on articles

                 -> for each row begin

                 -> update categories set cter = cter + 1 where id = new.category_id;

                 -> END;

                 -> $$

          mysql > DELIMITER ;

          9.     備份(例子)

          select * into outfile ‘filename.sql’ from t_name;

          mysqldump –u root –p db_name > filename.sql

          mysqldump –u root –p --all-databases > filename.sql

          posted on 2011-02-20 05:48 駱昊 閱讀(290) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2011年2月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272812345
          6789101112

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 红安县| 永寿县| 鞍山市| 古蔺县| 伊通| 白银市| 东方市| 收藏| 饶阳县| 建湖县| 孙吴县| 偏关县| 额尔古纳市| 仁化县| 积石山| 子洲县| 安塞县| 青岛市| 杨浦区| 双柏县| 马鞍山市| 西乌珠穆沁旗| 宿州市| 岚皋县| 沈丘县| 闸北区| 罗甸县| 鲁山县| 玉龙| 新邵县| 仁布县| 广州市| 秦安县| 山东省| 兴业县| 武清区| 西盟| 合阳县| 甘洛县| 儋州市| 安陆市|