第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

第十章 Java 数据库编程. 内容提要 数据库有关概念; 介绍 JDBC 的结构; 重点介绍 JDBC 访问几种数据库的基本过程;
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
第7章 数据库基础知识 SQL常用命令使用方法 (1) 数据记录筛选: sql="select * from 数据表
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
文科计算机小公共课规划教材 Access 程序设计.
第一讲 数据查询优化.
《计算机应用基础》 第六章 Access数据库管理系统
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
数据库应用与程序设计.
第五讲 利用视图进行查询优化.
關聯式資料庫.
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
Chapter 12 T-SQL 語法與 ASP.NET.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
資料庫安全 (Database Security)
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
Transact-SQL 語言設計教學.
第三章 数据库和表的操作.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
SQL SERVER 一些经典语句 1.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
MySQL 結構化查詢語言 MySQL.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
ORACLE 第九讲 触发器.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
SQL語法教學 2015/10/15 John.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
模块六 数据库管理软件——Access 2010.
第4章 数据查询.
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE

SQL是一種結構化資料庫查詢語言,此一語言提供使用者建立、維護及查詢一個關聯式資料 庫管理系統的指令。因為SQL語言具有易學習及閱讀的親和性,所以SQL逐漸被各種資料庫廠商採用,而成為一種共通的標準查詢語言。只要你學會SQL,即可操作各種資料庫如Dbase、FoxPro或Paradox等等,此乃資料庫的大和解時代。 SQL語言是由命令(Commands)、子句(Clauses)、運算子(Operators)及加總函數(Aggregate Functions)組成,分述如下:

1. 命令(Commands) SQL的命令分成資料定義語言(Data Definition Language,DDL)與資料操作語言(Data Manipulation Language,DML),資料定義語言可用來建立新的資料庫、資料表、欄位及索引等,本書不予介紹;另一為資料操作語言,可用來建立查詢表、排序、過濾、萃取、修改、新增及刪除資料等動作。 SQL的組成元素說明如下:

1 資料定義語言(DDL) 資料定義語言如下表: 2 資料操作語言(DML) 資料操作語言的命令如下表: 命 令 說明 CREATE 命 令 說明 CREATE 建立新的資料表、欄位及索引表 DROP 從資料庫刪除資料表或索引表 ALTER 增加或修正欄位屬性 命 令 說明 SELECT 找出合於條件的記錄 INSERT 增加一筆或合併兩個資料表 UPDATE 更正合於條件的記錄 DELETE 刪除合於條件的記錄

2. 子句(Clause) 子句是用於設定欲操作的對象, SQL所使用的子句如下表: 子 句 說明 FROM 指定資料表 WHERE 子 句 說明 FROM 指定資料表 WHERE 設定條件 GROUP BY 設定分群 ORDER BY 設定輸出的順序

3. 運算子(Operators) 運算子又分邏輯運算子(Logical Operators)和 比較運算子(Comparison Operator), 邏輯運算子如下表: 比較運算子如下表: 運算子 說明 < 小於 <= 小於等於 > 大於 >= 大於等於 = 等於 <> 不等於 BETWEEN 設定範圍 LIKE 通配設定 IN 集合設定 運算子 說明 AND 邏輯AND OR 邏輯OR NOT 邏輯NOT

4. 加總函數(Aggregate Functions) 加總函數如下表: 對於初學者而言,資料定義使用Database Desktop即可勝任愉快,以下將分四節分別介紹資料操作語言(DML)的SELECT、INSERT、UPDATE及DELETE。 加總函數 說明 AVG 求指定條件的平均 COUNT 求指定條件的數量 SUM 求指定條件的和 MAX 求指定條件的最大值 MIN 求指定條件的最小值

17-1 SELECT SELECT是SQL敘述使用最頻繁的指令,其意為選擇的意思,可從一到數個資料表中選擇合乎條件的欄位與記錄,其傳回結果稱為資料集(Recordset)或結果集(Dataset),SELECT語法如下: SELECT 〔ALL|DISTINCT〕〈fieldlist〉 FROM〈tablelist〉IN databasename 〔WHERE 〈condition〉〕 〔GROUP BY 〈fieldlist〉〕 〔ORDER BY〈fieldlist 〔ASC|DESC〕〉〕 1. SELECT〈fieldlist〉的fieldlist是用來放置所選用的欄位串列。欄位串列如來自不同的資料表則欄位之前要加資料表名稱,中間以逗號(,)隔開。欄位中間如有空白,則整個欄位應使用中括號括起。其次,如果要選擇資料表的全部欄位,則可用星號(*)表示。此外,欄位串列可配合SUM(求和)、AVG(求平均)、MAX(求極大值)、MIN(求極小值)、COUNT(求計個數)等集合函數。

