第21章數(shù)據(jù)庫和表_第1頁
第21章數(shù)據(jù)庫和表_第2頁
第21章數(shù)據(jù)庫和表_第3頁
第21章數(shù)據(jù)庫和表_第4頁
第21章數(shù)據(jù)庫和表_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第二章數(shù)據(jù)庫與表1、操作數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、更改數(shù)據(jù)庫2、存儲引擎的介紹3、操作表 創(chuàng)建表、查看表、刪除表 修改表4、操作表的約束2.1操作數(shù)據(jù)庫1、創(chuàng)建數(shù)據(jù)庫CREATEDATABASE數(shù)據(jù)庫名;或者CREATESCHEMA數(shù)據(jù)庫名;判斷是否存在的數(shù)據(jù)庫CREATEDATABASE[IFNOTEXISTS] 數(shù)據(jù)庫名;IFNOTEXISTS判斷是否存在2.1操作數(shù)據(jù)庫1、創(chuàng)建數(shù)據(jù)庫CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name[create_specification[,create_specification]...]其中create_specification:[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_nameCHARACTERSET:指定數(shù)據(jù)庫字符集(Charset),charset_name為字符集名稱。COLLATE:指定字符集的校對規(guī)則,collation_name為校對規(guī)則名稱(字符集和校對規(guī)則的概念見附錄D)。2.1操作數(shù)據(jù)庫2、刪除數(shù)據(jù)庫DROPDATABASE[IFEXISTS]db_name刪除數(shù)據(jù)庫是指在數(shù)據(jù)庫系統(tǒng)中刪除已經(jīng)存在的數(shù)據(jù)庫。刪除數(shù)據(jù)庫之后,原來分配的空間將被收回。值得注意的是,刪除數(shù)據(jù)庫會刪除該數(shù)據(jù)庫中所有的表和所有數(shù)據(jù)。因此,應(yīng)該特別小心2.1操作數(shù)據(jù)庫3、數(shù)據(jù)庫的修改ALTERDATABASEdb_namealter_specification其中alter_specification:DEFAULTCHARACTERSETcharset_name|DEFAULTCOLLATEcollation_name2.3操作表?2.2存儲引擎存儲引擎是MySQL數(shù)據(jù)庫管理系統(tǒng)的一個重要特征。MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件(或者內(nèi)存)中。這些技術(shù)中的每一種技術(shù)都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術(shù),你能夠獲得額外的速度或者功能,從而改善你的應(yīng)用的整體功能。這種存儲技術(shù),是存儲引擎。一般數(shù)據(jù)庫只存在一種存儲引擎。2.2存儲引擎我們的MySQL支持的存儲引擎:SHOWENGINES;2.2存儲引擎Support:是否支持該存儲引擎,YES是支持,NO是不支持,DEFAULT默認的存儲引擎2.2存儲引擎Comment表示關(guān)于該引擎的描述Transactions:是否支持事務(wù)XA:所支持的分布式是否符合XA規(guī)范Savepoints:是否支持事務(wù)處理的保存點2.2存儲引擎查詢默認引擎:SHOWVARIABLESLIKE‘storage_engine%’2.2存儲引擎修改默認引擎:打開C:\ProgramFiles\MySQL\MySQLServer5.52.2存儲引擎MyISAM:擁有較高的插入,查詢速度,但不支持事務(wù)、外鍵。InnoDB

:事務(wù)型數(shù)據(jù)庫的首選引擎,支持事務(wù),支持行級鎖定。占更多的磁盤。當需要事務(wù)完整性控制,頻繁的更新刪除操作,并發(fā)控制可用Memory

:所有數(shù)據(jù)置于內(nèi)存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會在Mysql重新啟動時丟失2.3操作表1、表的基本概念列(Column):在具體創(chuàng)建表時,必須指定列的名字和數(shù)據(jù)類型索引(Index):根據(jù)指定的數(shù)據(jù)庫表列建立起來的順序,提供快速訪問數(shù)據(jù)的途徑,且監(jiān)督表數(shù)據(jù),使其索引指向的列的數(shù)據(jù)不重復。(再敘)觸發(fā)器(Triger):用戶定義的事務(wù)命定的集合,當對表中的數(shù)據(jù)進行插入、刪除等命令時,觸發(fā)器自動執(zhí)行,用來保證數(shù)據(jù)的完整性和安全性。(再敘)2.3操作表2、創(chuàng)建表常用格式1:CREATETABLEtable_name{ 屬性名數(shù)據(jù)類型; 屬性名數(shù)據(jù)類型;… 屬性名數(shù)據(jù)類型;}2.3操作表2、創(chuàng)建表常用格式2:CREATETABLEtable_name{ 屬性名數(shù)據(jù)類型; 屬性名數(shù)據(jù)類型;… 屬性名數(shù)據(jù)類型;Index|Key[…..]}2.3操作表2、創(chuàng)建表CREATETABLE[IFNOTEXISTS]tbl_name[([column_definition],...|[index_definition])]column_definition:列定義,包括列名、數(shù)據(jù)類型,可能還有一個空值聲明和一個完整性約束。index_definition:表索引項定義,主要定義表的索引、主鍵、外鍵等,具體定義將在第5章中討論。2.3操作表列定義column_definition格式如下:col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT][UNIQUE[KEY]|[PRIMARY]KEY]col_name:表中列的名字。列名必須符合標志符規(guī)則,長度不能超過64個字符,而且在表中要唯一。如果有MySQL保留字必須用單引號括起來。type:列的數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明長度n,并用括號括起2.3操作表AUTO_INCREMENT:設(shè)置自增屬性NOTNULL|NULL:指定該列是否允許為空。如果不指定,則默認為NULL。DEFAULTdefault_value:為列指定默認值,默認值必須為一個常數(shù)。2.3操作表2.3操作表字段名字段描述數(shù)據(jù)類型主鍵非空自增Num學號Int(10)是是否Name姓名Varchar(20)否是否sex性別Varchar(4)否是否Birthday出生日期datetime否否否address家庭住址Varchar(50)否否否2.3操作表3、查看表結(jié)構(gòu)DESCCRIBE語句SHOWCREATETABLE語句2.3操作表4、刪除表DROPTABLE【IFEXISTS】表名1【表名2..】2.3操作表5、修改表(一)修改表名(二)增加字段(三)刪除字段(四)修改字段2.3操作表(1)修改表名ALTERTABLEold_table_nameRENAME_【TO】new_table_name;2.3操作表(2)增加字段

