數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL.ppt_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1,第4章 數(shù)據(jù)庫(kù)及應(yīng)用程序開(kāi)發(fā) 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL,西安交通大學(xué) 計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心,軟件開(kāi)發(fā)技術(shù)基礎(chǔ),2,4.1.3關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL,結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL,Structured Query Language)是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。它的主要功能包括: 數(shù)據(jù)定義:Data Defination Language(DDL) 數(shù)據(jù)查詢(xún): Data Query 數(shù)據(jù)操縱:Data Manipulation Language(DML) 數(shù)據(jù)控制 : Data Control Language(DCL),3,(2)SQL特點(diǎn),綜合統(tǒng)一:集數(shù)據(jù)定義語(yǔ)言(DDL)、數(shù)據(jù)操縱語(yǔ)言(DML)和數(shù)據(jù)控制語(yǔ)言DCL于一體,綜合管理功能于一身。 高度非過(guò)程化:用戶(hù)只需提出“做什么”,而不需指明“怎么做”。 面向集合的操作方式:用戶(hù)查詢(xún)、修改、的數(shù)據(jù)不是一條記錄,而是記錄的集合。,4,SQL特點(diǎn)(2),以同一語(yǔ)法結(jié)構(gòu)提供兩種使用方式:用戶(hù)可以從鍵盤(pán)使用SQL命令,也可以將SQL語(yǔ)句嵌入其他高級(jí)語(yǔ)言中。(PHP VC示例) 語(yǔ)言簡(jiǎn)潔、易于使用:語(yǔ)句很少, 數(shù)據(jù)定義:CTEATE DROP ALTER 數(shù)據(jù)操縱:INSERT UPDATE DELETE 數(shù)據(jù)查詢(xún):SELECT 數(shù)據(jù)控制:GRANT REVOTE 可以對(duì)基本表和視圖進(jìn)行查詢(xún),5,關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu),6,SQL( Structured Query Language) 1 建立表 CREATE TABLE table_name (column_name data-type consraint, ),7,建立表,CREATE TABLE employee (eid CHAR(6), name VARCHAR(8) NOT NULL, age NUMERIC(3,0), country VARCHAR(10) NULL) / NUMERIC(3,0) - NUMERIC,8,建立表,CREATE TABLE employee (eid CHAR(6) NOT NULL PRIMARY KEY, name VARCHAR(8) NOT NULL, age NUMERIC(3,0), country VARCHAR(10) NULL ) drop table employee3 刪除數(shù)據(jù)表,9,SQL SERVER中常用的數(shù)據(jù)類(lèi)型,學(xué)號(hào)、身份證號(hào)等,使用字符型數(shù)據(jù),10,2 插入記錄,INSERT INTO 表名 (列名表) VALUES (值表) INSERT INTO employee (eid, name, age, country) VALUES (3018, zhang, 28, China),11,INSERT INTO employee VALUES (3056, wang, 35, USA) INSERT INTO employee (eid, name, country) VALUES (4025, li, Russia),2、 插入記錄,12,3、修改記錄,UPDATE 表名 SET 字段名=表達(dá)式 WHERE 條件 UPDATE employee SET name=Li Ming WHERE eid=4025,13,UPDATE employee SET name=Zhang Li, age=36, country=USA WHERE eid=3056 可以修改多個(gè)字段的值。如果不帶WHERE修改所有的記錄。,14,4、刪除記錄,DELETE 表名 WHERE 條件 DELETE employee WHERE eid=3018,15,5、 查詢(xún)記錄,SELECT 表達(dá)式 FROM 表名表 WHERE 條件 GROUP BY 字段名表 HAVING 條件 ORDER BY 字段名表,16,(1) 舉例,SELECT pub_id, pub_name, country FROM publishers SELECT * FROM publishers,17,(2) 刪除重復(fù)的行DISTICT,SELECT city, state FROM authers SELECT DISTICT city, state FROM authers,18,(3) 計(jì)算表達(dá)式,SELECT title_id, type, price, price_price*0.3 FROM title SELECT au_lname+.+au_fname, city+.+state FROM authors,19,(4)篩選條件,(a)條件: 比較= = != price45.3 country=China 邏輯運(yùn)算 NOT AND OR Country=China AND age35,20,(b)舉例,SELECT title_id, type, price, price - price*0.3 FROM titles WHERE price - price*0.318 SELECT pub_id, pub_name FROM publishers WHERE country=USA AND state=CA,21,(c) LIKE,列名 NOT LIKE 模式 %: 任意字符串, _:任意一個(gè)字符 SELECT au_lname+.+au_fname, city+.+state FROM authors WHERE au_fname LIKE D%,22,SELECT au_lname+.+au_fname, city+.+state FROM authors WHERE au_id LIKE 72_-%,23,24,25,其他的條件查詢(xún),26,(5) 結(jié)果排序,ORDER BY 字段表 通常返回的結(jié)果是隨機(jī)排列的。 SELECT stor_name, city FROM stores ORDER BY store_name,27,SELECT stor_name, city FROM stores ORDER BY store_name DESC SELECT stor_name, city FROM stores ORDER BY store_name ASC,SELECT stor_name, city FROM stores ORDER BY stor_name, city 用多個(gè)列排列。 SELECT stor_name, city FROM stores ORDER BY state 用不出現(xiàn)的列。,29,(6) 統(tǒng)計(jì)函數(shù),30,SELECT AVG(price) FROM titles SELECT MAX(price) FROM titles WHERE type=business,31,SELECT AVG(qty), SUM(qty), COUNT(DISTICT stor_id) FROM sales SELECT COUNT(*) FROM publishers WHERE state=CA,32,(7) 結(jié)果分組,GROUP BY 分組列名表 SELECT type, AVG(price), SUM(price), COUNT(*) FROM titles WHERE type in (business, mod_cook, trad_cook) GROUP BY type,SELECT type, pub_id, AVG(price), SUM(price), COUNT(*) FROM titles WHERE type in (business, mod_cook, trad_cook) GROUP BY type, pub_id,GROUP BY 分組列名表 HAVING 條件 對(duì)GROUP的分組結(jié)果再進(jìn)一步篩選。 SELECT type, AVG(price), SUM(price), COUNT(*) FROM titles WHERE price$10 GROUP BY type,使用HAVING,SELECT type, AVG(price), SUM(price), COUNT(*) FROM titles WHERE price$10 GROUP BY type HAVING AVG(price)$20,使用HAVING,36,(8) 多表查詢(xún),(a)笛卡爾乘積 SELECT title_id, au_fname FROM titles, authors SELECT titles.title_id, titles.title, titleauthor.au_id FROM titles, titleauthor,37,(b )別名,SELECT t.title_id, t.title, ta.au_id FROM titles t, titleauthor ta SELECT t.title_id, t.title, ta.au_id FROM titles t, titleauthor ta WHERE t.title_id=ta.title_id,38,(c)篩選,SELECT t.title_id, a.au_id FROM titles t, titleauthor ta, authors a WHERE t.title_id=ta.title_id and ta.au_id=a.au_id,39,6 視圖,(1)視圖的定義 SQL建立視圖的語(yǔ)句格式為: CREATE VIEW (,) AS ,40,CREATE VIEW au_view AS SELECT au_id, au_fname, au_lname FROM authors CREATE VIEW author_title AS SELECT t.title_id, a.au_id FROM titles t, titleauthor ta, authors a WHERE t.title_id=ta.title_id and ta.au_id=a.au_id,41,(2)視圖查詢(xún),SELECT * FROM au_view SELECT t.title_id, a.au_id FROM titles t, titleauthor ta, authors a WHERE t.title_id=ta.title_id and ta.au_id=a.au_id,42,(3)刪除視圖,DROP VIEW 視圖名 DROP VIEW a_authors,43,7、索引,索引可以極大地提高查詢(xún)的速度 索引可以建在一列或幾列上 有ASC(升序)和DESC(降序) (1)索引類(lèi)型 按照存儲(chǔ)位置:聚集索引和非聚集索引。 按照關(guān)鍵字值是否唯一:唯一索引和非唯一所以。,44,(2)建立索引,CREATE UNIQUE CLUSTERED | NOCLUSTERED INDEX 索引名 ON 表名 (列名表) CREATE UNIQUE INDEX id_index ON authors (au_id),45,CREATE INDEX id_index ON authors ( au_fname DESC,au_id) CREATE CLUSTERED INDEX id_index ON authors ( au_fname DESC,au_id),46,(3)刪除索引,DROP INDEX 表名.索引名 DROP INDEX authors.id_index,47,8、數(shù)據(jù)控制,數(shù)據(jù)控制也稱(chēng)為數(shù)據(jù)保護(hù) 通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶(hù)的使用權(quán)限加以限制而保證數(shù)據(jù)安全的重要措施。 SQL語(yǔ)言提供一定的數(shù)據(jù)控制功能,能在一定程度上保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的完全性和完整性,并提供了一定的并發(fā)控制及恢復(fù)能力。 SQL的數(shù)據(jù)控制語(yǔ)句包括授權(quán)(Grant)、收權(quán)(Revoke)和拒絕訪(fǎng)問(wèn)(Deny)三種,其權(quán)限的設(shè)置對(duì)象可以是數(shù)據(jù)庫(kù)用戶(hù)或用戶(hù)組。,48,(1)授權(quán),GRANT語(yǔ)句向用戶(hù)授予操作權(quán)限 GRANT , ON TO , | PUBLIC WITH GRANT OPTION; /PUBLIC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論