先看看MySQL支援的SQL語句的分類
1, 資料庫的選取,建立,丟棄和變更
use
create database
drap database
alter database
2, 資料表和索引的建立,變更和丟棄
create table
drop table
create index
drop index
alter index
3, 從資料表檢索資訊
select
union
4, 交易處理
begin
commit
rollback
set autocommit
5, 對資料表裡面的資訊進行修改
delete
insert
load data
replace
update
6, 管理型命令
flush
grant
revoke
一,命名規則
1MySQL允許用在名字中的系統字元.
任何字母數字加上”_” 或 “$”
2名字的長度.
資料庫,資料表,資料列,索引等名字最多64個字母
256別名最多256個字母
3名字的限定符
依據不同的上下文,有時需要給某些名字加上某個限制:如資料列的全限定,部分限定,以及無限制.這一點比較容易理解
select * from db_name.tbl_name…
二,MySQL中的大小寫問題
關鍵字和函數名:不區別
資料庫名資料表名:根據伺服器主機系統而定
資料列名索引名:不區別
別名:區別大小寫
一般來說,不管系統是否區分資料庫名和資料表名中的字母大小寫情況,我們都應該在同一個查詢語句裡面以前後一致的字母大小寫形式來寫出這些名字,這是一個非常好的編程習慣。
三,MySQL支援的名種資料表類型詳解
1,ISAM資料表
這是3.23版本之前的MySQL支特的唯一一種表類型,目前己經過時,MyIASM處理程庫逐步取代了ISAM處理常式,這種老式的表類型己經沒有人在用了
2,MyIASM資料表
• 這是目前中MySQL預設使用的資料表類型。其優點是
• 如果主機作業系統支援大尺寸檔案,資料表長度就能夠很大,就能客納更多的資料.
• 資料表內容獨立於硬體也就是說可以把資料表在機器之間隨意拷貝
• 提高了索引方面的功能
• 提供了更好的索引鍵壓縮效果
• auto_incremnet能力加強
• 改進了對資料表的完整性檢查機制
• 支援進行fulltext全文本搜尋
3,Merge資料表
這是一種把相同結構的MyIASM資料表組織為一個邏輯單元的方法
4,HEAP資料表
這是一種使用記憶體的資料表,而且各個資料行的長度固定,這兩個特性使得這種類型資料表的檢索速度非常快,作為一種臨時性的資料表,HEAP在某些特定情況下很有用。
5,BDB資料表
這種資料表支援交易處理機制
具有良好的並發效能
6,InnoBDB資料表
這是最近加入MySQL的資料表類型,有許多新的特性
支援交易處理機制
崩潰後能夠立刻恢複
支援外鍵功能,包括串聯刪除
具有並發功能
7這種資料表在硬碟上的檔案儲存體方式
IASM Frm isd ism
MyISAM Frm myd myi
Merge Frm mrg
Heap Frm
BDB Frm db
InnoBDB frm
8資料表的可移植性
通用方法:吧資料表的內容匯出到一個文字檔中,然後拷貝到目的地硬碟上,在用指令碼載入到資料庫裡面,這是首先我們應該掌握的方法。但就檔案層次的操作來說,某些資料表是可以單獨拷貝的。看錶了
ISAM No
MyIASM Yes
BDB No
InnoBDB Yes
四,索引的初步知識
1,索引是加快資料表內容訪問效能的基本手段,其基本特性:
為可以索引單獨的資料列也可以構造包含多個資料列的複合索引
索引可以包含重複索引值
可以為一個資料表建立多個索引
2,不同的資料表有著不同的索引特性使用的時候需要區別對待
3,如何建立索引
①用alter table命令建立索引
②用create index 命令建立索引
③在create table 時建立索引
五,變更資料表的結構
當發現某個資料表的結構己經不能滿足我們的使用要求時,就要對其結構進行變更.可能需要這個資料表存放比以前更多的資訊;也可能是這個資料表裡面的某些資訊己經沒用;了或許是現有的某個資料列寬度太窄…在這些情況下都要用到alter 語勻
1,重新命名資料表
alter table A rename to B //資料表A改名為B
rename table A to B //資料表A改名為B
rename A toC,B to A,C to A //資料表A和資料表B互換名字
alter table S.A rename to T.A //資料庫S裡面的表A移動到資料庫B裡面
rename table S.A to T.A //資料庫S裡面的表A移動到資料庫B裡面
2,改變資料列的類型
我們現在要把資料表A裡面的一個smallint unsigned類型的資料列I再次改動為 mediumint unsigned 類型
alter table A motify I mediumint unsigned
alter table A change I I mediumint unsigned
注意change子句的特點:不僅能夠改變資料列的類型,還能改變資料列的名字。這是modify子句所不能完成的。下面就把這個資料列改名了。
alter table A change I J mediumint unsigned
3,將資料表由可變長度資料行轉變成固定長度資料行
有的時候為了提高效能,需要做這樣的轉變,但有一點需要注意:必須用同一條alter命令來一次改變所有的資料列,不能僅僅改變一個資料列!舉例如下:
create table A(name varchar(40),address varchar(80))
我們開始修改命令就應該是:
alter table A modify name char(40),modify address char(80);
4,將資料表由固定長度資料行轉變成可變長度資料行
如果覺得空間利用率不高,那就需要再轉變回來,這個就很簡單了,沒有特別要求
alter table A modify name varchar(40)
5,轉換資料表類型
我們知道,MySQL資料庫存在多種資料表類型,但每一種類型的特性並不相同。
如果你想讓你的資料表支援交易處理機制。那就必須把它搞成BDB或innoBDB格式
alter table A type= BDB
alter table A type= InnoBDB