SELECT 〔ALL|DISTINCT〕〈fieldlist〉 FROM〈tablelist〉IN databasename 〔WHERE 〈condition〉〕 〔GROUP BY 〈fieldlist〉〕 〔ORDER BY〈fieldlist 〔ASC|DESC〕〉〕 2. 〔ALL|DISTINCT〕是可以省略的項目(語法凡加中括號者皆是可以省略的項目),系統預設值為ALL,若加上DISTINCT則系統會剔除重覆的資料項。 3. FROM〈tablelist〉是用於指定來源資料表,資料表如有一個以上,中間應用逗號(,)或驚嘆號(!)隔開。 4. IN databasename用來連結一個外部資料庫(附註:若要提高處理效率,最好使用附加資料表而不用IN子句)。 5. 〔WHERE〈condition〉〕是用來指定所要查詢的條件。各種條件可再配合各種邏輯運算、關係運算、算術運算、集合運算及通配運算元。 6. 〔GROUP BY〈fieldlist〉〕其中GROUP BY用來將相同的資料集合併。 7. 〔ORDER BY〈fieldlist〔ASC|DESC〕〉〕用來選擇某些欄位作為列印的先後順序,系統內定值為升冪(ASCending),如要指定降冪DESCending,只要將DESC緊跟在所需排序的欄位右方即可。

FROM項目使用 1. 最簡單的查詢指令就是只含有SELECT和FROM兩個關鍵字,可以列出資料表friend中所有欄位資料,其中星號(*)代表所有欄位。 2. 如果所選的欄位不只一個,中間以(,)分開。可以列出friend資料表中name及height兩個欄位資料。 3. 如果要剔除相同的記錄項,則於欄位前加上DISTINCT。 4. 如果資料欄位來自不同的資料表,則於欄位前加上資料表名稱,中間以逗點(,)或驚嘆號(!)隔開。

補充說明: 為什麼要關聯? 1.可聯結不同單位的資料。 補充說明: 為什麼要關聯? 1.可聯結不同單位的資料。 同一個人的資料可能分佈在不同的單位,如果需要在同一地點查看不同單位的資料,就須使用“關聯”,如前例stuname及stugrd可以使用相同的欄位“學號”(id)給予關聯合併。 2.可以節省記憶空間。 於資料表stugrd中,同一個人的成績可能會出現許多次,如果不使用關聯則每次輸入成績時,也必須輸入其基本資料,如此將造成資料重複的鍵入而浪費記憶體,如果使用關聯則可解決這種問題。 3.確保資料的一致性。 同一欄位的資料,若同時出現在不同的資料表,將會造成資料維護上的困難。例如有某筆資料要更正,則必須至不同的資料表更正,萬一有某一個資料表忘了修正,則會破壞資料的一致性。 4.正確的關聯亦是資料庫正規化的步驟。

查詢條件WHERE WHERE是用來指定查詢條件,例如: 用來查詢friend資料表中, educate>4(教育程度大於4)的所有欄位資料。 WHERE子句可用的運算方式如下: 1. 邏輯運算。  2. 關係運算。  3. 數值運算。  4. 集合運算。  5. 通配運算。 分別舉例說明如下:

WHERE子句可用的邏輯運算子有NOT、OR、AND及XOR,請看以下範例說明。 2. 關係運算 WHERE子句可用的關係運算子如下表所示: 1. 邏輯運算 WHERE子句可用的邏輯運算子有NOT、OR、AND及XOR,請看以下範例說明。 2. 關係運算 WHERE子句可用的關係運算子如下表所示: >  大於 <  小於 =  等於 >= 大於或等於 <= 小於或等於 <> 不等於 BETWEEN…AND… 指定的範圍

WHERE條件內可用的數值運算子如下表 : 3. 數值運算 WHERE條件內可用的數值運算子如下表 : 4. 集合運算 集合運算就是利用保留字IN所組成,其使用語法如下: WHERE(fieldname)〔NOT〕IN(〈valus list〉) 其中〈value list〉是指定的集合,集合中的元素如果超過1個,中間必須以逗號隔開。 符號 優先等級 +(正),-(負) 1 ^(次方) 2 *(乘),/(除) 3 +(加),-(減) 4

