一、MySQL數(shù)據(jù)庫(kù)的特點(diǎn)和優(yōu)勢(shì):

創(chuàng)新互聯(lián)建站專注于鐵嶺企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。鐵嶺網(wǎng)站建設(shè)公司,為鐵嶺等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
(1)功能強(qiáng)大
MySQL 中提供了多種數(shù)據(jù)庫(kù)存儲(chǔ)引擎,各引擎各有所長(zhǎng),適用于不同的應(yīng)用場(chǎng)合,用戶可以選擇最合適的引擎以得到最高性能,可以處理每天訪問(wèn)量超過(guò)數(shù)億的高強(qiáng)度的搜索 Web 站點(diǎn)。MySQL5 支持事務(wù)、視圖、存儲(chǔ)過(guò)程、觸發(fā)器等。
(2)支持跨平臺(tái)
MySQL 支持至少 20 種以上的開發(fā)平臺(tái),包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。這使得在任何平臺(tái)下編寫的程序都可以進(jìn)行移植,而不需要對(duì)程序做任何的修改。
(3)運(yùn)行速度快
高速是 MySQL 的顯著特性。在 MySQL 中,使用了極快的 B 樹磁盤表(MyISAM)和索引壓縮;通過(guò)使用優(yōu)化的單掃描多連接,能夠極快地實(shí)現(xiàn)連接;SQL 函數(shù)使用高度優(yōu)化的類庫(kù)實(shí)現(xiàn),運(yùn)行速度極快。
(4)支持面向?qū)ο?/p>
PHP 支持混合編程方式。編程方式可分為純粹面向?qū)ο蟆⒓兇饷嫦蜻^(guò)程、面句對(duì)象與面向過(guò)程混合 3 種方式。
(5)安全性高
靈活和安全的權(quán)限與密碼系統(tǒng),允許基本主機(jī)的驗(yàn)證。連接到服務(wù)器時(shí),所有的密碼傳輸均采用加密形式,從而保證了密碼的安全。
(6)成本低
MySQL 數(shù)據(jù)庫(kù)開放源代碼且無(wú)版權(quán)制約,是一種完全免費(fèi)的產(chǎn)品,用戶可以直接通過(guò)網(wǎng)絡(luò)下載,自主性及使用成本低。體積小,安裝方便。歷史悠久,用戶使用活躍,遇到問(wèn)題可以尋求幫助,易于維護(hù)。
(7)支持各種開發(fā)語(yǔ)言
MySQL 為各種流行的程序設(shè)計(jì)語(yǔ)言提供支持,為它們提供了很多的 API 函數(shù),包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 語(yǔ)言等。
(8)數(shù)據(jù)庫(kù)存儲(chǔ)容量大
MySQL 數(shù)據(jù)庫(kù)的最大有效表尺寸通常是由操作系統(tǒng)對(duì)文件大小的限制決定的,而不是由 MySQL 內(nèi)部限制決定的。InnoDB 存儲(chǔ)引擎將 InnoDB 表保存在一個(gè)表空間內(nèi),該表空間可由數(shù)個(gè)文件創(chuàng)建,表空間的最大容量為 64TB,可以輕松處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。
(9)支持強(qiáng)大的內(nèi)置函數(shù)
PHP 中提供了大量?jī)?nèi)置函數(shù),幾乎涵蓋了 Web 應(yīng)用開發(fā)中的所有功能。它內(nèi)置了數(shù)據(jù)庫(kù)連接、文件上傳等功能,MySQL 支持大量的擴(kuò)展庫(kù),如 MySQLi 等,可以為快速開發(fā) Web 應(yīng)用提供便利。
二、相比其他數(shù)據(jù)庫(kù)的特點(diǎn)和優(yōu)勢(shì):
(1) 對(duì)事務(wù)的提交
MySQL默認(rèn)是自動(dòng)提交,不需要在寫commit指令或者點(diǎn)擊commit按鈕。
(2) 分頁(yè)查詢
MySQL是直接在SQL語(yǔ)句中寫"select... from ...where...limit? m, n",有l(wèi)imit就可以實(shí)現(xiàn)分頁(yè)。PHP里還可以用SEEK定位到結(jié)果集的位置。
(3) 事務(wù)隔離級(jí)別
MySQL是read commited的隔離級(jí)別。
一個(gè)session讀取數(shù)據(jù)時(shí),其他session不能更改數(shù)據(jù),但可以在表最后插入數(shù)據(jù)。session更新數(shù)據(jù)時(shí),要加上排它鎖,其他session無(wú)法訪問(wèn)數(shù)據(jù)。
(4) 復(fù)制簡(jiǎn)單
MySQL復(fù)制服務(wù)器配置簡(jiǎn)單。
(5) 自動(dòng)增長(zhǎng)的數(shù)據(jù)類型處理
MYSQL有自動(dòng)增長(zhǎng)的數(shù)據(jù)類型,插入記錄時(shí)不用操作此字段,會(huì)自動(dòng)獲得數(shù)據(jù)值。
(6)?單引號(hào)的處理
MYSQL里可以用雙引號(hào)包起字符串。
(7) 日期字段的處理
MYSQL日期字段分DATE和TIME兩種。
(8)?空字符的處理
MYSQL的非空字段也有空的內(nèi)容,NULL或空字符。
數(shù)據(jù)庫(kù)和MySQL和MySQL服務(wù)器三者區(qū)別區(qū)別如下:
數(shù)據(jù)庫(kù)包括MySQL,MySQL服務(wù)器只要作用就是這位一個(gè)服務(wù)器;
MYSQL短小精悍,容易上手,操作簡(jiǎn)單,免費(fèi)供用的。相對(duì)其它數(shù)據(jù)庫(kù)有特色又實(shí)用的語(yǔ)法多一些。SQL怎么也算是大型數(shù)據(jù)庫(kù),穩(wěn)定,能做一般大系統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù),運(yùn)行速度明顯比MYSQL快N多。
缺點(diǎn)分析:MYSQL難擔(dān)當(dāng)大系統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù),運(yùn)行速度慢,不夠穩(wěn)定,有掉線的情況。SQLSERVER價(jià)格貴,使用起來(lái)比MYSQL要難一些,畢竟東西大了說(shuō)道多點(diǎn)。
MySQL自己有文字界面客戶端,當(dāng)然配對(duì)MYSQL有專業(yè)的客戶端軟件,各種操作真的是很方便的。SQLSERVER 就用自帶的查詢分析器登錄了,兩者的前提是數(shù)據(jù)庫(kù)服務(wù)都帶打開,而且你得知道安裝時(shí)的用戶名密碼。
SQL服務(wù)器雖然是狹隘的,保守的存儲(chǔ)引擎與MySQL服務(wù)器的可擴(kuò)展,開放的存儲(chǔ)引擎絕然不同。雖然可以使用SQL服務(wù)器的Sybase引擎,但MySQL能夠提供更多種的選擇,如MyISAM,Heap, InnoDB, and BerkeleyDB。MySQL不完全支持陌生的關(guān)鍵詞,所以它比SQL服務(wù)器要少一些相關(guān)的數(shù)據(jù)庫(kù)。同時(shí),MySQL也缺乏。
MyISAM和InnoDB存儲(chǔ)引擎使用的鎖:
封鎖粒度小:
由于InnoDB存儲(chǔ)引擎支持的是行級(jí)別的鎖,因此意向鎖(因?yàn)橐庀蜴i是表鎖)其實(shí)不會(huì)阻塞除全表掃以外的任何請(qǐng)求。故表級(jí)意向鎖與行級(jí)鎖的兼容性如下所示
參考
參考
行鎖的三種算法:
這條語(yǔ)句阻止其他事務(wù)插入10和20之間的數(shù)字,無(wú)論這個(gè)數(shù)字是否存在。 間隙可以跨越0個(gè),單個(gè)或多個(gè)索引值。
共享鎖:
排他鎖:
樂(lè)觀鎖:總是假設(shè)最好的情況,每次去拿數(shù)據(jù)的時(shí)候都認(rèn)為別人不會(huì)修改(天真), 操作數(shù)據(jù)時(shí)不會(huì)上鎖 ,但是 更新時(shí)會(huì)判斷在此期間有沒(méi)有別的事務(wù)更新這個(gè)數(shù)據(jù),若被更新過(guò),則失敗重試 ;適用于讀多寫少的場(chǎng)景。
樂(lè)觀鎖的實(shí)現(xiàn)方式 有:
關(guān)閉自動(dòng)提交后,我們需要手動(dòng)開啟事務(wù)。
上述就實(shí)現(xiàn)了悲觀鎖,悲觀鎖就是悲觀主義者,它會(huì)認(rèn)為我們?cè)谑聞?wù)A中操作數(shù)據(jù)1的時(shí)候,一定會(huì)有事務(wù)B來(lái)修改數(shù)據(jù)1,所以,在第2步我們將數(shù)據(jù)查詢出來(lái)后直接加上排它鎖(X)鎖,防止別的事務(wù)來(lái)修改事務(wù)1,直到我們commit后,才釋放了排它鎖。
MySQL 自帶了四個(gè)數(shù)據(jù)庫(kù),如下:
mysql庫(kù)。是MySQL的核心數(shù)據(jù)庫(kù),存儲(chǔ)用戶、權(quán)限等信息
information_schema。存儲(chǔ)表、鎖等性能信息。元數(shù)據(jù)關(guān)于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫(kù)名,表名,訪問(wèn)權(quán)限,庫(kù)表的數(shù)據(jù)類型,庫(kù)索引的信息等
sys。這個(gè)庫(kù)數(shù)據(jù)來(lái)源于performance_schema。目標(biāo)是把performance_schema的復(fù)雜程度降低,讓DBA能更好的閱讀這個(gè)庫(kù)里的內(nèi)容,讓DBA更快的了解DB的運(yùn)行情況。
performance_schema。這個(gè)庫(kù)主要收集數(shù)據(jù)庫(kù)服務(wù)器性能參數(shù),用于監(jiān)控服務(wù)器在一個(gè)較低級(jí)別的過(guò)程中的資源消耗,資源等待等情況
需要用的資料以鏈接的形式給需要的同學(xué)。
我用的mysql版本為: Mysql-5.5.45-win64.msi 密碼是:26zw
圖形化工具 Navicat(前期不推薦用,直接手動(dòng)敲): Navicat 密碼:c7fs
開始我的MySQL之旅吧 始于2016.12.04
--WH
一、數(shù)據(jù)庫(kù)的安裝
這個(gè)就不在這里過(guò)多闡述了,因?yàn)榫W(wǎng)上實(shí)在是太多安裝mysql的教程了,有了我給的mysql,在按照這個(gè)安裝教程(MySQL安裝教程)去看,就能夠安裝完好。
安裝好mysql后,如果需要使用windows命令窗口(也就是cmd)來(lái)操作mysql,那么就需要配置環(huán)境變量,在安裝好的mysql下找到bin,將其目錄放到環(huán)境變量path中去,就行了,檢測(cè)成功與否的方法是在cmd命令窗口中輸入mysql,就會(huì)出現(xiàn)一大段英文,就說(shuō)明成功了,反之失敗,如果不會(huì)的話就去百度搜教程。
二、數(shù)據(jù)庫(kù)的基本操作
1、開啟mysql服務(wù)命令
net start mysql
2、進(jìn)入mysql的兩種方式
明文進(jìn)入:mysql -uroot -proot格式:mysql -u帳號(hào) -p密碼
密文進(jìn)入:mysql -uroot -p 按enter會(huì)提示你輸入密碼(Enter pssword:),此時(shí)你寫的密碼就會(huì)顯示為***這樣。
3、查看mysql中所有的數(shù)據(jù)庫(kù)(一般在固定的單詞命令就會(huì)是用大寫,這個(gè)要習(xí)慣,看多了敲多了就認(rèn)識(shí)了)
前面四個(gè)數(shù)據(jù)庫(kù)是mysql中自帶的,也就是必須的.
SHOW DATABASES;
4、創(chuàng)建名為test_1的數(shù)據(jù)庫(kù)
格式:CREATE DATABASE 數(shù)據(jù)庫(kù)名
CREATE DATABASE test_1;
5、刪除名為test_1的數(shù)據(jù)庫(kù)
格式:DROP DATABASE 數(shù)據(jù)庫(kù)名
DROP DATABASE test_1;
總結(jié):學(xué)習(xí)了對(duì)數(shù)據(jù)庫(kù)的三個(gè)操作,1、查看所有數(shù)據(jù)庫(kù) 2、創(chuàng)建數(shù)據(jù)庫(kù) 3、刪除數(shù)據(jù)庫(kù)
三、數(shù)據(jù)表的基本操作
數(shù)據(jù)表和數(shù)據(jù)庫(kù)還有Mysql三者的關(guān)系
mysql中保存了很多數(shù)據(jù)庫(kù)、一個(gè)數(shù)據(jù)庫(kù)中可以保存很多表。
對(duì)數(shù)據(jù)表的增(創(chuàng)建表)刪(刪除表)改(修改表字段)查(查詢表結(jié)構(gòu))。 注意:這里的操作對(duì)象是表,對(duì)表的操作也就是表的結(jié)構(gòu),和表中的字段的操作(字段和記錄要分清楚)
前提:表是在數(shù)據(jù)庫(kù)下的,所以要先確實(shí)使用哪個(gè)數(shù)據(jù)庫(kù)。
USE test_1;
1、創(chuàng)建數(shù)據(jù)表
格式:CREATE TABLE 數(shù)據(jù)表名(
字段名1數(shù)據(jù)類型[列級(jí)別約束條件],
字段名2數(shù)據(jù)類型[列級(jí)別約束條件],
字段名3數(shù)據(jù)類型[列級(jí)別約束條件]
);
注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。
解釋:
1、[]中括號(hào)中的內(nèi)容表示可以有可以沒(méi)有,
2、列級(jí)別這個(gè)“列”一定要搞清楚說(shuō)的是什么,一張表中有行有列,列表示豎,行表示橫
3、約束條件后面會(huì)講到
1.1、創(chuàng)建沒(méi)有約束的student表
CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11) );
注釋:SHOW TABLES 查詢數(shù)據(jù)庫(kù)底下的所有表。
1.2、創(chuàng)建有約束的student表
六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認(rèn)約束、自動(dòng)增加
1.2.1:主鍵約束
PRIMARY KEY(primary key):獨(dú)一無(wú)二(唯一)和不能為空(非空),通俗的講,就是在表中增加記錄時(shí),在該字段下的數(shù)據(jù)不能重復(fù),不能為空,比如以上面創(chuàng)建的表為例子,在表中增加兩條記錄,如果id字段用了主鍵約束。則id不能一樣,并且不能為空。一般每張表中度有一個(gè)字段為主鍵,唯一標(biāo)識(shí)這條記錄。以后需要找到該條記錄也可以同這個(gè)主鍵來(lái)確認(rèn)記錄,因?yàn)橹麈I是唯一的,并且非空,一張表中每個(gè)記錄的主鍵度不一樣,所以根據(jù)主鍵也就能找到對(duì)應(yīng)的記錄。而不是多條重復(fù)的記錄。如果沒(méi)有主鍵,那么表中就會(huì)存在很多重復(fù)的記錄,那么即浪費(fèi)存儲(chǔ)空間,在查詢時(shí)也消耗更多資源。
一般被主鍵約束了的字段度習(xí)慣性的稱該字段為該表的主鍵
單字段主鍵約束
兩種方式都可以
CREATE TABLE student(CREATE TABLE student(
idINT(11) PRIMARY KEY,idINT(11),
nameVARCHAR(12),nameVARCHAR(12),
ageINT(11) ageINT(11),
); PRIMARY KEY(id) );
多字段主鍵約束(復(fù)合主鍵)
這個(gè)id和name都市主鍵,說(shuō)明在以后增加的插入的記錄中,id和name不能同時(shí)一樣,比如說(shuō)可以是這樣。一條記錄為id=1,name=yyy、另一條記錄為:id=1,name=zzz。 這樣是可以的。并不是你們所理解的兩個(gè)字段分別度不可以相同。
CREATE TABLE student(CREATE TABLE student(
idINT(11) PRIMARY KEY,idINT(11),
nameVARCHAR(12) PRIMARY KEY, nameVARCHAR(12),
ageINT(11) ageINT(11),
);PRIMARY KEY(id,name) );
1.2.2:外鍵約束
什么是外鍵舉個(gè)例子就清楚了,有兩張表,一張表是emp(員工)表,另一張表是dept(部門)表,一個(gè)員工屬于一個(gè)部門,那么如何通過(guò)員工能讓我們自己他在哪個(gè)部門呢?那就只能在員工表中增加一個(gè)字段,能代表員工所在的部門,那該字段就只能是存儲(chǔ)dept中的主鍵了(因?yàn)橹麈I是唯一的,才能確實(shí)是哪個(gè)部門,進(jìn)而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區(qū)分了。),像這樣的字段,就符合外鍵的特點(diǎn),就可以使用外鍵約束,使該字段只能夠存儲(chǔ)另一張表的主鍵。如果不被外鍵約束,那么該字段就無(wú)法保證存儲(chǔ)進(jìn)來(lái)的值就一定是另一張表的主鍵值。
外鍵約束的特點(diǎn):
1、外鍵約束可以描述任意一個(gè)字段(包括主鍵),可以為空,并且一個(gè)表中可以有多個(gè)外鍵。但是外鍵字段中的值必須是另一張表中的主鍵。
2、這樣被外鍵關(guān)聯(lián)的兩種表的關(guān)系可以稱為父子表或者主從表。子表(從表)擁有外鍵字段的表,父表(主表)被外鍵字段所指向的表。
3、子表被外鍵約束修飾的字段必須和父表的主鍵字段的類型一樣。
注意:一個(gè)表中有被外鍵修飾的字段,就稱該表有外鍵(是“有外鍵”。而不是“是外鍵”),并會(huì)給該表中的外鍵約束取一個(gè)名稱,所以我們常說(shuō)的這個(gè)表有沒(méi)有外鍵,指的不是被外鍵約束修飾的字段名,而是指這個(gè)表是否有存在外鍵約束。也就是說(shuō),不能說(shuō)這個(gè)表的外鍵是xxx(該表中被外鍵約束修飾的字段名),這種說(shuō)法是錯(cuò)誤的,但是大多數(shù)人已經(jīng)習(xí)慣了這樣,雖然影響不大,但是在很多時(shí)候需要理解一個(gè)東西時(shí),會(huì)造成一定的困擾。
格式:CONSTRAINT外鍵名稱FOREIGN KEY(被外鍵約束的字段名稱)REFERENCES 主表名(主鍵字段)
英文解釋:CONSTRAINT:約束REFERENCES:參考
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);
解釋:tableB中有一個(gè)名為tableA_tableB_1的外鍵關(guān)聯(lián)了tableA和tableB兩個(gè)表,被外鍵約束修飾的字段為tableB中的deptId,主鍵字段為tableA中的id
1.2.3:非空約束
NOT NULL. 被該約束修飾了的字段,就不能為空,主鍵約束中就包括了這個(gè)約束
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);
1.2.4:唯一約束
UNIQUE 被唯一約束修飾了的字段,表示該字段中的值唯一,不能有相同的值,通俗點(diǎn)講,就好比插入兩條記錄,這兩條記錄中處于該字段的值不能是一樣的。
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);
也就是說(shuō)在插入的記錄中,每條記錄的name值不能是一樣的。
1.2.5:默認(rèn)約束
Default 指定這一列的默認(rèn)值為多少,比如,男性同學(xué)比較多,性別就可以設(shè)置為默認(rèn)男,如果插入一行記錄時(shí),性別沒(méi)有填,那么就默認(rèn)加上男
CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);
1.2.6:自動(dòng)增加
AUTO_INCREMENT 一個(gè)表只能一個(gè)字段使用AUTO_INCREMENT,并且使用這個(gè)約束的字段只能是整數(shù)類型(任意的整數(shù)類型 TINYINT,SMALLIN,INT,BIGINT),默認(rèn)值是1,也就是說(shuō)從1開始增加的。一般就是給主鍵使用的,自動(dòng)增加,使每個(gè)主鍵的值度不一樣,并且不用我們自己管理,讓主鍵自己自動(dòng)生成
CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );
2、查詢表結(jié)構(gòu)
2.1、查看表基本結(jié)構(gòu)語(yǔ)句
格式1:DESCRIBE 表名/DESC 表名這兩個(gè)的功能是一樣的,簡(jiǎn)寫了單詞describe
DESCRIBE student;
2.2、查看創(chuàng)建表的語(yǔ)句
格式:SHOW CREATE TABLE 表名
SHOW CREATE TABLE student;
這樣顯示的格式很不好,看不清楚,所以有了下面這個(gè)語(yǔ)句
格式:SHOW CREATE TABLE 表名\G
SHOW CREATE TABLE student\G;
3、修改數(shù)據(jù)表
修改數(shù)據(jù)表包括:對(duì)表中字段的增加、刪除、修改。 在這個(gè)里面用的關(guān)鍵字為 ALTER
3.1、修改表名
格式:ALTER TABLE舊表名 RENAME[TO]新表名;
將student表名改為student1(改完后在改回來(lái))
ALTER TABLE student RENAME TO student1;
3.2、修改表中的字段名
格式:ALTER TABLE表名 CHANGE舊字段名新字段名新數(shù)據(jù)類型
將student表中的name字段名改為 username
ALTER TABLE student CHANGE name username VARCHAR(30);
3.3、修改表中的數(shù)據(jù)類型
格式:ALTER TABLE表名 MODIFY字段名數(shù)據(jù)類型
ALTER TABLE student MODIFY username VARCHAR(20);
解釋:只能修改字段名的數(shù)據(jù)類型,但是其原理跟上面change做的事情一樣,這里也有修改字段名的過(guò)程,只不過(guò)修改后的字段名和修改前的字段名相同,但是數(shù)據(jù)類型不一樣。
3.4、修改字段的排列位置
方式1:ALTER TABLE表名 MODIFY字段1數(shù)據(jù)類型 FIRST|AFTER字段2
解釋:將字段1的位置放到第一,或者放到指定字段2的后面
ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;
方式2:ALTER TABLE表名 CHANGE字段1字段2數(shù)據(jù)類型 FIRST|AFTER字段3
解釋:其實(shí)是一樣的,將是字段2覆蓋字段1,然后在進(jìn)行排序
ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;
總結(jié)
CHANGE和MODIFY的區(qū)別?
原理都市一樣的,MODIFY只能修改數(shù)據(jù)類型,但是CHANGE能夠修改數(shù)據(jù)類型和字段名,也就是說(shuō)MODIFY是CHANGE的更具體化的一個(gè)操作。可能覺(jué)得用CHANGE只改變一個(gè)數(shù)據(jù)類型不太爽,就增加了一個(gè)能直接改數(shù)據(jù)類型的使用關(guān)鍵字MODIFY來(lái)操作。
3.5、添加字段
格式:ALTER TABLE表名稱 ADD新字段名數(shù)據(jù)類型[約束條件][FIRST|AFTER已存在的表名]
解釋:在一個(gè)特定位置增加一個(gè)新的字段,如果不指定位置,默認(rèn)是最后一個(gè)。
ALTER TABLE student ADD sex VARCHAR(11);
3.6、刪除字段
格式:ALTER TABLE表名稱 DROP字段名;
ALTER TABLE student DROP sex;
3.7、刪除表的外鍵約束
格式:ALTER TABLE表名稱 DROP FOREIGN KEY外鍵約束名
注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們?cè)趧?chuàng)建外鍵約束關(guān)系時(shí)取的名字。
3.8、更改表的存儲(chǔ)引擎
格式:ALTER TABLE表名 ENGINE=更改后的存儲(chǔ)引擎名
這個(gè)存儲(chǔ)引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點(diǎn)就不清楚了,所以打算留到日后在說(shuō)。
4、刪除表
4.1、刪除無(wú)關(guān)聯(lián)表
格式:DROP TABLE表名;
ALTER TABLE student;
4.2、刪除被其他表關(guān)聯(lián)的主表
這個(gè)是比較重要的一點(diǎn),在有外鍵關(guān)聯(lián)關(guān)系的兩張表中,如果刪除主表,那么是刪不掉的,并且會(huì)報(bào)錯(cuò)。因?yàn)橛袕埍硪蕾囉谒D窃趺崔k呢?針對(duì)這種情況,總共有兩種方法
1、先刪除你子表,然后在刪除父表,這樣就達(dá)到了刪除父表的目的,但是子表也要被刪除
2、先解除外鍵關(guān)系,然后在刪除父表,這樣也能達(dá)到目的,并且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關(guān)系。
當(dāng)前題目:mysql數(shù)據(jù)庫(kù)怎么理解,數(shù)據(jù)庫(kù)mysql是什么意思
鏈接分享:http://chinadenli.net/article27/dsedhjj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、云服務(wù)器、定制開發(fā)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)