《PHP》課件3-3 MySQL 數(shù)據(jù)庫(kù)教學(xué)課件_第1頁(yè)
《PHP》課件3-3 MySQL 數(shù)據(jù)庫(kù)教學(xué)課件_第2頁(yè)
《PHP》課件3-3 MySQL 數(shù)據(jù)庫(kù)教學(xué)課件_第3頁(yè)
《PHP》課件3-3 MySQL 數(shù)據(jù)庫(kù)教學(xué)課件_第4頁(yè)
《PHP》課件3-3 MySQL 數(shù)據(jù)庫(kù)教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本節(jié)主要內(nèi)容MySQL服務(wù)器的啟動(dòng)和關(guān)閉創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)創(chuàng)建項(xiàng)目數(shù)據(jù)表操作數(shù)據(jù)表數(shù)據(jù)

PHPMyAdmin圖形管理工具的使用MySQL服務(wù)器的啟動(dòng)使用phpStudy控制頁(yè)面進(jìn)行啟動(dòng)使用MySQLConsole命令窗口單擊PHPStudy集成安裝環(huán)境主界面上的『其他選項(xiàng)菜單』-『MySQL工具』-『MySQL命令行』,打開MySQL命令行窗口。MySQL命令窗口成功連接到MySQL服務(wù)器MySQL服務(wù)器的關(guān)閉連接到MySQL服務(wù)器后,可以通過在mysql>命令提示符下鍵入“exit;”或者“quit;”命令來斷開MySQL服務(wù)器。創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)對(duì)象的容器,對(duì)數(shù)據(jù)庫(kù)的操作包括:查看數(shù)據(jù)庫(kù):顯示系統(tǒng)中的全部數(shù)據(jù)庫(kù);創(chuàng)建數(shù)據(jù)庫(kù):創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù);使用數(shù)據(jù)庫(kù):切換默認(rèn)數(shù)據(jù)庫(kù);修改數(shù)據(jù)庫(kù):修改數(shù)據(jù)庫(kù)的參數(shù);刪除數(shù)據(jù)庫(kù):刪除一個(gè)數(shù)據(jù)庫(kù);創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù):顯示系統(tǒng)中的全部數(shù)據(jù)庫(kù);SHOW{DATABASES|SCHEMAS}[LIKE'pattern'|WHEREexpr];

顯示當(dāng)前系統(tǒng)中的全部數(shù)據(jù)庫(kù)。創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name[create_specification[,create_specification]...]其中create_specification:[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_nameIFNOTEXISTS:在建數(shù)據(jù)庫(kù)前進(jìn)行判斷,只有該數(shù)據(jù)庫(kù)目前尚不存在時(shí)才執(zhí)行CREATEDATABASE操作DEFAULT:指定默認(rèn)值。

CHARACTERSET:指定數(shù)據(jù)庫(kù)字符集(Charset),charset_name為字符集名稱

COLLATE:指定字符集的校對(duì)規(guī)則,collation_name為校對(duì)規(guī)則名稱創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)

創(chuàng)建PHP新聞管理系統(tǒng)的數(shù)據(jù)庫(kù)db_news。創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)使用數(shù)據(jù)庫(kù)USEdb_name;

使用新聞管理系統(tǒng)數(shù)據(jù)庫(kù)db_news。查看默認(rèn)數(shù)據(jù)庫(kù)將db_news設(shè)為默認(rèn)數(shù)據(jù)庫(kù)SELECTDATABASE();//查看默認(rèn)數(shù)據(jù)庫(kù)創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)ALTER{DATABASE|SCHEMA}[db_name]alter_specification[,alter_specification]...其中alter_specification:

[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_name

修改新聞管理系統(tǒng)數(shù)據(jù)庫(kù)db_news的默認(rèn)字符集和校對(duì)規(guī)則。ALTERDATABASEdb_newsDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)DROPDATABASE[IFEXISTS]db_nameIFEXISTS:在刪除數(shù)據(jù)庫(kù)前進(jìn)行判斷,只有該數(shù)據(jù)庫(kù)存在時(shí)才執(zhí)行DROPDATABASE操作練一練列出當(dāng)前系統(tǒng)中的全部數(shù)據(jù)庫(kù)。創(chuàng)建新聞管理系統(tǒng)數(shù)據(jù)庫(kù)db_news。使用新聞管理系統(tǒng)數(shù)據(jù)庫(kù)db_news。修改新聞管理系統(tǒng)數(shù)據(jù)庫(kù)db_news的默認(rèn)字符集和校對(duì)規(guī)則。項(xiàng)目數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫(kù)存放數(shù)據(jù)的數(shù)據(jù)對(duì)象,對(duì)數(shù)據(jù)表的操作包括:查看數(shù)據(jù)表:顯示默認(rèn)數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)表;創(chuàng)建數(shù)據(jù)表:創(chuàng)建一個(gè)新的數(shù)據(jù)表;修改數(shù)據(jù)表:更改數(shù)據(jù)表的結(jié)構(gòu)重命名數(shù)據(jù)表:修改數(shù)據(jù)表的名字;刪除數(shù)據(jù)表:刪除一個(gè)數(shù)據(jù)表及其全部數(shù)據(jù);項(xiàng)目數(shù)據(jù)表查看數(shù)據(jù)表SHOW[FULL]TABLES[{FROM|IN}db_name][LIKE'pattern'|WHEREexpr];查看數(shù)據(jù)表的具體信息{DESCRIBE|DESC}tbl_name[col_name|wild]數(shù)據(jù)類型整數(shù)類型名稱長(zhǎng)度用法TINYINT(M)

BIT,BOOL,BOOLEAN1

如為無符號(hào)數(shù),可存儲(chǔ)從0到255的數(shù);否則可存儲(chǔ)從-128到127的數(shù)。

SMALLINT(M)

2如為無符號(hào)數(shù),可以存儲(chǔ)從0到65535的數(shù);否則可以存儲(chǔ)從-32768到32767的數(shù)。

MEDIUMINT(M)

3

如果為無符號(hào)數(shù),可以存儲(chǔ)從0到16777215的數(shù);否則可以存儲(chǔ)從-8388608到8388607的數(shù)

INT(M)

INTEGER(M)

4如果為無符號(hào)數(shù),可以存儲(chǔ)從0到4294967295的數(shù),否則可以存儲(chǔ)從-2147483648到2147483647的數(shù)。BIGINT(M)

8

如果為無符號(hào)數(shù),可以存儲(chǔ)從0到18446744073709551615的數(shù),否則可以存儲(chǔ)從-9223372036854775808到9223372036854775807的數(shù)。

數(shù)據(jù)類型浮點(diǎn)類型名稱長(zhǎng)度用法FLOAT(precision)

4或8

precision是可以直達(dá)53的整數(shù)。如果precision<=24則轉(zhuǎn)為FLOAT,如precision>24且precision<=53則轉(zhuǎn)為DOUBLE。

FLOAT(M,D)4

單精度浮點(diǎn)數(shù)。

DOUBLE(M,D),

DOUBLEPRECISION,

REAL8

雙精度浮點(diǎn)。DECIMAL(M,D),DEC,NUMERIC,FIXED

M+1或M+2

未打包的浮點(diǎn)數(shù)。

數(shù)據(jù)類型日期時(shí)間型名稱長(zhǎng)度用法DATE

3

以YYYY-MM-DD的格式顯示。DATETIME

8

以YYYY-MM-DDHH:MM:SS的格式顯示。TIMESTAMP

4

以YYYY-MM-DDHH:MM:SS的格式顯示。TIME3

以HH:MM:SS的格式顯示。

YEAR1

以YYYY的格式顯示。

數(shù)據(jù)類型字符串類型和其他數(shù)據(jù)類型名稱長(zhǎng)度用法CHAR(M)M定長(zhǎng)字符串。

VARCHAR(M)

最大M變長(zhǎng)字符串。M<=255.

TINYBLOB,TINYTEXT

最大255TINYBLOB為大小寫敏感,而TINYTEXT不是大小寫敏感BLOB,TEXT

最大64K

BLOB為大小敏感的,而TEXT不是大小寫敏感MEDIUMBLOB,

MEDIUMTEXT最大16M

MEDIUMBLOB為大小寫敏感的,而MEDIUMTEXT不是大小敏感

LONGBLOB,

LONGTEXT

最大4G

LONGBLOB為大小敏感的,而LONGTEXT不是大小敏感

ENUM(VALUE1,….)

1或2

最大可達(dá)65535個(gè)不同的值。

SET(VALUE1,….)

可達(dá)8