5. 通配運算 通配運算是利用LIKE保留字配合通配字元% 、- 、〔〕及^所組成,其中百分比符號(%)代表字元長度和字元不拘,底線符號(-)則代表長度為1的任意字元,中括號([])代表某一指定範圍或集合的單一字元,箭號(^)可用於表示不在字串中的字元,下表就是LIKE萬用字元的整理。 萬用字元 內容 % 代表零個至多個字元的字串 _ 代表單一字元 〔〕 代表指定範圍或集合的單一字元 〔^〕 代表不在指定範圍或集合的單一字元

以上萬用字元的簡要運算式範例如下表: 其使用語法如下,若需詳細說明請自行線上查閱Like運算子。 傳回值說明 LIKE "D%" "D"開頭的字串 LIKE "%D" "D"結尾的字串 LIKE "%D%" 包含"D"的字串 LIKE "_D" "D"結尾且只含二個字元的字串 LIKE "D_" "D"開頭且只含二個字元的字串 LIKE "_D_" "D"為中間第二個字元的三個字元字串 LIKE " 〔NY〕%" "N"開頭或"Y"開頭的字串 LIKE "%〔NY〕" "N"結尾或"Y"結尾的字串 LIKE "%〔NY〕%" 包含"N"或"'Y"的字串 LIKE "〔N-Y〕%" "N"到"'Y"開頭的字串 LIKE "〔^N〕%" 不是"N"開頭的字串 其使用語法如下,若需詳細說明請自行線上查閱Like運算子。 WHERE〈fieldname〉〔NOT〕LIKE〈search string〉 其中LIKE〈search string〉就是上表使用通配字元的運算式

GROUP BY項目的使用 SELECT指令中的GROUP BY項目可以用來將欄位中相同的值組合成群,其中SELECT除非使用函數,否則SELECT和GROUP BY所接欄位項目應相同。

ORDER BY項目的使用 利用ORDER BY這個項目,可以將輸出的結果依照某一個欄位進行排序,系統內定值為升冪ASCending,如果希望排列方式為降冪DESCending,則應在欄位後面加上DESC。

範例 17-1A 本節程式集錦。 物件說明: 1.為了方便讀者閱讀,本程式將SQL保留字以大寫表示,讀者於程式設計中,均可大小寫不拘。 1. MainMenu1:用於製作主功能表。 2. Query1:用於存取資料內容。 3. DataSource1:用於連結Query1與DBGrid1。 4. DBGrid1:用於展示SQL敘述的執行結果。 5. Memol:類別為TMemo,用於顯示欲執行SQL敘述。 程式說明: 1.為了方便讀者閱讀,本程式將SQL保留字以大寫表示,讀者於程式設計中,均可大小寫不拘。 2.字串內的空白均不可省略,如上面“ORDER BY…”的空白均不可省略。

17-2 INSERT INSERT可用來增加一筆記錄, 其語法如下,範例請看16-4e。 INSERT INTO 資料表(欄位) VALUE (欄位值)

範例 16-4e 如何新增、刪除及更正資料。 程式說明: 1. Insert、Delete及Update因為不傳回資料集,所以應使用ExecSQL,而非Select的Open。 2. Select可一次至多個資料表抓取所需的欄位,但Insert、Delete及Update僅能至一個資料表修正記錄。 3. Insert、Delete及Update不能使用集合性函式,如SUM及AVG等。 4. 若要一次更動多個資料表應使用UpdateSQL物件。

17-3 UPDATE UPDATE可用來更正合於條件的記錄, 其語法如下,範例請看16-4e。 UPDATE 資料表 SET 欄位=新值 WHERE 條件式

17-4 DELETE DELETE可用來刪除資料表內合於條件的記錄,其語法如下,範例請看16-4e。 DELETE FROM 資料表 WHERE 條件式

習題 1. 假設您要開一家婚友介紹中心,您應如何規劃資料庫,您的瀏覽查詢功能有哪些,您的報表功能有哪些? 1. 假設您要開一家婚友介紹中心,您應如何規劃資料庫,您的瀏覽查詢功能有哪些,您的報表功能有哪些? 2. 假設您要開一家大型房屋仲介公司,應如何規劃您的資料庫,瀏覽查詢功能有哪些,報表功能有哪些?