altertable表名add字段名字段類型;

altertablestudentaddnamevarchar(10);在第一個位置增加字段

altertable表名add字段名字段類型first;在指定位置之后增加字段

altertable表名add字段名字段類型after字段名;2.3操作表(3)刪除字段ALTERTABLE表名DROP字段名;2.3操作表(4)修改字段A、修改字段的數(shù)據(jù)類型ALTERTABLEtable_nameMODIFY字段名數(shù)據(jù)類型;B、修改字段名ALTERTABLEtable_nameCHANGE舊字段名新字段名舊數(shù)據(jù)類型;2.3操作表(4)修改字段C、同時修改字段名和類型ALTERTABLEtable_nameCHANGE舊字段名新字段名舊數(shù)據(jù)類型;D、修改字段順序ALTERTABLEtable_nameMODIFY字段1數(shù)據(jù)類型FIRST|AFTER字段2;2.3操作表(4)修改字段

E、增加主鍵:

ALTERTABLEtable_name ADDPRIMARYKEY(字段名);

F、刪除主鍵:

ALTERTABLEtable_name

DROPPRIMARYKEY;2.3操作表G、更改存儲引擎:ALTERTABLE表名ENGINE=存儲引擎名;2.4操作表的約束1、MySQL的完整性約束所謂完整性是指數(shù)據(jù)的準確性和一致性,而完整性檢查是指檢查數(shù)據(jù)的準確性和一致性。MySQL數(shù)據(jù)庫系統(tǒng)提供了一致機制來檢查數(shù)據(jù)庫表中的數(shù)據(jù)是否滿足規(guī)定的條件,以保證指數(shù)據(jù)的準確性和一致性,這種機制就是約束。2.4操作表的約束1、MySQL的完整性約束關(guān)鍵字列表:關(guān)鍵字含義NOTNULL不能為空DEFAULT字段默認值UNIQUEKEY(UK)值是唯一的PRIMARYKEY(PK)主鍵,該表的唯一標識AUTO_INCREMENT自動增值FOREIGNKEY(FK)表的外鍵(不支持check約束)2.4操作表的約束2、設(shè)置非空約束CREATETABLEtable_name(字段名字段類型NOTNULL;……); 2.4操作表的約束3、設(shè)置字段默認值CREATETABLEtable_name(字段名字段類型DEFAULT默認值;……); 2.4操作表的約束4、設(shè)置唯一約束CREATETABLEtable_name(字段名字段類型UNIQUE;……); 如果想給UK約束設(shè)置個名字,使用CONSTRAINT語句CONSTRAINT約束名UNIQUE(字段名)2.4操作表的約束5、設(shè)置主鍵約束A、單字段主鍵CREATETABLEtable_name(字段名字段類型PRIMARYKEY;……); 或后面添加【CONSTRAINT約束名】PRIMARYKEY(字段名)2.4操作表的約束5、設(shè)置主鍵約束B、多字段主鍵CREATETABLEtable_name(字段名字段類型;……【CONSTRAINT約束名】PRIMARYKEY(字段名1,字段名2)); 2.4操作表的約束6、字段值自動增加CREATETABLEtable_name(字段名字段類型AUTO_INCREAMENT;……); 表中只能有一個字段使用該約束字段類型必須是整型默認從1開始增加起2.4操作表的約束7、設(shè)置外鍵約束CREATETABLEtable_name(字段名字段類型;……【CONSTRAINT約束名】FOREIGNKEY(字段名1)REFERENCES表名(字段名2)); 2.4操作表的約束7、設(shè)置外鍵約束刪除外鍵約束:ALTERTABLE表名DROPFOREIGNKEY外鍵別名;數(shù)據(jù)庫與文件將數(shù)據(jù)庫mydb導出到e:\MySQL\mydb.sql文件中:打開開始->運行->輸入cmd進入命令行模式c:\>MySQLdump-hlocalhost-uroot-pmydb>e:\MySQL\mydb.sql然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。數(shù)據(jù)庫與文件從e:\MySQL\mydb2.sql中將文件中的SQL語句導入數(shù)據(jù)庫中:1.從命令行進入MySQL,然后用命令CREATEDATABASEmydb2;創(chuàng)建數(shù)據(jù)庫mydb2。2.退出MySQL可以輸入命令exit;或者quit;3.在CMD中輸入下列命令:c:\>MySQL-hlocalhost-uroot-pmydb2<

e:\MySQL\mydb2.sql然后輸入密碼,就OK了。導出一個表2.導出一個表

mysqldump-u用戶名-p數(shù)據(jù)庫名表名>導出的文件名

mysqldump-uroot-pdatanameusers>dataname_users.sql導入數(shù)據(jù):mysql>use數(shù)據(jù)庫然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)

mysql>sourced:/wcnc_db.sqlaltertable表名addconstraint鍵名ForeignKey(字段)

References表2(字段);ALTER

TABLE

表名

DROP

FOREIGN

KEY

鍵名;我們看到Key那一欄,可能會有4種值,即‘啥也沒有’,‘PRI’,‘UNI’,‘MUL’

1.如果Key是空的,那么

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論