MySQL整理(一)
一、數據管理發展階段
人工管理階段→文件系統階段→數據庫系統階段
二、數據庫管理系統提供的功能
(1)數據定義語言DDL:提供數據定義語言定義數據庫及各種對象,定義數據的完整性約束和保密限制等約束。
(2)數據操作語言DML:提供數據操作語言操作數據,主要分兩類:檢索(查詢)和更新(插入,刪除,更新)
(3)數據控制語言DCL:提供數據控制語言控制數據庫的完整性限制,數據安全性控制等。
三、為什麽使用MySQL
MySQL是由原MySQL AB公司自主研發的,目前已被Sun公司收購,是目前IT行業最流行的開源數據庫管理系統,同時它也是一個支持多線程高並發多用戶的關系型數據庫管理系統。
(1)功能性:滿足通用商業需求
(2)易用性:相對於大型的商業數據庫管理系統,MYSQL對於普通用戶來說,它的易用性高,安裝包小,創建數據庫等操作簡單。
(3)性能:在權威的第三方評測機構多次測試比較各種數據庫TPCC值(TPCC-MySQL是Percona公司研發的基準測試工具)的過程中,MySQL一直都有非常優異的表現,而且在其他所有商用的通用數據庫管理系統中,僅僅有Oracle數據庫能夠與其一較高下
(4)可靠性:排在全球前10位的大型網站裏面,都有部分業務是運行在MySQL數據庫環境上的,如yahoo、google等。
總體來說,MySQL數據庫在發展過程中一直追求三項原則:簡單、高效、可靠。
四、MySQL相關命令
DOS窗口連接MySQL |
mysql –h 127.0.0.1 –u root -p |
顯示所有數據庫 |
show databases; |
創建數據庫 |
create database kk; |
使用指定數據庫 |
use kk; |
刪除數據庫 |
drop database kk; |
顯示存儲引擎列表 |
show engines; |
查看默認存儲引擎 |
show variables like‘storage_engine%’ |
創建表 |
create table 表名( id int, name varchar(20), age float ); |
查看表定義 |
describe 表名 |
修改表名 |
alter table 老表名 rename 新表名 |
在表的最後一個位置增加字段 |
alter table 表名 add 字段名 字段類型定義 |
在表的第一個位置增加字段 |
alter table 表名 add 字段名 字段類型定義 first |
在表的指定字段後增加字段 |
alter table 表名 add 字段名 字段類型定義 after 指定字段 |
刪除字段 |
alter table表名 drop 字段名 |
修改字段定義 |
alter table 表名 modify 字段名 字段類型定義 |
修改字段名稱 |
alter table 表名 change 舊字段名 新字段名 舊字段數據類型定義 |
修改字段名稱及數據類型 |
alter table 表名 change 舊字段名 新字段名 新字段數據類型定義 |
修改字段位置 |
alter table 表名 modify 字段名 數據類型 first (將字段調整到第一個位置) Alter table 表名 modify 字段名1 數據類型 after 字段名2
|
五、MySQL存儲引擎和數據類型
1.1、MySQL引入了存儲引擎的概念,由於存儲引擎是以插件的形式被引入,所以需要根據實際應用和領域來選擇相應的存儲引擎;如果想創建表,需要了解數據類型,而存儲引擎決定了表中可以存儲的數據類型。
其中一種引擎的參數如下:
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
(1) Engine:存儲引擎名稱
(2) Support:表示MySQL是否支持該存儲引擎,DEFAULT表示默認使用
(3) Comment:表示關於存儲引擎的簡要評論
(4) Transactions:表示存儲引擎是否支持事務
(5) XA:表示該存儲引擎所支持的分布式存儲是否符合XA規範
(6) Savepoints:表示該存儲過程是否支持事務處理中的保存點
1.2、MySQL存儲引擎支持的數據類型有整數類型,浮點數類型,定點數類型和位類型,日期和時間類型,字符串類型。
(1)存儲小數數據,可選擇float或double,需精確到小數點後10位以上的,需要選擇double類型。
(2)定點數類型(參與運算的數的小數點位置固定不變)DEC(M,D)與DECIMAL(M,D)精確到比double還高,有效取值範圍由M(數據總長度)和D(小數點後長度)
(3)年月日的使用一般是DATE類型,年月日時分秒是DATETIME類型。若經常插入或更新的時間為系統當前時間,一般使用TIMESTAMP類型。時分秒為Time類型。年份用YEAR。
(4)存儲少量字符串可選用CHAR和VARCHAR類型,如果需要經常發生變化,選VARCHAR類型。
(5)BLOB和TEXT文本類型十分相似,不同的是前者可以存儲二進制數據(圖片,音頻文件),而後者只能存儲字符數據。
(6)BINARY和VARBINARY 與 CHAR和VARCHAR字符串類型十分相似,不同的是前者可以存儲二進制數據(圖片,音頻文件),而後者只能存儲字符數據。
MySQL整理(一)