mysql修改表結構


創建后表的修改

alter table 語句用於創建后對表的修改,基礎用法如下:

添加列:
基本形式:alter table 表名 add 列表 列數據類型 [after 插入位置];

示例:
	在表的最后追加到address:alter table students add address char(60);
	
	在名為age的列后插入列birthday:alter table students add birthday date after age;

修改列:
基本形式:alter table 表名 change 列名稱 列新名稱 新數據類型;

示例:
將表Tel列改名為:alter table students change tel telphone char(13) default '-';

將name列的數據類型改為char(16);alter table students change name name char(16) not null;

刪除列
基本形式:alter table 表名 drop 列名稱;

重命名表

基本形式alter table 表名 rename 新表名;

示例:
	重命名 students表為workmates;alter table students rename workmates;

刪除整張表

基本形式:drop table 表名;

示例:刪除workmates表;drop table workmates;

刪除真個數據庫

基本形式:drop database 數據庫名;

示例:刪除samp_db數據庫;drop database samp_db;

MySQL索引背后的數據結構及算法原理

摘要

本文以mysql數據庫為研究對象,談論與數據庫索引相關的一些話題。特別需要說明是,mysql支持多存儲引擎,而各種存儲引擎對索引的支持也各不相同,
因此mysql數據庫支持多種索引類型,如BTree索引,哈希索引,全文索引等等。為了避免混亂,本文將只關注於BTree索引,
因為這是平常使用mysql時主要打交道的索引,至於哈希索引和全完索引本文暫不討論。

文章主要內容為三個部分。

第一部分主要從數據結構及算法理論層面討論mysql數據庫索引的數理基礎。
第二部分綜合mysql數據庫中的myisam和innodb數據存儲引擎中索引的架構實現討論聚集索引、非聚集索引及覆蓋索引等話題。
第三部分根據上面的理論基礎,討論mysql中高性能使用索引的策略。

數據結構及算法基礎

索引的本質

mysql官方對索引的定義為:索引(index)是幫助mysql高效獲取數據的數據結構,提取句子主干,就可以得到索引的本質:索引是數據結構。

我們知道,數據庫查詢是數據庫的最主要功能之一。我們都希望查詢數據的速度能盡可能的快,因此數據庫系統的設計者會從查詢算法的角度進行優化,
最基本的查詢算法當然是順序查找(linear search),這種復查度為O(n)的算法在數據量很大時顯然是糟糕的,好在計算機科學的發展提供了很多優秀的查找算法,
例如二分查找(binary search)、二叉樹查找(binary tree search)等。如果稍微分析一下會發現,每種查找算法都只能應用於特定的數據結構之上,例如二分查找要求被檢索數據有序,
而二叉樹查找只能應用於二叉查找樹之上,但是數據本身的組織結構不可能完全滿足各種數據結構
(例如,理論上不可能同時兩列都按照順序進行組織),所以,在數據之外,數據路系統還維護這滿足特定查找算法的數據結構,
這些數據結構以某種方式引用(指向)數據,這樣就可以在這些數據結構實現高級查找算法。這種數據結構,就是索引。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM