版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、網(wǎng)頁程式設(shè)計(jì)PHP+MySQLCHAPTER 16 資料庫的SQL語法林佩蓉2008/05/122022/10/151網(wǎng)頁程式設(shè)計(jì)-日資工二甲網(wǎng)頁程式設(shè)計(jì)PHP+MySQLCHAPTER 16 資料庫什麼是SQLSQL (Structure Query Language):幾乎所有的資料庫廠商都使用SQL為其標(biāo)準(zhǔn)的資料查詢語言。因此絕大部份電子商務(wù)的交易行為都會(huì)使用SQL語言所撰寫程式碼來存取或查詢資料庫內(nèi)所存放之資料。上週所提到的phpMyAdmin可以利用圖形介面點(diǎn)選,並且自動(dòng)產(chǎn)生SQL語法,但是寫程式控制資料庫的過程仍須瞭解SQL結(jié)構(gòu)。SQL常用的語法不外乎查詢、新增、修改、刪除,教材所
2、提到的語法並不複雜,且已足夠提供基本資料庫控制使用。請先連到此網(wǎng)址建立p16-5資料表 (test)2022/10/152網(wǎng)頁程式設(shè)計(jì)-日資工二甲什麼是SQLSQL (Structure Query Lan2022/10/153網(wǎng)頁程式設(shè)計(jì)-日資工二甲2022/10/113網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.1 哪裡用得到SQL語法在程式中,我們只要會(huì)用到資料庫存取的地方,一定要用SQL語法!通常會(huì)把SQL語法寫在程式裡,再配合PHP的MySQL函數(shù)去進(jìn)行資料庫存取動(dòng)作。在phpMyAdmin中的SQL欄位中,也可以直接下SQL語法命令來管理MySQL,簡單又好用。在windows的命令提示字元或M
3、S-DOS模式,或是Unix-like的終端機(jī)下,利用mysql指令進(jìn)入MySQL的操作介面亦可控制資料庫,但一般使用者較少用。把SQL語法存成純文字檔案,利用phpMyAdmin中的匯入功能,把檔案匯入,此方法的優(yōu)點(diǎn)是,如果下次要處理類似的資料庫管理動(dòng)作,只要拿舊檔小改一下就可以再匯入使用了。2022/10/154網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.1 哪裡用得到SQL語法在程式中,我們只要會(huì)用到資料庫16.2 和資料庫相關(guān)的SQL語法以下為常見的SQL語法:show databases;顯示所有資料庫。create database資料庫名稱;開一個(gè)新的資料庫drop資料庫名稱;刪除整個(gè)指定的資
4、料庫,包含架構(gòu)、資料use資料庫名稱;選取某個(gè)資料庫show tables from資料庫名稱查看某資料庫底下所有的資料表有哪些。2022/10/155網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.2 和資料庫相關(guān)的SQL語法以下為常見的SQL語法:216.3 和資料表相關(guān)的SQL語法資料庫的指令較簡單,資料表的管理指令比較複雜些,常見的指令如下:create table資料表名稱;建立資料表 (P16-5)create table資料表名稱 (欄位名稱1資料類型 欄位設(shè)定選項(xiàng),欄位名稱2資料類型 欄位設(shè)定選項(xiàng), 索引 欄位);drop table資料表名稱;刪掉整個(gè)資料表alter table資料表名稱 修
5、改內(nèi)容;修改資料表欄位optimize table資料表名稱;重新整理資料表內(nèi)容,常異動(dòng)的table作整理describe資料表名稱;顯示資料表的欄位設(shè)定show columns from資料表名稱;顯示某資料表的欄位設(shè)定show index from資料表名稱;顯示某資料表的索引欄位設(shè)定show tables;顯示目前作用中的資料表2022/10/156網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3 和資料表相關(guān)的SQL語法資料庫的指令較簡單,資料表16.3.1.1 欄位設(shè)定欄位名稱資料類型欄位設(shè)定選項(xiàng)num tinyint unsigned not null auto_increment primary
6、 key ,num就是欄位名稱必須根據(jù)您程式的需求來設(shè)定欄位tinyint (P15-4)則是資料類型看您的欄位值適合用什麼格式來存放not null auto_increment primary key則是欄位設(shè)定選項(xiàng),不見得每個(gè)欄位都有需要。欄位名稱和資料類型必須存在,設(shè)定選項(xiàng)視情況而定。本行SQL語法說明詳見P16-102022/10/157網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.1.1 欄位設(shè)定欄位名稱資料類型欄位設(shè)定選項(xiàng)2常見的設(shè)定選項(xiàng)null (預(yù)設(shè))、not null無值設(shè)定,null是一種狀態(tài),就是沒有值的狀態(tài)!not null就是不允許欄位沒有值!所以通常會(huì)配合default預(yù)設(shè)值
7、來運(yùn)作。被設(shè)成索引的欄位是不允許null的!default 預(yù)設(shè)內(nèi)容設(shè)定欄位的預(yù)設(shè)值,也就是在新增資料時(shí),若沒有給欄位一個(gè)值,就會(huì)以預(yù)設(shè)值自動(dòng)填入。沒有給欄位一個(gè)值指的是在新增或替換時(shí),根本沒有指定該欄位,若是在新增時(shí)有指定該欄,但存到該欄位的是空字串的話,如此算是有給值的,就不算是給預(yù)設(shè)值。auto_increment自動(dòng)編號(hào)(加流水號(hào)),一個(gè)資料表只能有一個(gè)欄位使用auto_increment,而且此欄位必須是整數(shù)數(shù)值類型資料,而且這個(gè)欄位也必須設(shè)成索引!每次新一筆資料時(shí),此欄位就自動(dòng)加一。2022/10/158網(wǎng)頁程式設(shè)計(jì)-日資工二甲常見的設(shè)定選項(xiàng)null (預(yù)設(shè))、not null20
8、22/16.3.1.2 資料庫索引沒有索引的資料表運(yùn)作起來效率可能會(huì)差了上百倍,就像書沒有目錄或是字典少了字母索引一樣,所以通常設(shè)好欄位後,我們會(huì)指定某一欄當(dāng)作是資料庫索引,用來加速讀取效率。通常會(huì)在建立資料表的時(shí)候順便指定索引欄,或是事後再利用create index的SQL語法來建立。2022/10/159網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.1.2 資料庫索引沒有索引的資料表運(yùn)作起來效率可能資料庫索引primary key (欄位名稱)主鍵索引,一個(gè)資料表也只能有一個(gè),因此,通常都設(shè)給有auto_increment的欄位,也就是流水號(hào)欄位。key 索引名稱 (欄位名稱一,欄位名稱二,.)ke
9、y和index相同,一個(gè)表可以有多個(gè)!若某個(gè)欄位常被用來當(dāng)作搜尋的關(guān)鍵,則可以設(shè)成key或index,也可以利用兩個(gè)以上的欄位來組成一個(gè)新的索引的!例如:key somebody (name, birthday); somebody是新建的索引,由name和birthday這兩個(gè)欄位的值所組成2022/10/1510網(wǎng)頁程式設(shè)計(jì)-日資工二甲資料庫索引primary key (欄位名稱)2022/10資料庫索引unique 索引名稱 (欄位名稱一,欄位名稱二,.)不重複索引或唯一索引,也就是說該欄位中的值是不能重複的,一個(gè)表可以有多個(gè)unique索引!可以利用兩個(gè)以上的欄位來組成一個(gè)新的uniq
10、ue索引。例如:學(xué)年和班級就可以組成一個(gè)unique索引,像是96學(xué)年度1年1班。一個(gè)表可以有多個(gè)unique索引,primary key也是不重複索引,但它只能設(shè)一個(gè)。例如:身份證或?qū)W號(hào)欄位等就可以成unique索引。2022/10/1511網(wǎng)頁程式設(shè)計(jì)-日資工二甲資料庫索引unique 索引名稱 (欄位名稱一,欄位特殊字符這個(gè)符號(hào)通常在左邊數(shù)字鍵1的左邊,也就是和符號(hào)是同一個(gè)按鍵。在SQL語法中,若是有用到一些保留字一樣的字或者特殊字符,為了避免MySQL誤認(rèn)導(dǎo)致執(zhí)行錯(cuò)誤,因此需要用來括起來!例如SELECT * from select where select.id 100; SELEC
11、T : SQL的查詢語法select : 資料表名稱 為了怕混淆,所以把select包起來,SQL就可以正常執(zhí)行 如果資料表或欄位沒有用到這一類的保留字,就不用加了請?jiān)趖est資料表多增加一個(gè)欄位”select”,並設(shè)值為1 ,再試著將筆記錄用SQL語法列出來。2022/10/1512網(wǎng)頁程式設(shè)計(jì)-日資工二甲特殊字符這個(gè)符號(hào)通常在左邊數(shù)字鍵1的左邊,也就是和16.3.2 其他和建立資料表相關(guān)的語法create table if not exists資料表名稱 (.)在建立資料表的時(shí)候,檢查該表不存在才建立。CREATE TEMPORARY TABLE資料表名稱 (.)建立暫存資料表的用法,這種
12、資料表隨著使用者結(jié)束連線後,自己就會(huì)消失。在撰寫SQL語法的時(shí)候要注意,括號(hào)中的每一行最後,都要有個(gè)”,”逗號(hào)隔開,但是最後一行不需要逗號(hào),否則會(huì)有錯(cuò)誤訊息喔!2022/10/1513網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.2 其他和建立資料表相關(guān)的語法create tab16.4 欄位資料存取的SQL語法資料存取、修改方法是最重要的,若要寫一個(gè)結(jié)合MySQL資料庫的PHP程式,就要先搞懂怎麼用SQL語法讀取、寫入、更改資料!為了方便各位按照教材SQL指令輸入,請先依P16-19的ALTER語法 先修改table名稱: ALTER TABLE test RENAME AS practice;插入:i
13、nsert into資料表名稱 欄位values(欄位值); insert into practice (name, sex, birthday, salary) values (“tad”,”男”,”1973/06/16”,35000); 因?yàn)閚um欄位會(huì)自動(dòng)新增流水號(hào),所以新增時(shí)不需要為此欄位輸入值。也可用省略的寫法,但是要確定各個(gè)值有照欄位順序排列,但是懶人的寫法是很容易出錯(cuò)的! insert into practice values(“ “,”tad”,”男”,”1973/06/16”,35000);注意: 以下SQL指令複製到phpMyAdmin須重新鍵入半形的 ”2022/10/1
14、514網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4 欄位資料存取的SQL語法資料存取、修改方法是最重要2022/10/1515網(wǎng)頁程式設(shè)計(jì)-日資工二甲2022/10/1115網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.2 一次新增數(shù)筆資料insert into practice (name,sex,birthday ,salary) values(apple,男,1973/06/10,25000),(tim,男,1972/01/10,50000),(hui,女,1980/03/07,35000);以上這一行,就可以一口氣輸入三筆資料!2022/10/1516網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.2 一次新增數(shù)筆
15、資料insert into p16.4.1.3 有空才寫入insert LOW_PRIORITY into practice (name,sex,birthday ,salary) values(tad,男,1973/06/16,35000);若您是希望讓MySQL插入的動(dòng)作一定要等到?jīng)]有人在使用資料庫時(shí),MySQL才執(zhí)行插入動(dòng)作,那您可以在INSERT的後面加上:LOW_PRIORITY。例如:2022/10/1517網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.3 有空才寫入insert LOW_PRIOR16.4.1.4 到一定的量再寫入insert DELAYED into practice
16、(name,sex,birthday ,salary) values(tad,男,1973/06/16,35000);DELAYED則是會(huì)先把您的插入指令做一個(gè)預(yù)約動(dòng)作,等到這些指令的數(shù)目達(dá)到某一個(gè)量,MySQL才一口氣做完所有的插入動(dòng)作,這樣子的話,是有助於MySQL的效率改善的。若是您的資料庫並不是非常操的話,那這兩個(gè)關(guān)鍵字應(yīng)該是蠻少被用到的!2022/10/1518網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.4 到一定的量再寫入insert DELAYE16.4.1.5 以前面的欄位值為值insert into practice (num,name,sex,birthday ,salary)
17、VALUES(5,alice,女,1976/12/01,30000+num*1000);請?jiān)囍鴪?zhí)行此行SQL指令後面的欄位值可以用前面欄位的值來做運(yùn)算產(chǎn)生喔!salary欄位的值,是以該筆資料的num乘以1000再加上30000來計(jì)算,此例的salary值應(yīng)該是35000。insert into practice (num, name,sex,birthday ,salary) VALUES(“alice”,“女”,“1976/12/01”,30000+num*1000); 不能這樣寫喔! 因?yàn)閚um沒有值,所以計(jì)算式無效。2022/10/1519網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.5 以前
18、面的欄位值為值insert into 16.4.1.6 關(guān)於replaceREPLACE的用法和INSERT用法是一樣的,差別只在於,若是有規(guī)定欄位值不能重複的欄位(UNIQUE),REPLACE會(huì)直接用新資料把舊資料覆蓋掉! 而INSERT則是新增一筆。replace into 資料表名稱 (欄位1,欄位2.) values (值1,值2.) replace into practice (num, name, sex, birthday, salary) values (5, “huihui”,”女”,”1980/03/07”,40000);2022/10/1520網(wǎng)頁程式設(shè)計(jì)-日資工二甲1
19、6.4.1.6 關(guān)於replaceREPLACE的用法和I16.4.1.6 關(guān)於replace若是像以下的例子,在primary key或unique沒有和別人重複的值,則以下SQL的replace指令執(zhí)行後的結(jié)果和用insert是一樣的。 replace into practice (num, name, sex, birthday, salary) values ( 7, “phebe”,”女”,”1973/03/10”,60000);2022/10/1521網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.1.6 關(guān)於replace若是像以下的例子,在pr常用的SQL語法結(jié)構(gòu)取代(P16-24):rep
20、lace into資料表名稱 欄位values(欄位值); 查詢(P16-26):select欄位from資料表名稱where查詢條件;加入(P16-23):insert into 資料表名稱 欄位 values (欄位值);更新(P16-33):update資料表名稱set欄位=新值where更新條件;刪除(P16-34):delete from資料表名稱where刪除條件;2022/10/1522網(wǎng)頁程式設(shè)計(jì)-日資工二甲常用的SQL語法結(jié)構(gòu)取代(P16-24):replace i16.4.2 讀出資料的SQL語法select指令是最常用到SQL語法,它的變化很多,指令格式上要多注意!SEL
21、ECT 查詢的欄位 FROM 資料表名稱 附加的篩選條件附加的篩選條件有以下幾個(gè)東西可以拿來篩選資料!注意喔!由上到下就是其語法的先後順序喔!where 篩選條件group by 欄位名稱having group的篩選條件order by unsigned_integer | 欄位名稱 | formula asc | desc ,.limit 起點(diǎn), 筆數(shù)2022/10/1523網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2 讀出資料的SQL語法select指令是最常用到16.4.2.1 SELECT讀出範(fàn)例讀出所有資料:select * from practice;只找部份欄位資料:select na
22、me,salary from practice;加入篩選條件:select name,birthday,salary from practice where sex=男;select name,birthday,salary from practice where sex=男 and salary 30000;2022/10/1524網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.1 SELECT讀出範(fàn)例讀出所有資料:202216.4.2.1 SELECT讀出範(fàn)例以某欄位為群組:select salary from practice group by salary;group by會(huì)把salary欄位相
23、同的值當(dāng)作一個(gè)群組group by的結(jié)果等於找出欄位的不同值,用distinct關(guān)鍵字指令其實(shí)更單純,不需要用group by:select distinct salary from practice;2022/10/1525網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.1 SELECT讀出範(fàn)例以某欄位為群組:202MySQL的count( )函數(shù)通??梢岳胏ount ( )函數(shù),了解資料庫中,某種資料的分佈情況,配合group by更能求出該群的數(shù)目:select salary, count (salary) from practice group by salary2022/10/1526網(wǎng)頁程
24、式設(shè)計(jì)-日資工二甲MySQL的count( )函數(shù)通常可以利用count ( 16.4.2.5 和 group by 一起用的函數(shù)有幾個(gè)MySQL函數(shù)是可以視情況配合group by使用,如果計(jì)算以下數(shù)值可單獨(dú)使用,若要算出各群組的相關(guān)結(jié)果則可和group by一起配合COUNT(欄位):計(jì)算該欄位值的數(shù)目,COUNT(*)非???,可以算出所有的資料有幾筆 select count(salary) from practice;#6AVG(欄位):計(jì)算該欄位值的平均值 select avg(salary) from practice;#40833.3333SUM(欄位):計(jì)算該欄位值的總和 se
25、lect sum(salary) from practice;#245000MIN(欄位):找出該欄位值的最小值 select min(salary) from practice;#250002022/10/1527網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.5 和 group by 一起用的函數(shù)有幾個(gè)M16.4.2.5 和 group by 一起用的函數(shù)MAX(欄位):找出該欄位值的最大值 select max(salary) from practice;#60000STD(欄位):計(jì)算該欄位值的標(biāo)準(zhǔn)差 select std(salary) from practice;#11334.5588 ST
26、DDEV(欄位):計(jì)算該欄位值的標(biāo)準(zhǔn)差(為了與Oracle相容的函數(shù)) select stddev(salary) from practice; #11334.5588 . 2022/10/1528網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.5 和 group by 一起用的函數(shù)MAX(16.4.2.6 用having篩選group by 的結(jié)果select salary, count(salary) as sc from practice group by salary having sc1having通常和 group by 一起使用,他的用法和where很像,都是用來做值的篩選。唯一的差別是:
27、having是在MySQL傳回結(jié)果後才進(jìn)行篩選。count(salary)用as設(shè)定一個(gè)別名為sc,sc代表篩選出來的個(gè)數(shù)having sc 1篩選出個(gè)數(shù)在1以上的資料,所以得到的只有35000這個(gè)值,也就是只有35000這個(gè)值才有2筆以上的記錄2022/10/1529網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.6 用having篩選group by 的結(jié)果16.4.2.7 針對欄位值排序select name,birthday from practice order by birthday;select name,birthday from practice order by birthday d
28、esc;查詢practice資料表中name,birthday欄位的資料,並且以birthday欄位為準(zhǔn)來排序(order by birthday),若沒特別指定,排序的方式都是從小到大(asc)來進(jìn)行排序。從大排到小怎麼辦?很簡單,加入desc就行了2022/10/1530網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.7 針對欄位值排序select name,bi16.4.2.8 限制輸出筆數(shù)select * from practice limit 0,3用limit來限制列出資料的筆數(shù)是很常見的用法,尤其在做資料分頁的時(shí)候更是常用!limit後面有兩個(gè)數(shù)字,第一個(gè)數(shù)字代表的是筆數(shù)起點(diǎn),第二個(gè)數(shù)字是
29、列出筆數(shù)!也就是說limit 0,3就是從第0筆資料開始讀,一次讀3筆的意思!我們眼中的第一筆資料在MySQL中指的是第0筆select * from practice limit 2,32022/10/1531網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.8 限制輸出筆數(shù)select * from p16.4.2.9 隨機(jī)取出資料select num,name,sex from practice order by rand() limit 0,3;這功能也蠻常用到,例如我們要從資料庫隨便抽出三個(gè)人來出公差,那麼我們可以利用order by rand()搭配limit來達(dá)到隨機(jī)取出三人的目的。rand
30、()是MySQL的函數(shù),order by rand()的意思就是說,順序隨便亂排,所以每次執(zhí)行秀出來的結(jié)果順序一定會(huì)不一樣,然後,我們每次只取前三筆資料,如此就達(dá)成了隨機(jī)取三人的目的囉!2022/10/1532網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.4.2.9 隨機(jī)取出資料select num,name16.4.2.10 找出NULL值select * from practice where salary is null要想尋找NULL值方法比較特別,您必須使用IS NULL測試,而非 where xxx=null。以上都是select 指令基本的用法。2022/10/1533網(wǎng)頁程式設(shè)計(jì)-日資工二甲1
31、6.4.2.10 找出NULL值select * from16.3.3 修改資料表的方法資料表建立好之後,難免需要修改,也不可能要使用者直接用phpMyAdmin修改結(jié)構(gòu),我們可以利用php函數(shù)來執(zhí)行修改資料表結(jié)構(gòu)的語法,因此,學(xué)習(xí)如何修改資料表的結(jié)構(gòu)是很重要的!新增欄位:ALTER TABLE資料表名稱 ADD欄位名稱 資料型態(tài) 欄位設(shè)定選項(xiàng) FIRST | AFTER欄位名稱 ALTER TABLE practice ADD tel varchar(50) AFTER name;說明: 在practice資料表中,在name欄位後面新增一個(gè)tel欄位,並設(shè)定其資料型態(tài)為varchar(50
32、),沒有欄位設(shè)定選項(xiàng)。2022/10/1534網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3 修改資料表的方法資料表建立好之後,難免需要修改16.3.3.2 新增主鍵索引ALTER TABLE資料表名稱 ADD PRIMARY KEY (欄位名稱,.)說明: 除非當(dāng)初建立資料表時(shí),沒有建立primary key,否則此語法是很少用的,若已經(jīng)有primary key就無法用此語法! 而且設(shè)定primary key 的欄位不可以是空值。ALTER TABLE test ADD primary key (num);#1068 - Multiple primary key defined 2022/10/153
33、5網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.2 新增主鍵索引ALTER TABLE資料表名16.3.3.3 新增一般索引ALTER TABLE資料表名稱 ADD INDEX 索引名稱 (欄位名稱,.)索引名稱就是替索引取個(gè)名字,可有可無,一般設(shè)定和欄位同名即可ALTER TABLE practice ADD INDEX (name);2022/10/1536網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.3 新增一般索引ALTER TABLE資料表名16.3.3.4 新增唯一索引ALTER TABLE資料表名稱 ADD UNIQUE 索引名稱 (欄位名稱,.)說明:新增UNIQUE(不重複索引或唯一索引),
34、索引名稱一樣可有可無, 一般設(shè)定和欄位同名即可ALTER TABLE practice ADD UNIQUE (tel);2022/10/1537網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.4 新增唯一索引ALTER TABLE資料表名16.3.3.5 更改欄位預(yù)設(shè)值A(chǔ)LTER TABLE資料表名稱 ALTER COLUMN col_name SET DEFAULT預(yù)設(shè)值 | DROP DEFAULT說明:更改欄位預(yù)設(shè)值,COLUMN不加也可以,可以替欄位加入預(yù)設(shè)值(SET DEFAULT預(yù)設(shè)值)或是移除預(yù)設(shè)值(DROP DEFAULT)ALTER TABLE practice ALTER sex
35、SET DEFAULT 女;2022/10/1538網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.5 更改欄位預(yù)設(shè)值A(chǔ)LTER TABLE資料表16.3.3.6更改欄位名稱、設(shè)定ALTER TABLE資料表名稱 CHANGE COLUMN 舊欄位名稱 新欄位設(shè)定說明:更改欄位名稱、設(shè)定(或是以新欄位取代舊欄位), COLUMN不加也可以,這等於是把某個(gè)舊欄位重新以另一個(gè)欄位來取代的意思說明:新欄位設(shè)定,和建立資料表時(shí),欄位的設(shè)定方法一樣,包括”欄位名稱” 、”資料屬性” 、”和欄位設(shè)定選項(xiàng)” 。COLUMN不加一樣可以執(zhí)行ALTER TABLE practice CHANGE COLUMN tel p
36、id varchar(10) UNIQUE;2022/10/1539網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.6更改欄位名稱、設(shè)定ALTER TABLE資料16.3.3.7 修改欄位設(shè)定ALTER TABLE資料表名稱 MODIFY COLUMN 欄位設(shè)定說明: 修改欄位設(shè)定,COLUMN不加也可以,後面的”欄位設(shè)定”和建立資料表時(shí),欄位的定方法是一樣的,包括”欄位名稱” 、”資料屬性”和”欄位定選項(xiàng)” 。ALTER TABLE practice MODIFY pid varchar(10) not null default ;在practice資料表中,把欄位pid修改成varchar(10),
37、並將null的設(shè)定改成not null,順便設(shè)定預(yù)設(shè)值為空字串。2022/10/1540網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.7 修改欄位設(shè)定ALTER TABLE資料表名16.3.3.8 刪除一個(gè)欄位ALTER TABLE資料表名稱 DROP COLUMN 欄位名稱說明: 刪除一個(gè)欄位,COLUMN不加也可以,只要指定好”欄位名稱”給它,它就會(huì)刪指定的欄位。ALTER TABLE practice DROP pid;2022/10/1541網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.8 刪除一個(gè)欄位ALTER TABLE資料表名16.3.3.9 刪除主鍵索引ALTER TABLE資料表名稱 DRO
38、P PRIMARY KEY說明: 因?yàn)閜rimary key只有一個(gè),所以不需要額外指定就知道要?jiǎng)h那一個(gè)了ALTER TABLE practice DROP PRIMARY KEY;知道語法就好,別真的去執(zhí)行?。h除一般索引:ALTER TABLE資料表名稱 DROP INDEX索引名稱只要指定索引名稱就能刪掉該索引ALTER TABLE practice DROP INDEX name;2022/10/1542網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.9 刪除主鍵索引ALTER TABLE資料表名16.3.3.11修改資料表名稱ALTER TABLE資料表名稱 RENAME AS 新資料表名稱說
39、明:修改資料表名稱,只要指定新資料表名稱,就能把資料表的名稱改成新的名稱,其中AS有沒有都無所謂。ALTER TABLE test RENAME as practice;2022/10/1543網(wǎng)頁程式設(shè)計(jì)-日資工二甲16.3.3.11修改資料表名稱ALTER TABLE資料表16.4.3 修改資料的SQL語法修改某一筆資料內(nèi)容可用update語法update 資料表名稱 set 欄位1=值1,欄位2=值2,. where 篩選條件 limit 筆數(shù)update practice set salary=“52000”, birthday=“1972/03/10” where num=4;改成2022/10/1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版物聯(lián)網(wǎng)應(yīng)用開發(fā)與服務(wù)合同
- 2025年合伙企業(yè)散伙協(xié)議書范本(含資產(chǎn)清算條款)3篇
- 2025版藝術(shù)品買賣與代理合同3篇
- 2024年餐飲酒店服務(wù)質(zhì)量改進(jìn)與提升合同
- 一年級上冊看圖寫算式6和7的加減法
- 2024年預(yù)制塊制造與安裝服務(wù)合同3篇
- 一年級口算練習(xí)題 100以內(nèi)無進(jìn)退位
- 二零二五年度城市綠化景觀工程承包合同示范文本2篇
- 二零二五年度光伏發(fā)電工程施工補(bǔ)充協(xié)議書3篇
- 2024年電子商務(wù)平臺(tái)技術(shù)開發(fā)與定制合同
- 35kV線路工程電桿組立工程施工組織方案
- 畢業(yè)論文材料分揀裝置PLC控制系統(tǒng)方案
- 刑法涉及安全生產(chǎn)的16宗罪解讀
- 京東五力模型分析
- 電大《電氣傳動(dòng)與調(diào)速系統(tǒng)》網(wǎng)絡(luò)課形考任務(wù)1-4作業(yè)及答案
- 銅精礦加工費(fèi)簡析
- 機(jī)電拆除專項(xiàng)施工方案
- 變電站電氣一次工程監(jiān)理要點(diǎn)重點(diǎn)
- 足球?qū)m?xiàng)體育課教學(xué)大綱、教學(xué)計(jì)劃
- ASTMA153∕A153M-05鋼鐵制金屬構(gòu)件上鍍鋅層(熱浸)標(biāo)準(zhǔn)規(guī)范
- 牛津譯林版四年級英語上冊專項(xiàng)訓(xùn)練排序
評論
0/150
提交評論