最大可達(dá)64個(gè)不同的值。

數(shù)據(jù)類型創(chuàng)建數(shù)據(jù)表CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[([column_definition,...|[index_definition])][table_option][select_statement];TEMPORARY:該關(guān)鍵字表示用CREATE命令新建的表為臨時(shí)表column_definition:列定義,包括列名、數(shù)據(jù)類型,空值聲明和完整性約束。index_definition:表索引項(xiàng)定義,主要定義表的索引、主鍵、外鍵等table_option:用于描述表的選項(xiàng)。select_statement:可以在CREATETABLE語句的末尾添加一個(gè)SELECT語句,在現(xiàn)有表的基礎(chǔ)上創(chuàng)建表。創(chuàng)建項(xiàng)目數(shù)據(jù)表

創(chuàng)建新聞管理系統(tǒng)數(shù)據(jù)庫(kù)中的用戶表。createtabletbl_user(uidint(11),unamevarchar(50),upassvarchar(20),uemailvarchar(50),headimgvarchar(50),regtimetimestamp,gendersmallint(6),powersmallint(6));創(chuàng)建項(xiàng)目數(shù)據(jù)表列定義col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT][UNIQUE[KEY]|[PRIMARY]KEY][COMMENT'string'][reference_definition]UNIQUEKEY|PRIMARYKEY:PRIMARYKEY和UNIQUEKEY都表示字段中的值是唯一的。PRIMARYKEY表示設(shè)置為主鍵,一個(gè)表只能定義一個(gè)主鍵,主鍵一定要為NOTNULLCOMMENT'string':對(duì)于列的描述,string是描述的內(nèi)容。createtabletbl_user(uidint(11)notnullauto_incrementcomment'用戶編號(hào)',unamevarchar(50)notnullcomment'用戶名',upassvarchar(20)notnullcomment'密碼',uemailvarchar(50)notnullcomment'郵箱',headimgvarchar(50)notnullcomment'頭像',regtimetimestampnotnulldefaultcurrent_timestampcomment'注冊(cè)時(shí)間',gendersmallint(6)notnullcomment'性別',powersmallint(6)notnullcomment'用戶權(quán)限',

primarykey(uid)/*設(shè)置用戶編號(hào)為主鍵*/);創(chuàng)建項(xiàng)目數(shù)據(jù)表表選項(xiàng){ENGINE|TYPE}=engine_name/*存儲(chǔ)引擎*/|AUTO_INCREMENT=value/*初始值*/|[DEFAULT]CHARACTERSETcharset_name[COLLATEcollation_name]/*默認(rèn)字符集*/……特性MyISAM(默認(rèn))InnoDB構(gòu)成table實(shí)際保存為三個(gè)文件,.frm存儲(chǔ)表定義,.MYD存儲(chǔ)數(shù)據(jù),.MYI存儲(chǔ)索引由一個(gè)名為ibdata1的自動(dòng)擴(kuò)展數(shù)據(jù)文件和兩個(gè)名為ib_logfile0與b_logfile1的日志文件構(gòu)成。事務(wù)處理是一種非事務(wù)性的引擎,提供高速存儲(chǔ)和檢索,以及全文搜索能力,但是不提供事務(wù)支持InnoDB提供事務(wù)支持事務(wù),外部鍵等高級(jí)數(shù)據(jù)庫(kù)功能創(chuàng)建項(xiàng)目數(shù)據(jù)表

