PHP50程式设计第11章SQL基本与法介绍课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《PHP50程式设计第11章SQL基本与法介绍课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP50 程式 设计 11 SQL 基本 介绍 课件
- 资源描述:
-
1、PHP 5.0 程式設計第 11 章 SQL 基本與法介紹講師:紀俊男.tw本章大綱n資料庫建立與刪除n資料表規劃n資料表建立與刪除n資料列新增、修改、刪除n正規化n關聯性n更改資料表結構n顯示多表格資料n總整理資料庫建立與刪除n起始 MySQL 資料庫查看 MySQL 服務是否啟動nps aux|grep mysql啟動 MySQL 服務nRedHat:/etc/rc.d/init.d/mysqld start以用戶端登入 MySQL 伺服器n有密碼:mysql u root pn無密碼:mysqlMySQL 文字型用戶端提示號nmysql資料庫建立與刪除n建立資料庫指令nCREATE DA
2、TABASE 資料庫名稱資料庫名稱;範例n人事資料庫nCREATE DATABASE HumanResource;資料庫建立與刪除n查看資料庫清單格式nSHOW DATABASES;範例nSHOW DATABASES;資料庫建立與刪除n刪除資料庫格式nDROP DATABASE 資料庫名稱資料庫名稱;範例nDROP DATABASE HumanResource;資料庫建立與刪除n隨堂練習登入 MySQL 資料庫伺服器n請用 ps aux 檢查 MySQL 是否已經啟動?若沒有,請啟動它。n請用 mysql 登入 MySQL 伺服器。建立資料庫n請用 CREATE DATABASE 建立 Hum
3、anResource 資料庫。n請用 SHOW DATABASES 檢查 HumanResource 是否建立成功?刪除資料庫n請用 DROP DATABASE 將 HumanResource 資料庫刪除看看。n請用 SHOW DATABASES 確認 HumanResource 資料庫已經刪除。還原資料庫n請再用 CREATE DATABASE 將 HumanResource 資料庫建回來,結束這次的練習。資料表規劃nEmployees 資料表初步規劃如下IDNameAddressTelSexBirthdaySalaryMemo整數整數(INT)文字文字(VARCHAR)文字文字(VARCH
4、AR)文字文字(VARCHAR)布林值布林值(TINYINT)日期日期(DATE)浮點數浮點數(FLOAT)文字文字(TEXT)資料表規劃nMySQL 允許的欄位資料型態如下整數整數 TINYINT1 byte SMALLINT2 bytes MEDIUMINT3 bytes INT/INTEGER4 bytes BIGINT8 bytes浮點數浮點數 FLOAT4 bytes DOUBLE/REAL8 bytes DECIMAL視情況 NUMERIC視情況文字文字 CHAR(M)M bytes VARCHAR(M)L+1 bytes (L:實際長度 M:最大長度=255)TEXTL+2 by
5、tes (L:實際長度 M:最大長度 216)日期時間日期時間 YEAR1 byte DATE3 bytes TIME3 bytes DATETIME8 bytesTIMESTAMP4 bytes二進位資料二進位資料 BLOBL+2 bytes (L:真實長度 最大長度=216)列舉與集合列舉與集合 ENUM(,)1 or 2 bytes SET(,)1,2,4,8資料表規劃n課堂討論一個資料表為什麼要有 Primary Key?電話欄位(Tel)都是數字,為什麼不用 INT 要用 CHAR?SQL92 有為布林值定義專屬的資料型態嗎?什麼是 TEXT 型態?它跟 CHAR/VARCHAR 有
6、何不同?什麼時候會用到它?如果我要把一張 JPG 照片直接塞入資料庫中,那我要用哪種欄位型態來存它?為什麼講師說不建議將二進位資料塞入資料庫中?有什麼替代方案嗎?資料表建立與刪除n建立資料表格式nCREATE TABLE 資料表名稱(欄位定義1,欄位定義2,);欄位定義n欄位名稱 欄位型態NOT NULLDEFAULT 預設值AUTO_INCREMENTPRIMARY KEYnPRIMARY KEY(欄位名稱1,欄位名稱2,)nFOREIGN KEY(欄位名稱1,欄位名稱2,)nUNIQUE(欄位名稱1,欄位名稱2,)nINDEX(欄位名稱1,欄位名稱2,)nCHECK(欄位條件)資料表建立與
7、刪除n建立資料表範例欄位名稱欄位型態特殊要求IDINTPRIMARY KEY,AUTO_INCREMENT,NOT NULLNameVARCHAR(20)NOT NULLAddressVARCHAR(50)TelVARCHAR(20)SexTINYINT(1)NOT NULLBirthdayDATESalaryFLOAT(4)MemoTEXT資料表建立與刪除n建立資料表範例CREATE TABLE Employees(empID INT PRIMARY KEY AUTO_INCREMENT NOT NULL,empName VARCHAR(20)NOT NULL,empAddress VARC
8、HAR(50),empTel VARCHAR(20),empSex TINYINT(1)NOT NULL,empBirthday DATE,empSalary FLOAT(4),empMemo TEXT);資料表建立與刪除n查看資料表清單格式nSHOW TABLES;範例n秀出剛剛建立的 EmployeesnSHOW TABLES;資料表建立與刪除n查看資料表結構格式nDESCRIBE 資料表名稱資料表名稱;範例nDESCRIBE Employees;資料表建立與刪除n變更資料表名稱格式nRENAME TABLE 舊名稱 TO 新名稱;範例nRENAME TABLE Employees TO
9、Workers;資料表建立與刪除n刪除資料表格式nDROP TABLE 資料表名稱資料表名稱;範例nDROP TABLE Workers;資料表建立與刪除n隨堂練習建立資料表n請依照講義的示範,造出 Employees 資料表來。顯示資料表清單n請用 SHOW TABLES 指令看看 Employees 是否已經成功地造出來了。顯示資料表結構n請用 DESCRIBE 指令看看 Employees 表格的結構是否與我們設定的相同。更改資料表名稱n請用 RENAME TABLE 將 Employees 資料表改名為 Workers刪除資料表n請用 DROP TABLE 指令將 Workers 資料
10、表刪除。還原n請將 Employees 資料表再度造回來,以結束這一次的練習。資料列新增、修改、刪除n新增一筆資料列格式nINSERT INTO 資料表名稱資料表名稱(欄位欄位1,欄位欄位2,)VALUES(值值1,值值2,);範例INSERT INTO Employees(empName,empAddress,empTel,empSex,empBirthday,empSalary,empMemo)VALUES(Robert Chi,1245 Park Ave,(02)23939889,1,1971-9-14,35000.0,Good Personality);資料列新增、修改、刪除n觀看資料
11、列格式nSELECT 欄位欄位1,欄位欄位2,FROM 資料表名稱資料表名稱WHERE 條件條件;範例nSELECT *FROM Employees;資料列新增、修改、刪除n修改資料列格式nUPDATE 資料表名稱資料表名稱SET 欄位欄位1=值值1,欄位欄位2=值值2,WHERE 條件條件;範例nUPDATE EmployeesSET empAddress=137-14 Main StreetWHERE empName=Robert Chi;資料列新增、修改、刪除n刪除資料列格式nDELETE FROM 資料表名稱資料表名稱WHERE 條件條件;範例nDELETE FROM Employee
12、sWHERE empName=Robert Chi;資料列新增、修改、刪除n隨堂練習新增資料列n請依照講義內容,將 Robert Chi 的資料新增到資料庫內。觀察新增的資料列n請用 SELECT 指令觀察新增的資料列。n請問一下,為什麼我們沒有對 empID 新增任何資料,卻自動有值出現?修改資料列n請用 UPDATE 指令將 Robert Chi 的住址改為 137-14 Main Street刪除資料列n請用 DELETE FROM 指令將 Robert Chi 這筆資料刪除。還原n請將次頁資料新增至 Employees 資料表之內n為什麼新增的資料列編號不是從 1 開始?資料列新增、修
13、改、刪除n隨堂練習empNameempAddressempTelempSexempBirthdayempSalaryempMemoRobert Chi1245 Park Ave(02)2393988911971-9-1435000.0Good PersonalityGloria Chen34-33 Maple Ave(02)2766200001979-3-241000.0ManagerLeo Wang145-77 Main St(02)2882525211970-5-1245000.0Rich Guy正規化n為何需要正規化empNameempAddressempTelempSexempBirt
14、hdayempSalaryempMemoRobert Chi1245 Park Ave(02)2393988911971-9-1435000.0Good PersonalityGloria Chen34-33 Maple Ave(02)2766200001979-3-241000.0ManagerLeo Wang145-77 Main St(02)2882525211970-5-1245000.0Rich Guy(02)23838938無法加入第二個電話或地址無法加入第二個電話或地址正規化n為何需要正規化EmployeesempIDempNameempAddr1empAddr2empTel1e
15、mpTel21Robert ChiXxxxxxxx2Gloria Chenxxxxxxxx3Leo Wangxxxxxxxxxxxxxxxx比較不好的作法比較不好的作法缺點:為了少數人浪費大量空間缺點:為了少數人浪費大量空間 無法確定多開兩個欄位是否足夠無法確定多開兩個欄位是否足夠正規化n為何需要正規化比較好的作法比較好的作法EmployeesempIDempName1Robert Chi2Gloria Chen3Leo WangEmpAddraddrIDempIDAddress11XXXXX21XXXXX32XXXXX43XXXXXEmpTeltelIDempIDTel11XXXXX22XX
展开阅读全文