PHP應該學什么,如何學好PHP (注:原文來自傳智播客) 一些共性問題,大致是: 1. 應該怎樣學習PHP,學習的順序是怎樣的? 2. PHP學好后,可以做什么事情? 3. 聽得懂課,但是一旦自己獨立寫程序,就沒有思路? 4. 學習PHP需要怎樣的基礎,算法重要嗎? 首先,大家要達成一個共識,就是學習任何一門編程技術都需要我們付出心血,都要講求循序漸進,由淺入深。對 每一個知識點要搞透,然后通過案例來加深認識,最后還需要把學習到的各個知識點實際運用到項目中去,才能融會貫通,最后才能到達能自如的駕馭項目的水平, 現在我們就來看看應該怎樣一步一步的學習PHP這門編程技術,先看看學習PHP的順序圖,此學習順序圖是我推薦的學習內容和學習順序(除了這里列出的內容,要走向高手之路肯定還有更多技術需要學習,我這里只是對於初學者列出的主干學習內容,並不是全部): PHP應該學什么,如何學好PHP(一) 對於PHP初學者來說,看到這樣多的內容,心里已經開始打退堂鼓了,但是,萬丈高樓平地起,我們只要堅持每天學習一部分內容,最后總會把這些技術都精通掌握的。 PHP這門技術相對java和 .net來說,是比較簡單的。PHP最主要的作用就是做站,也就是說PHP技術是用於開發網站的,比如目前世界排名前40的網站,有70%都使用到了PHP技術,比如 facebook、youbute 、新浪、百度、淘寶、搜狐和騰訊這些知名的網站都有很大一部分業務是用PHP來開發的,因此被譽為web開發首選技術。開發PHP的軟件可以說是簡單的記事本也可以是一些集成開發軟件,比如 zendstudio ,這里我列舉一些常見的PHP開發工具: ① Editplus ② Zend Studio ③ PHP Coder ④ phpedit ⑤ easyecpilse ⑥ dw ⑦ vim windwos下我常用的是 editplus 和 zend studio ,在linux下我推薦使用vim來開發更專業。 要學習PHP開發一定要按照正確的順序進行學習(如上圖PHP學習順序圖所示),很多人被一些《xx天精通***》這樣的垃圾書的影響,PHP這門語言相對JAVA要簡單,開發人員不需要學太多即可通過面向過程的方式開發出一個"某某管理系統",因此社會上充斥着大量只會面向過程的開發人員,他們不懂Http協議!不懂JavaScript!不懂PHP工作原理!不懂什么是真正的面向對象程序設計,這種"不不不"開發人員能找到4000的工作 就已經非常值得慶幸了。企業中最需要的是對"Http協議、Javascript、PHP工作機制、PHP程序調優、LAMP環境調優、OOP"等技術熟悉的人,而這樣的人是非常難招的。大家記住欲速則不達,速成的結果就是以后浪費更多的時間,回想這么多年你走過的路,有多少次為了走快點就跳着走,最后又浪費時間返工的事情,按照正確的順序才能更快、更好的掌握PHP。 學習PHP分為以下幾個階段,每個階段都有學習的重點和注意事項,下面詳細給大家介紹: 第一階段: PHP前端網頁開發基礎,在這一個階段中分為以下幾個階段課程 (1)HTML基礎與加強 HTML語言,HTML語言背景知識,HTML全局標簽,HTML格式標簽,HTML文件標簽,HTML超鏈接標簽,HTML圖像標簽,HTML框架標簽,HTML客戶端圖像地圖,HTML表格標簽,HTML幀標簽,HTML表單標簽,HTML頭元素,HTML分區標簽 (2)XHTML基礎與加強 XHTML與 HTML的差異,XHTML語法,XHTML DTD,XHTML驗證,XHTML模塊,XHTML屬性,XHTML事件,XTHML結構化 (3)HTML5設計與應用 HTML5介紹,HTML5多媒體處理,HTML5畫布,HTML5 Web存儲技術,HTML5表單,HTML5 屬性和事件HTML5的常用標簽(比如:applet標簽、article標簽、aside標簽、audio標簽、canvas標簽、datalist標簽、details標簽等) (4)CSS基礎與加強 CSS 簡介,CSS基礎語法,CSS 派生選擇器,id 選擇器,CSS類選擇器,CSS盒子模型 CSS背景 、文本 、字體 、邊框 、外邊距 、內邊距 、列表 、表格CSS 高級: CSS 尺寸、分類 、定位 、偽類 、偽元素 、媒介類型 (5)DIV+CSS設計與應用 使用知名網站的首頁深入剖析DIV+CSS的WEB標准:盒子模型經典案例-優酷首頁面、仿sohu首頁面布局、可愛屋網站首頁面。涉及知識點包括: (CSS定位的四種方式、左浮動、右浮動、清除浮動、標准流和非標准流、設置對象的層疊順序、塊元素和行元素的轉換等) (6)Javascript基礎語法: Javascript基本介紹、Javascript的發展史、Javascript運行原理剖析、Javascript特點、 Javascript的標識符、Javascript基本數據類型(數值類型、布爾類型、字符串類型)、 Javascript復合數據類型簡介(數組、對象)、Javascript特殊數據類型(NULL、undefine)、 定義變量、初始化、賦值、數據類型轉換的兩種方式(自動轉換、強制轉換)、Javascript的運算符(算術運算符、關系運算符、邏輯運算符)、Javascript的位運算和移位運算 (7)Javascript三大流程控制 順序控制、分支控制(單分支: if語句、雙分支: if-else語句、多分支 if-else if-else 語句, switch-case-default語句)、循環控制(for語句、while語句、do-while語句)、在ie和firefox如何調式Javascript (8)Javascript函數 函數基本概念、函數的定義、函數的調用方式及調用過程深度剖析、函數使用細節討論、使用Function類創建函數、函數實際運用(打印金字塔、九九乘法表)、函數的遞歸調用、 Javascript常用系統函數使用(encodeURI、decodeURI、eval、parseInt、parseFloat、isNaN等) (9)Javascript數組 數組的基本使用、使用for/while遍歷數組、數組實際運用(計算班級平均分)、二維數組的基本使用、使用for遍歷二維數組、對二維數組轉置處理、數組排序介紹、冒泡排序、順序查找和二分查詢法 (10)事件驅動 Javascript的Event-Driven機制、事件源、事件處理程序、事件名稱、事件對象是什么、 事件類型(鼠標事件、鍵盤事件、HTML事件、其它事件)、Javascript訪問CSS技術、 事件驅動的瀏覽器兼容性處理、常用的18個事件(onblur、onchange、onfocus、onkeydown、onmousedown等) 綜合案例(Javascript版計算器) (11)DOM編程 DOM編程介紹(HTML DOM與XML DOM)、DOM編程實例入門、BOM介紹、DOM對象介紹、window對象詳解、history對象詳解、location對象詳解、navigator對象詳解、screen對象詳解、event對象詳解、document對象詳解、body對象詳解、style對象詳解、WEB版坦克大戰游戲、forms對象(集合)、from對象、images對象(集合) 、img對象、links對象(集合)、link對象、all對象(集合)、table對象詳解、tableRow對象和tableCell對象、基於table對象的用戶管理系統 (12)WEB網站設計與應用->商業級網頁制作 我曾經這樣說過一句話:有些朋友學習技術,像一個大胖子,肚子大,腦袋大,看起來很唬人,但是腿很細,風一吹就倒了。就是說基礎太差了,結果就是越學越迷茫,最后,就放棄了。因此我說”基礎很重要” , 還有一點我要強調:在視頻教程中我講了很多的案例並布置了作用,一定要自己親手把代碼熟練的寫出來,記住是親手寫出來,而不是照着我的代碼抄,更不能是看懂了我的代碼就以為自己掌握了,要知道“看懂了”和“會寫了”之間差着十萬八千里呢! 我們學習編程是”做中學”,是做的過程中學會的,而不是會了在做,正是在編寫一行行代碼過程中,逐漸建立編程思想的,思想→代碼 這個過程是需要敲很多代碼的。 29.jpg 用賣油翁的一句話說:“我亦無他,但手熟爾”,請永遠記住“巧是從熟練中演變出來的”,這就是我們常說的“熟能生巧” 。 第二階段 PHP核心編程 (1)PHP基本語法加強 Apache-- directory配置段、一個IP和多個域名綁定的兩種方式、HTTP協議入門介紹、Apache邏輯組件介紹、Apache生命周期、PHP運行之時 序圖、PHP數據類型加強、PHP各種運算符加強、PHP三大流程控制加強、位運算(按位與、按位或、按位異或、按位非、位左移、位右移)、二進制(原 碼、反碼、補碼)、PHP版本在線貸款計算器。 這里,我想說明一下: PHP基礎語法看似簡單,但是也不可大意,有些PHP程序員工作了2年,對PHP運行的原理都不清楚,對Apache的一些重要調優配置也不了解,這樣的程序員,在公司是不行的,很難得到提升。所以就一直是一個編碼工人,薪資也上不去。 比如面試中經常問到: PHP中一個整數的范圍是多少, 小數的能表示的范圍是多少? 再比如如何在Apache中配置一個404錯誤頁面,如何給一個主機配置一個域名,具體怎樣操作?這樣一些基礎的問題都必須在這個階段搞定。推薦大家看 傳智播客php視頻教程 23講-45講 ,有詳細到位的講解。 (2)PHP函數 PHP函數的基本介紹、如何自定義函數、PHP頁面調用函數、require()、require_once()、include()和include_once()的區別、從內存分析PHP函數調用過程、函數使用需要注意的細節、函數值傳遞和引用傳遞的區別。 函數是我們PHP編程最重要的一個知識點,也是進行模塊化編程的基礎,掌握好函數可以提高代碼的復用性、可讀性和可維護性。 (3)數組、排序和查找 數組 的基本概念、數組的引用方式、數組引用陷阱、與PHP數組相關的函數(count、is_array、print_r、explode等)遍歷數組的三種 方式、刪除數組元素和數組運算符、數組使用細節總結、內部排序法和外部排序法介紹、冒泡排序和快速排序、選擇排序和插入排序、順序查找和二分查找、二維數 組介紹和使用。 依據 我的經驗,我們去找工作的時候,一定會一道關於排序和查詢的題,最常見的問題是: 請你寫出冒泡排序法,並使用二分查找來查找一個數。在項目開發中,數組是銜接變量和函數的重要數據類型,在MVC開發中,往往需在控制器中將數組分配給視 圖去顯示,在算法中,數組也是變化最為靈活的。 (4)面向對象編程 面向 對象編程基本概念、類和對象的關系、如何定義類、成員屬性(變量)、如何創建對象實例及如何訪問對象屬性、對象在內存中存在的形式、棧、堆、全局區、常量 區和代碼區的關系、成員方法(函數)及使用細節、構造方法(函數)、默認構造方法(函數)、this的基本概念和使用、析構方法(函數)、PHP的對象垃 圾回收器、靜態變量(類變量)的概念和使用、靜態方法(類方法)的概念和使用、面向對象編程的三大特征介紹、面向對象編程-封裝、面向對象編程-繼承、面 向對象編程-多態、訪問控制修飾符(public、protected、private)、方法重載(overload)、方法重寫 (override)、方法重載(overload)和方法重寫(override)的比較、PHP魔術函數(__set __get __construct __destruct __call等 )和魔術常量(__LINE__ , __FILE__ ,__FUNCTION__等 )、抽象類(abstract class)的概念和使用接口(interface)的概念和使用、接口編程和繼承的區別、關鍵字final的使用、常量關鍵字const 的作用和使用注意事項、面向對象編程之強大的反射機制、面向對象編程之動態代理。 面向對象編程已經成為PHP編程的主流,面向對象編程讓程序變得更加強大和靈活,更利於項目的開發和維護。關於面向對象編程 在 傳智播客 php視頻教程 61講-78講,看看什么才是真正的PHP面向對象思想,什么是真正的OOP。 (5)錯誤處理和異常處理 錯誤處理的基本概念、PHP處理錯誤的三種方式介紹、使用die()進程錯誤處理、自定義錯誤和錯誤觸發器、錯誤日志、錯誤級別介紹、PHP異常處理的基本介紹、PHP異常處理(try throw catch)、自定義異常、如何設置頂級異常處理器、異常使用的規則。 在編寫php web 應用程序時,錯誤處理是一個重要的部分。如果您的代碼缺少錯誤檢測編碼,那么程序看上去很不專業,也為安全風險敞開了大門 。所以大家需要清楚在PHP編程中如何對錯誤和異常進行有效的處理,從而保證程序的安全和健壯。 (6)預定義超全局數組 預定義超全局數組-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES 、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文亂碼問題) (7)cookie和session 什么 是會話、cookie的基本概念、cookie的curd操作、cookie重要的api介紹、cookie運行原理圖解、cookie的實際運用(顯示 用戶上次訪問時間、顯示用戶上次瀏覽過的商品、)、cookie使用的注意事項、session數據存放的位置和形式、session的curd操作、 session運行原理圖解、session實際案例-在線購物車、IE禁用Cookie后的session處理方案、session防止用戶非法入侵、 session配合驗證碼使用、php.ini 中關於cookie和session配置說明(重點,難點)、自定義會話處理器、Session和Cookie的區別。 Cookie(小甜餅)是客戶端技術,服務器把每個用戶的數據以cookie的形式 寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶着各自的數據去。 Session 是服務器端技術,利用這個技術,服務器在運行時可以為每一個用 戶的瀏覽器創建一個其獨享的session文件,當用戶再去訪問服務器中的其它web資源時,可以從用戶各自的session 中取出數據為用戶服務。Session和Cookie是最重要的用戶行為跟蹤技術,尤其是電商,sns項目中運用廣泛,因此是我們學習的重點和難點,也是 面試筆試的重點。關於cookie和session大家可以參考傳智播客 php視頻教程 114-121講 (8)PHP文件編程 文件及文件編程是什么、文件流的基本概念、文件的操作方式、PHP文件編程函數匯總介紹、最常用的13個文件函數、使用文件完成網站計數器、文件上傳下載操作-mini版音樂共享網、無限級文件掃描器。 文件最主要的作用就是保存數據,它既可以保存一張圖片,也可以保存視頻 ,聲音...,本章節要求同學們掌握文件的各種操作和上傳下載,動態創建和刪除目錄,文件和無限級掃描文件等, 掌握好這些知識點對我們項目開發非常重要。 (9)PHP繪圖技術 php繪圖坐標系、繪圖步驟說明、繪圖快速入門、繪圖最常用的函數、繪圖技術的實際運用—人口分布餅狀統計圖、專業的報表開發--JpGraph、JpGraph的安裝和配置、JpGraph實際應用-網民支持情況統計圖、JpGraph中文亂碼處理。 如果 你使用過財務軟件,那你一定看見過各種對財務數據進行統計和分析 的圖表,可能是表格,也可能是餅狀圖、柱狀圖、曲線圖..,簡單的說,就是使用圖表動態顯示數據。而這些圖表的顯 示都要使用到PHP的繪圖技術,繪圖技術要求熟練的使用PHP的繪圖函數完成項目的需求。能開發一些統計圖,非常有實用價值。比如: 6.jpg 如何檢驗自己的學習效果,看看下面的一些面試題 , 看看能完成多少? 如果能正確完成80%,說明這個階段學到還不錯。 練習1: 簡述echo(),print(),print_r()的區別? 練習2: 說出PHP的超級全局變量數組,共九種 練習3: 如何在一個php函數中使用具有全局屬性的變量,說出兩種方式 練習4: 三個小題: 4.1.跳水比賽,8個評委打分。運動員的成績是8個成績取掉一個最高分,去掉一個最低分,剩下的6個分數的平均分就是最后得分。使用一維數組實現打分功能。 4.2.請把打最高分的評委和最低分的評委找出來。 4.3.找出最佳評委和最差評委。最佳評委就是打分和最后得分最接近的評委。最差評委就是打分和最后得分相差最大的。 練習5: include和require都能把另外一個文件包含到當前文件中,他們有什么區別?Include和include_once又有什么區別? 練習6: 寫出一個能創建多級目錄的PHP函數 練習7: 寫出一個函數,能遞歸列出某個目錄下的所有文件夾和文件名. 練習8: 在防止SQL注入的時候,通、會把單引號、雙引號等轉義,需要用到哪個函數 練習9: 寫出插入排序法和快速排序法代碼 練習10: 二分查找的原理是什么? 請寫出二分查找函數 練習11: 寫出php的public、protected、private三種訪問控制模式的區別 練習12: 請寫出一個完整的嚴謹的單例模式 練習13: __set 和 __get 魔術函數是做什么的,在什么時候被觸發 練習14: 如何防止對象克隆, 對象克隆會復制 static屬性嗎? 練習15: 說說strip_tags的作用和用法? 練習16: 如果需要原樣輸出用戶輸入的內容,在數據入庫前,要用哪個函數處理? 練習17: 如何控制多個進程去並發刪除,插入和更新數據庫的某張表? 練習18: PHP的安全模式和非安全模式的區別 技術就是一層窗戶紙,捅破了,你感覺沒有什么,不就是這么簡單嗎?可是如果你不知道,就感覺很神秘,因此你了解的知識點越多越底層,就可以讓你的項目更有技術含量。 反過來,如果我們知道很多知識點,但是不會把知識點靈活的運用到項目中,就成了< <天龍八部> > 中的段譽,空有無窮的內力,就是不知道如何運用。所以,學會做項目,做規范的項目也是非常重要的 第三階段:Mysql數據庫編程&中級項目階段 (1) MySQL數據庫 從 目前看,任何一個有商業價值的項目或者網站,都離不開MySQL數據庫, 因此系統深入的掌握MySQL數據庫各種操作非常重要,重點是圍繞ddl/dql/dml/dcl/dtl學習。同時要學會在項目中如何設計出有商業價值 的數據庫模型的技巧,並初步了解到MySQL的優化細節。作為一個合格的PHP程序員,我覺得以下知識點是必須要掌握的: MySQL 數據庫的三層結構、MySQL數據庫的安裝和配置、數據庫命令行的常見操作(啟動、連接、操作、關閉等)、SQL語句分類(ddl/dml/dcl /dql/dtl)、創建、查看、刪除、修改、備份和恢復數據庫、如何創建表及MySQL數據類型詳解、修改、刪除表操作、如何對數據表進行CRUD操 作、select語句中使用orderby、合計函數(count/sum/avg/max/min)、select語句中使用group by 和having子句、時間日期常用的10個函數、字符串相關11個函數、數學函數10個、流程控制函數3個、其它函數4個、MySQL中文亂碼處理、 PHP操作數據庫實例、MySQL表類型和存儲引擎(BDB/HEAP/ISAM/MERGE/MYISAM/InnoBDB)、如何選擇表的存儲引擎、 事務的基本概念、事務和鎖、事務提交和回滾操作、PHP程序中如何使用事務、事務隔離級別、表的主鍵和外鍵、多表聯合查詢和笛卡爾集、自連接、單行子查詢 和多行子查詢、蠕蟲復制創建海量表、合並查詢(union , union all,intersect , minus)、表的內連接和外連接(左外連接、右外連接和完全外連接)、維護數據的完整性-約束(not null、unique, primary key,foreign key,和check )、商店售貨系統表設計案例、索引(主鍵索引/唯一索引/全文索引/普通索引/復合索引)、索引優缺點分析、觸發器和存儲過程 (2)數據庫編程(mysql mysqli pdo) mysql 擴展庫簡介、mysql擴展庫操作mysql數據庫程序、mysql_query()執行結果、釋放資源和連接、對mysql數據庫進行CRUD、 mysqli擴展庫簡介、第一個mysqli擴展庫程序、$mysqli->query()執行結果、mysqli對數據庫進行CRUD操作、 mysqli擴展庫增強--批量執行sql語句、mysqli擴展庫增強--事務控制、事務的acid、預處理 MySQLi_STMT、PDO的介紹和使用 (3)中級項目 看十遍,不如自己實際動手做一個項目。項目經驗就是從一行行 代碼中積累的,編程的能力也是通過攻克一個個程序bug提高的。中級階段項目是把前面學習過的知識點實 際運用到項目中的最佳時機,也是檢驗自己學習成果的時候。當你通過熬夜點燈,網上查資料把項目最終完成時, 經歷了項目從無到有,從有到完善時,你的編程能力,把控項目的能力在潛移默化中提高了,為學習下一個階段 (PHP高級編程)打下扎實的基礎。我推薦幾個項目給大家,大家可以根據自己的實際情況選一個項目來做. BBS系統: 為互聯網用戶提供互動和交流功能。 網上在線支付: 為互聯網客戶提供在線支付功能,可立即應用於項目中 及 時雨供求信息共享網: 及時雨供求信息網主要用來為用戶提供信息服務,對於生活和工作中的各類 信息都應盡可能地全部包括在內,例如,公寓、求職、招聘、培訓、招商、房屋、車輛、出售、求購等信息。項目 發布后,要實現能夠為用戶生活、工作帶來極大地方便並提高企業知名度、為企業產品宣傳節約大量成本的目標。 及時雨供求信息網的主要目標是提供強大的搜索功能,准確的信息定位描紅功能,付費信息的管理、免費信息的審 核和刪除功能。 oa 無紙辦公系統: oa無紙辦公系統是針對中小型企業內部自動化辦公管理的要求進行設計的,實現了 文件類信息的強大的管理能力;對員工基礎信息(人事消息)的管理功能等;個人辦公的信息自動化管理功能;發 布會議信息,並對會議信息進行管理;對系統用戶進行管理;為了加強數據保密性,為每個用戶組設置權限級別。 大 網電子商城: 將電子商城給普通用戶提供如下功能:購買商品、用戶個人資料管理及訂單查詢 等功能。用戶在未進行登錄時,只可以查看商品的詳細信息及公告信息,登錄后可以執行購買商品操作、對商品進 行評論及管理個人資料。管理后台實現: 商品信息、商品類別信息、用戶信息、訂單信息、公告信息及評論信息進 行管理,用戶可通過相應的功能按鈕,進入相應的頁面,對信息進行管理。 項目的源代碼可以到傳智播客學院http://php.itcast.cn下載 如何檢驗自己的學習效果,看看下面的一些面試題 , 看看能完成多少? 如果能正確完成80%,說明這個階段學的還不錯。 練習1: 簡述什么是MVC模式 練習2: 項目開發分哪幾個階段,分別是什么,各自的內容包括什么 練習3: PHP設計模式常見的有哪五種,分別寫出一個案例說明 練習4: 項目在整合的時候應該如何處理 練習5: 什么是數據庫的3NF 練習6: 列舉web開發中的安全性問題 練習7: Apache服務器如何配置虛擬主機,如何把自己的項目上線,如何申請域名和主機,讓自己的項目可以被所有人訪問. 練習8: 如何定時備份Mysql數據庫,請簡述在windows和linux操作系統下的具體實現方案. 練習9:Mysql數據庫設計題: 有某個學生運動會比賽信息的數據庫,保存了如下的表: 運動員sporter(運動員編號sporterid,運動員姓名name,運動員性別sex,所屬系號department) 項目item(項目編號itemid,項目名稱itemname,項目比賽地點location) 成績grade(運動員編號sporterid,項目編號itemid,積分mark) 請用SQL語句完成如下功能: 1. 建表,注意滿足如下要求: a) 定義各個表的主碼外碼約束 b) 運動員的姓名和所屬系別不能為空值。 c) 積分要么為空值,要么為6,4,2,0, 分別代表第一,二,三名和其他名次的積分,注意名次可以有並列名次,后面的排名不往前提升,例如,如果有兩個並列第一,則沒有第二名。 --運動員 --項目 --成績 2. 往表中插入數據: 運動員( 1001, 李明,男,計算機系 1002,張三,男,數學系 1003, 李四,男,計算機系 1004, 王二,男,物理系 1005, 李娜,女,心理系 1006, 孫麗,女,數學系) insert into sporter values (1001,'李明','男','計算機系'); insert into sporter values (1002,'張三','男','數學系'); insert into sporter values (1003,'李四','男','計算機系'); insert into sporter values (1004,'王二','男','物理系'); insert into sporter values (1005,'李娜','女','心理系'); insert into sporter values (1006,'孫麗','女','數學系'); 項目( x001, 男子五千米,一操場 x002,男子標槍,一操場 x003, 男子跳遠,二操場 x004, 女子跳高,二操場 x005, 女子三千米,三操場) insert into item values ('x001','男子五千米','一操場'); insert into item values ('x002','男子標槍','一操場'); insert into item values ('x003','男子跳遠','二操場'); insert into item values ('x004','女子跳高','二操場'); insert into item values ('x005','女子三千米','三操場'); 積分( 1001, x001, 6 1002, x001, 4 1003, x001, 2 1004, x001, 0 1001, x003, 4 1002, x003, 6 1004, x003, 2 1005, x004, 6 1006, x004, 4) insert into grade values (1001,'x001',6); insert into grade values (1002,'x001',4); insert into grade values (1003,'x001',2); insert into grade values (1004,'x001',0); insert into grade values (1001,'x003',4); insert into grade values (1002,'x003',6); insert into grade values (1004,'x003',2); insert into grade values (1005,'x004',6); insert into grade values (1006,'x004',4); 3. 完成如下查詢 a) 求出目前總積分最高的系名,及其積分。 b) 找出在一操場進行比賽的各項目名稱及其冠軍的姓名 c) 找出參加了張三所參加的所有項目的其他同學的姓名 4. 經查張三因為使用了違禁葯品,其成績都記0分,請在數據庫中作出相應修改。 5. 經組委會協商,需要刪除女子跳高比賽項目。