創(chuàng)建用戶表的最終代碼createtabletbl_user(uidint(11)notnullauto_incrementcomment'用戶編號(hào)',unamevarchar(50)notnullcomment'用戶名',upassvarchar(20)notnullcomment'密碼',uemailvarchar(50)notnullcomment'郵箱',headimgvarchar(50)notnullcomment'頭像',regtimetimestampnotnulldefaultcurrent_timestampcomment'注冊(cè)時(shí)間',gendersmallint(6)notnullcomment'性別',powersmallint(6)notnullcomment'用戶權(quán)限',

primarykey(uid)/*設(shè)置用戶編號(hào)為主鍵*/)ENGINE=InnoDBDEFAULTCHARSET=utf8;創(chuàng)建數(shù)據(jù)約束約束是一個(gè)命名規(guī)則和機(jī)制:即通過對(duì)數(shù)據(jù)的增、刪、改操作加一些限制,以保證數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性,MySQL中支持5種約束“不為空”缺省值Unique約束主鍵約束外鍵約束定義約束有兩種方式:列約束和表約束列約束定義在一個(gè)列上,只能對(duì)該列起約束作用表約束一般定義在一個(gè)表的多個(gè)列上,要求被約束列滿足一定的關(guān)系。創(chuàng)建數(shù)據(jù)約束NOTNULL約束被約束的列不能包含NULL值,只能是列約束CREATETABLEtbl_user( uidINT(11)NOTNULL);指定UID列不能為空創(chuàng)建數(shù)據(jù)約束DEFAULT約束DEFAULT約束用于向列中插入默認(rèn)值,只能是列約束CREATETABLEtbl_user(nameVARCHAR(20)NOTNULL,passwordVARCHAR(20)NOTNULL,regTimetimestampNOTNULLDEFAULTCURRENT_TIMESTAMP);指定注冊(cè)日期的默認(rèn)值為當(dāng)前時(shí)間創(chuàng)建數(shù)據(jù)約束UNIQUE約束UNIQUE約束要求該列中所有值都是唯一的,既可以定義成列約束,也可以定義成表約束CREATETABLEtbl_user(nameVARCHAR(20)NOTNULLUNIQUE,/*列級(jí)約束*/passwordVARCHAR(20)NOTNULL);CREATETABLEtbl_user(nameVARCHAR(20)NOTNULL,passwordVARCHAR(20)NOTNULL,UNIQUE(name)/*表級(jí)約束*/);創(chuàng)建數(shù)據(jù)約束PRIMARYKEY約束用于規(guī)定表中被約束的列只能包含唯一的非NULL的值,既可以定義成列約束,也可以定義成表約束CREATETABLEtbl_user(nameVARCHAR(20)NOTNULLPRIMARYKEY,/*列級(jí)約束*/passwordVARCHAR(20)NOTNULL);CREATETABLEtbl_user(nameVARCHAR(20)NOTNULL,passwordVARCHAR(20)NOTNULL,

PRIMARYKEY(name)/*表級(jí)約束*/);創(chuàng)建數(shù)據(jù)約束FOREIGNKEY約束也稱為外鍵約束,用于建立表間關(guān)系,表明被外鍵修飾的字段在另一張表中(也稱主表)是主關(guān)鍵字,使用外鍵可以保證數(shù)據(jù)的一致性和完整性。MYSQL中對(duì)外鍵提供了有限的支持,目前只有InnoDB引擎支持外鍵,它要求所有關(guān)聯(lián)表都必須是InnoDB型,而且不能是臨時(shí)表只支持表級(jí)約束實(shí)現(xiàn)[CONSTRAINT[symbol]]FOREIGNKEY[index_name](index_col_name,...)/*外鍵列*/REFERENCEStbl_name(index_col_name,...)/*引用列*/[ONDELETEreference_option]/*刪除時(shí)的關(guān)聯(lián)操作方式*/[ONUPDATEreference_option]/*修改時(shí)的關(guān)聯(lián)操作方式*/

reference_option:RESTRICT|CASCADE|SETNULL|NOACTION/*限制|級(jí)聯(lián)|設(shè)空|無*/創(chuàng)建數(shù)據(jù)約束MYSQL中的外鍵約束示例CREATETABLEtbl_newsclass(classidINTNOTNULLPRIMARYKEY)ENGINE=innodb;CREATETABLEtbl_news(newsidINTNOTNULLPRIMARYKEY,classidINTNOTNULL,FOREIGNKEY(classid)REFERENCEStbl_newsclass(classid))ENGINE=innodb;創(chuàng)建新聞分類表,并將類別編號(hào)設(shè)為主鍵創(chuàng)建新聞表,將新聞編號(hào)設(shè)為主鍵,將所屬類別設(shè)為外鍵,引用新聞?lì)悇e表中的classid列課后練習(xí)完成新聞管理系統(tǒng)的數(shù)據(jù)表創(chuàng)建:用戶表的創(chuàng)建新聞分類表的創(chuàng)建新聞表的創(chuàng)建新聞評(píng)論表的創(chuàng)建新聞點(diǎn)贊表的創(chuàng)建操作MySQL語句創(chuàng)建數(shù)據(jù)庫(kù)和表后,需要對(duì)表中的數(shù)據(jù)進(jìn)行操作,包括插入、刪除、修改和查詢操作,可以通過SQL語句來實(shí)現(xiàn)。插入數(shù)據(jù)insert語句查詢數(shù)據(jù)select語句修改數(shù)據(jù)update語句刪除數(shù)據(jù)delete語句數(shù)據(jù)管理語句插入數(shù)據(jù):INSET或REPLACE語句INSERT[LOW_PRIORITY|DELAYED|HIGH_PRIORITY][IGNORE][INTO]tbl_name[(col_name,...)]VALUES({expr|DEFAULT},...),(...),...[ONDUPLICATEKEYUPDATEcol_name=expr,...]

