北京網(wǎng)站建設(shè)培訓(xùn)機(jī)構(gòu)什么都能搜的瀏覽器
????????Mysql?是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 關(guān)系型數(shù)據(jù)庫(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。mysql在問開發(fā)中,幾乎必不可少,因為其他的可能是要收費的,所以mysql變成了首選。
1、mysql中常見的術(shù)語:
- 數(shù)據(jù)庫:?數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合。
- 數(shù)據(jù)表:?表是數(shù)據(jù)的矩陣。在一個數(shù)據(jù)庫中的表看起來像一個簡單的電子表格。
- 列:?一列(數(shù)據(jù)元素) 包含了相同類型的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。
- 行:一行(元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)。
- 冗余:存儲兩倍數(shù)據(jù),冗余降低了性能,但提高了數(shù)據(jù)的安全性。
- 主鍵:主鍵是唯一的。一個數(shù)據(jù)表中只能包含一個主鍵。你可以使用主鍵來查詢數(shù)據(jù)。
- 外鍵:外鍵用于關(guān)聯(lián)兩個表。
- 復(fù)合鍵:復(fù)合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復(fù)合索引。
- 索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。類似于書籍的目錄。
- 參照完整性:?參照的完整性要求關(guān)系中不允許引用不存在的實體。與實體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性。
2、mysql基本語法:
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名;
刪除數(shù)據(jù)庫
drop database 數(shù)據(jù)庫名;
3、mysql數(shù)據(jù)類型
?
?4、mysql的SQL基本語法
創(chuàng)建一個表
CREATE TABLE table_name (column_name column_type);
例如:
CREATE TABLE IF NOT EXISTS `maoheyeren`(`id` INT UNSIGNED AUTO_INCREMENT,`title` VARCHAR(100) NOT NULL,`author` VARCHAR(40) NOT NULL,`submission_date` DATE,PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
刪除一個表
DROP TABLE table_name ;
對一個表插入數(shù)據(jù):
INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...valueN );
查詢一個表數(shù)據(jù):
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
分組查詢語句:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
更新一個表數(shù)據(jù):
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
刪除一個表數(shù)據(jù):
DELETE FROM table_name [WHERE Clause]
創(chuàng)建視圖:
CREATE [OR REPLACE] VIEW 視圖名稱[(列名列表)] AS SELECT語句 [ WITH [
CASCADED | LOCAL ] CHECK OPTION ]
?創(chuàng)建存儲過程:
CREATE PROCEDURE 存儲過程名稱 ([ 參數(shù)列表 ])
BEGIN
-- SQL語句集合
END ;
調(diào)用存儲過程:
CALL 存儲過程名稱 ([ 參數(shù) ]);
如果所要調(diào)用的存儲過程是無參的,括號() 可省略
刪除存儲過程
DROP PROCEDURE [ IF EXISTS ] 存儲過程名稱 ;
5、mysql事務(wù)
事務(wù)
?是一組操作的集合,它是一個不可分割的工作單位,事務(wù)會把所有的操作作為一個整體一起向系統(tǒng)提交或撤銷操作請求,即這些操作要么同時成功,要么同時失敗。
事務(wù)的特性(ACID):
原子性(Atomicity):事務(wù)是不可分割的最小操作單元,要么全部成功,要么全部失敗。
一致性(Consistency):事務(wù)完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。
隔離性(Isolation):數(shù)據(jù)庫系統(tǒng)提供的隔離機(jī)制,保證事務(wù)在不受外部并發(fā)操作影響的獨立環(huán)境下運行。
持久性(Durability):事務(wù)一旦提交或回滾,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就是永久的。
上述就是事務(wù)的四大特性。
mysql事務(wù)的隔離級別:(其中默認(rèn)隔離級別是可重復(fù)讀)
?
查看事務(wù)的隔離級別:
SELECT @@TRANSACTION_ISOLATION;
設(shè)置事務(wù)的隔離級別語法:
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED |
READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
6、mysql索引(默認(rèn)的索引是B+樹數(shù)據(jù)結(jié)構(gòu))
索引(index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) ,相當(dāng)于課本的目錄。在數(shù)據(jù)之外,數(shù)據(jù)庫系統(tǒng)還維護(hù)著滿足特定查找算法的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)以某種方式引用(指向)數(shù)據(jù), 這樣就可以在這些數(shù)據(jù)結(jié)構(gòu)上實現(xiàn)高級查找算法,這種數(shù)據(jù)結(jié)構(gòu)就是索引。
在無索引情況下,在我們執(zhí)行查詢語句的時候默認(rèn)會全表掃描。
創(chuàng)建索引的語句:
-- 創(chuàng)建索引
CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name (
index_col_name,... ) ;
查看索引:
-- 查看索引
SHOW INDEX FROM table_name ;
刪除索引:
-- 查看索引
SHOW INDEX FROM table_name ;