Last modified 2004/02 An Introduction to SQL (Structured Query Language )
Last modified 2004/02 DBMS( 資料庫管理系統 ) DATA SQL Statements 應用程式 資料庫
Last modified 2004/02 使用者 ( 或管理者 ) 與資料庫間的互動 資料庫管理系統 DBMS (DataBase Management System) 伺服器端 (Server) 查詢 新增 變更 刪除 ? SQL Statement 應用程式 (AP) 客戶端 (client)
Last modified 2004/02 資料操作的 SQL 指令 SELECT 查詢 ( > 90%) ************************************ UPDATE 變更 DELETE 刪除 INSERT 新增
Last modified 2004/02 有關資料庫中的資料表格 學號姓名身份證號 張三 A 李四 B 王五 C 表格名稱: STUDENT
Last modified 2004/02 Sample1: 列出所有學生的學號、姓名 SELECT stud_no, stud_chinese_name FROMSTUDENT 特例 SELECT * FROM STUDENT * 代表所有欄位資料
Last modified 2004/02 Sample2: 列出系所代碼為 P78 的所有學生的學號、 姓名、年級 SELECT stud_no,sud_chinese_name,stmd_grade FROM STUDENT WHERE stmd_dept=‘P78’ Sample3: 列出大二以上的所有學生的所有資料 SELECT* FROM STUDENT WHERE stmd_grade >’1’ > = <=
Last modified 2004/02 Sample4: 列出學號在 與 之間的學生學號、姓名及性別 SELECT stud_no,stud_chinese_name,stud_sex FROM STUDENT WHERE stud_no >=’ ’ AND stud_no <=‘ ’ stud_no BETWEEN ‘ ’ AND ‘ ’
Last modified 2004/02 Sample5: 列出姓王的所有學生的學號、姓名 SELECT stud_no,stud_chinese_name FROM STUDENT WHERE stud_chinese_name like ‘ 王 %’ keywords 萬用字元 其他用法: ‘ % 王 ’ ‘ % 王 % ’
Last modified 2004/02 Sample6: 列出所有學生的學號、姓名、及系所中文 名稱 SELECT stud_no,stud_chinese_name,dept_full_name FROM STUDENT A, DEPT B WHERE A.stmd_dept =B.dept_no stmd_dept … P78 P80 P81 P79 P82 ….. dept_no dept_full_name P78 統計學系 P79 企管 系 P80 合經學系 ….. TABLE JOIN STUDENT DEPT
Last modified 2004/02 Sample7: 列出一年級學生的總人數 SELECT count(*) FROM STUDENT WHERE stmd_grade=‘1’ Built-in Functions: count( ), sum( ), avg( ), max( ), min( ),... 欄位名稱, e.g. sum(scrd_score) 學分數加總
Last modified 2004/02 Sample7: 列出 89 學年第二學期統計系 (opms_dept=‘P78’) 開課的資料,包括: 科目代號、科目中文名稱、學分、學年別 Sample8: 列出 89 學年第二學期統計系 (opms_dept=‘P78’) 開課的資料,包括: 科目代號、科目中文名稱、學分、學年別、教師姓 名
Last modified 2004/02 INSERT Statements(1) Example 1 INSERT INTO xsample(stud_no,stud_chinese_name,stud_grade) VALUES(‘ ’, ‘ 張三 ’, 1 ) 新增一筆資料到表格 xsample 填入欄位到: stud_no, stud_chinese_name, stud_grade 填入值: ‘ ’, ‘ 張三 ’, 1 varchar number
Last modified 2004/02 INSERT Statements(2) Example 2 INSERT INTO xsample VALUES (‘ ’,‘ 李四 ’,'M', 2, ?, ? ) 找出 Built-in function: 輸出目前的時間 出生年月日如何放進來? 與該欄位的資料型別有何關係?
Last modified 2004/02 INSERT 注意事項 輸入項目必須遵循該 TABLE 設定的限制 (constraints), 如 – 某欄位不可空白 (NOT NULL) – 某欄位必須唯一 (UNIQUE) 輸入項目必須符合該欄位的資料型態,如 –10 個 bytes 的文字 VARCHAR(10) – 日期型態 DATE – 數字型態 NUMBER
Last modified 2004/02 DELETE Statement Example 1 DELETE FROM xsample WHERE stud_no=‘ ’ 刪除學號 stud_no=‘ ’ 的那一筆資料
Last modified 2004/02 UPDATE Statement Example 1 UPDATE xsample SET stud_chinese_name=‘ 趙六 ’, stud_sex=‘F’ WHERE stud_no=‘ ’ 更改學號 stud_no=‘ ’ 的那一筆資料中的: 姓名 stud_chinese_name 為 ‘ 趙六 ’ 及性別 stud_sex 為 ‘F’
Last modified 2004/02 COMMIT & ROLLBACK 執行 INSERT 、 DELETE 、 UPDATE 後, 並未實際更改資料庫, 必須執行 COMMIT 指令 才算實際更改資料庫的資料。 若是發現不對,可以不執行 COMMIT , 改執行 ROLLBACK 退回方才的異動動作。
Last modified 2004/02 參考網站