例:向新聞分類表中插入一條數(shù)據(jù),其SQL語句如下:insertintotbl_newsclass(classname,classdesc)values('軍事','關(guān)于軍事的新聞');數(shù)據(jù)管理語句修改數(shù)據(jù):UPDATEUPDATE

[LOW_PRIORITY][IGNORE]tbl_name

SETcol_name1=expr1[,col_name2=expr2...]

[WHEREwhere_definition]

[ORDERBY...]

[LIMITrow_count]

將用戶表中uId為1的用戶性別修改為男性。UPDATEtbl_userSETgender=1WHEREuid=1;數(shù)據(jù)管理語句刪除數(shù)據(jù):DELETL語句DELETEFROMtbl_name[WHEREwhere_definition]FROM子句:用于指明從何處刪除數(shù)據(jù),tbl_name為要?jiǎng)h除數(shù)據(jù)的表名,注意:MYSQL中該關(guān)鍵字不可省略;WHERE子句:用于指明刪除時(shí)的過濾條件,如果不指明,則默認(rèn)為刪除全部數(shù)據(jù);

將用戶表中uId為3的記錄刪除DELETEFROMtbl_userWHEREuid=3;數(shù)據(jù)查詢語句查詢數(shù)據(jù)庫(kù):SELECTselectselect_expr[,select_expr...]/*select子句*/

from

table_references/*from子句*/

wherewhere_condition/*where子句*/

groupby{col_name|expr|position}/*groupby子句*/

having

where_condition/*having子句*/

orderby{col_name|expr|position}[asc|desc]/*orderby子句*/limit

[offset]row_count/*limit子句*/數(shù)據(jù)查詢語句Select子句

查詢用戶名、性別和注冊(cè)時(shí)間。SELECTuName,gender,regtimeFROMtbl_user;數(shù)據(jù)查詢語句select子句

查詢用戶表中的全體用戶的詳細(xì)信息。SELECT*FROMtbl_newsclass;數(shù)據(jù)查詢語句select子句

使用別名顯示用戶的用戶名、性別和注冊(cè)時(shí)間。SELECTuName'用戶名',genderAS'性別',regtimeAS'注冊(cè)時(shí)間'FROMtbl_user;①別名如果是字母或數(shù)字時(shí),可以省略定界符“’”,但如果別名中含有特殊字符,如空格時(shí)則必須使用定界符“’”②WHERE子句中不能使用列別名SELECTuNameAS'用戶名',

CASEWHENgenderISNULLTHEN'保密'/*為空時(shí)顯示保密*/WHENgender=1THEN'男'/*為1時(shí)顯示男*/WHENgender=2THEN'女'/*為2時(shí)顯示女*/ENDAS'性別'FROMtbl_user;數(shù)據(jù)查詢語句select子句CASEWHEN條件1THEN表達(dá)式1WHEN條件2THEN表達(dá)式2……ELSE表達(dá)式END

顯示用戶表中的用戶名和性別,要求將性別的查詢結(jié)果替換為“男”或“女”。數(shù)據(jù)查詢語句查詢數(shù)據(jù)庫(kù):SELECT聚合函數(shù):用于對(duì)一組值進(jìn)行計(jì)算,返回單個(gè)值函數(shù)名說明COUNT統(tǒng)計(jì)給定表達(dá)式中所有值的數(shù)目MAX返回給定表達(dá)式中所有值中的最大值MIN返回給定表達(dá)式中所有值中的最小值SUM返回給定表達(dá)式中所有值的和AVG返回給定表達(dá)式中所有值的平均值數(shù)據(jù)查詢語句查詢數(shù)據(jù)庫(kù):

溫馨提示

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

評(píng)論

0/150

提交評(píng)論