




已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
關(guān)系數(shù)據(jù)庫標準語言SQL / 1,SQL語言初步 數(shù)據(jù)查詢語句 數(shù)據(jù)庫更新語句 數(shù)據(jù)定義語句 數(shù)據(jù)控制語句,什麼是SQL?,SQL:Structured query language 功能:查詢、操縱、定義、控制 特點:1、一體化; 2、兩種使用方式,統(tǒng)一的語法結(jié)構(gòu); 方式一、聯(lián)機交互使用方式; 方式二、嵌入式。 3、高度非過程化; 4、語言簡潔,易學(xué)易用。,SQL支持關(guān)系數(shù)據(jù)庫三級模式,基本表:獨立存在的表。每個基表對應(yīng)一個存儲文件,一個表可帶若干索引。 存儲文件+索引=內(nèi)模式 視圖:是一個虛表。數(shù)據(jù)庫中僅存視圖定義,不存對應(yīng)的數(shù)據(jù) 。,SQL的三級模式,外模式,模式,內(nèi)模式,Storefile1,Storefile2,Storefile3,Storefile4,Basetable1,Basetable2,Basetable3,Basetable4,View1,View2,SQL,用戶,SQL命令的種類,DDL,數(shù)據(jù)定義語言 DML,數(shù)據(jù)操縱語言 DQL,數(shù)據(jù)查詢語言 DCL,數(shù)據(jù)控制語言 數(shù)據(jù)管理命令 事務(wù)性控制命令,DDL,數(shù)據(jù)定義語言,用戶創(chuàng)建或重新構(gòu)建數(shù)據(jù)庫的語言,CREATE INDEX ALTER INDEX DROP INDEX,CREATE TABLE ALTER TABLE DROP TABLE,DML,數(shù)據(jù)操縱語言,用于在關(guān)系數(shù)據(jù)庫對象中操縱數(shù)據(jù) INSERT UPDATE DELETE DQL,數(shù)據(jù)查詢語言 對數(shù)據(jù)庫中的信息尋找和定位 SELECT,DCL,數(shù)據(jù)控制語言,用于創(chuàng)建與用戶訪問相關(guān)的對象,也控制著用戶的權(quán)限分配 ALTER PASSWORD改變口令 GRANT為用戶授予特權(quán) REVOKE從用戶處收回特權(quán),數(shù)據(jù)管理命令,審計和分析對數(shù)據(jù)庫的操作,并可分析系統(tǒng)的執(zhí)行過程 START AUDIT STOP AUDIT,事務(wù)性控制命令,用戶管理數(shù)據(jù)庫的事務(wù)命令 COMMIT用于保護數(shù)據(jù)庫的事務(wù) ROLLBACK用于撤消數(shù)據(jù)庫的事務(wù) SAVEPOINT創(chuàng)建一組事務(wù)中的撤消點 SET TRANSACTION給事務(wù)命名,數(shù)據(jù)庫中的表結(jié)構(gòu),數(shù)據(jù)庫中的表 數(shù)據(jù)和基本數(shù)據(jù)類型,數(shù)據(jù)庫中的表,表:字段、記錄、列、主鍵,customer_tbl,Order_tbl,Products_tbl,Prod_id Prod_desc cost 112 candy 1.35 113 plastic 1.04,Products_tbl,記錄,列(字段),主鍵,數(shù)據(jù)和基本數(shù)據(jù)類型,數(shù)據(jù)是存儲在數(shù)據(jù)庫中的信息集合。數(shù)據(jù)類型用于給特定的數(shù)據(jù)提供規(guī)則。 基本數(shù)據(jù)類型包括: 字符串 數(shù)字 日期和時間值,字符串,定長字符串: CHARACTER(n) 變長字符串: CHARACTER VARYING(n),數(shù)字值,BIT(n) BIT VERYING(n) DECIMAL(n,n) INTEGER SMALLINT FLOAT(p) REAL(s) DOUBLE PRECISION(p),日期和時間值,DATE(YEAR,MONTH,DAY) TIME(HOUR,MINUTE,SECOND) INTERVAL TIMESTAMP,NULL值:為空。,數(shù)據(jù)查詢語句,語法: SELECT * | all | column1,column2 FROM table1 ,table2 WHERE condition GROUP BY column1 ORDER BY column2(asc,desc) ,按列取值相等的原則進行分組,按列值進行排序,例1:SELECT * FROM products_tbl WHERE cost 5 例2:SELECT prod_desc,cost FROM products_tbl WHERE prod_id = 119 例3:多表查詢 SELECT employee_tbl.emp_name, employee_pay_tbl.position FROM employee_tbl, employee_pay_tbl WHERE employee_tbl.emp_id = employee_pay_tbl.emp_id,SQL中操作符的使用,定義:操作符是保留的字或字符,主要用于比 較和算術(shù)運算。 分類:比較操作符,邏輯操作符和算術(shù)運算符。 1、比較操作符 包括:=,, , =。 注意比較雙方的數(shù)據(jù)類型。 2、算術(shù)運算符 包括:+,-,*,/等。 與數(shù)學(xué)運算規(guī)則一致。,2、邏輯操作符,IS NULL(是否為空) BETWEEN(在某兩個值之間) IN(一系列值中) LIKE(相似值的比較) EXITS(是否存在符合條件的數(shù)據(jù)) UNIQUE(是否唯一) ALL/ANY(一組數(shù)據(jù)的所有/其中的任何一個) AND/OR(邏輯與/或),IS NULL / IS NOT NULL,WHERE salary IS NULL 工資為空值。 WHERE salary = NULL 工資中含有NULL字符。 例: SELECT emp_id, emp_name FROM employee_tbl WHERE emp_phone IS NULL,BETWEEN,WHERE salary BETWEEN 200 and 300 工資在200到300之間,包括200和300。 IN WHERE salary IN (200,300,400) 工資必須是200,300,400之中的值。,LIKE,使用匹配符將一個值同其相似的值比較。 匹配符包括:- 代表一個字符。 % 代表多個字符。 如: WHERE salary LIKE -00 查找00作為后兩位數(shù)的值。 WHERE salary LIKE 200% 查找200作為前三位數(shù)的值。,EXISTS,查詢在指定表中是否存在一行符合某種條件的數(shù)據(jù)。 WHERE EXISTS (SELECT employee_id FROM employee_tbl WHERE employee_id = 3333),UNIQUE,在特定的表中搜索每一行是否唯一。 WHERE UNIQUE (SELECT salary FROM employee_tbl WHERE employee_id = 3333) 測試滿足條件的工資是否有重復(fù)數(shù)據(jù)。,ALL/ANY,與某個數(shù)據(jù)集中所有數(shù)據(jù) / 任何一個進行比較。 WHERE salary all (SELECT salary FROM employee_tbl WHERE city = INDIAN),AND/OR,AND連接的條件必須都滿足。 OR連接的條件至少滿足一個。 如:SELECT * FROM products_tbl WHERE cost 10 and cost 30 如:SELECT * FROM products_tbl WHERE prod_id = 7725 or prod_id = 2345,庫函數(shù),函數(shù)通常是列名或表達式相連系的命令。 1、統(tǒng)計函數(shù) 2、字符函數(shù) 3、算術(shù)函數(shù),1、統(tǒng)計函數(shù),統(tǒng)計函數(shù):用于提供統(tǒng)計信息,如:累加、總和、平均值。 主要的統(tǒng)計函數(shù): COUNT:統(tǒng)計行數(shù)或不為NULL的列數(shù)。 SUM:求和。 MAX:求最大值。 MIN:求最小值。 AVG:求平均值。,COUNT,語法: COUNT(*)|(DISTINCT|ALL|COLUMN NAME) 注意:DISTINCT統(tǒng)計唯一的行; DISTINCT不能用于COUNT(*),只能用 于COUNT(column_name),舉例:,SELECT COUNT(*) FROM EMPLOYEE_TBL 統(tǒng)計雇員表中所有行數(shù) SELECT COUNT(EMP_ID) FROM EMPLOYEE_TBL 統(tǒng)計所有雇員身份證號 SELECT COUNT(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 統(tǒng)計唯一行數(shù),SUM:僅用于數(shù)字類型。,語法: SUM( DISTINCT COLUMN NAME) 舉例: SELECT SUM (SALARY) FROM EMPLOYEE_PAY_TBL 計算工資總和 SELECT SUM (DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 計算沒有重復(fù)工資總和,AVG:確定一組數(shù)據(jù)的平均值,語法: AVG(DISTINCT COLUMN NAME) 舉例: SELECT AVG(SALARY) FROM EMPLOYEE_PAY_TBL 計算工資的平均值 SELECT AVG(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 計算唯一的工資平均值,MAX和MIN,語法: MAX( DISTINCT COLUMN NAME ) MIN ( DISTINCT COLUMN NAME ) 舉例: SELECT MAX(SALARY) FROM EMPLOYEE_PAY_TBL 計算最高的工資 SELECT MAX(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 計算最高的工資,例:表DTUDENT_TBL,數(shù)學(xué)平均值 總成績最高值 語文成績最低值 數(shù)學(xué)成績總和 表中的數(shù)據(jù)行數(shù),1. SELECT AVG(maths) FROM STUDENT_TBL 2. SELECT MAX(total) FROM STUDENT_TBL 3. SELECT MIN(comp) FROM STUDENT_TBL 4. SELECT SUM(maths) FROM STUDENT_TBL 5. SELECT COUNT(*) FROM STUDENT_TBL,2、字符函數(shù),UPPER(character string):將指定字符串中的小寫字母換成大寫字母。 LOWER (character string): 將指定字符串中的大寫字母換成小寫字母。 SUBSTRING (colunm name,startposition,length) 從指定字符串中取字符。,例:,SELECT UPPER(CITY) FROM EMPLOYEE_TBL SELECT LOWER (CITY) FROM EMPLOYEE_TBL SELECT SUBSTRING(EMP_ID,1,3) FROM EMPLOYEE_TBL SELECT SUBSTRING(EMP_ID,5,3) FROM EMPLOYEE_TBL,3、算術(shù)函數(shù),ABS(絕對值)、SIN、COS、TAN、 EXP(指數(shù))、SQRT(開方)、 POWER(冪) 語法:函數(shù)名(表達式) 例:SELECT SQRT(MATHS) * 10 FROM STUDENT_TBL,數(shù)據(jù)庫更新語句,INSERT 給表填充數(shù)據(jù) UPDATE 更新已存在的數(shù)據(jù) DELETE 刪除表中的數(shù)據(jù),INSERT 給表填充數(shù)據(jù),語法: INSERT INTO table_name VALUES(value1,value2,.) 例: products_tbl:prod_id varchar(10) prod_desc varchar(25) cost number(6,2) 輸入數(shù)據(jù): INSERT INTO products_tbl VALUES(7725,LEATHER,26.99),UPDATE 更新已存在的數(shù)據(jù),語法: UPDATE table_name SET column_name = value WHERE condition 例:UPDATE products_tbl SET prod_id = 1001 WHERE prod_desc = coat,DELETE 刪除表中的數(shù)據(jù),語法: DELETE FROM table_name WHERE condition 例:DELETE FROM products_tbl WHERE prod_ID = 1001,SQL數(shù)據(jù)定義語句,數(shù)據(jù)定義功能包括:基表、視圖和索引的定義。 一、創(chuàng)建與刪除基表 二、創(chuàng)建與刪除視圖 三、索引的建立與刪除,一、創(chuàng)建與刪除基表,創(chuàng)建基表語法: CREATE TABLE table_name (col_name col_properties constraint ) table_name 表名 col_name 列名 創(chuàng)建臨時表: CREATE TABLE # table_name (col_name col_properties constraint ),刪除一張表就是刪除一張表定義及其所有與之相關(guān)連的數(shù)據(jù)、索引、觸發(fā)器、約束和許可。 語法: DROP TABLE databasename.table_name 例: DROP TABLE pubs.dbo.authors2,修改表結(jié)構(gòu)語法: ALTER TABLE table_name modifycol_name col_properties addcol_name col_properties dropcol_name col_properties 例:ALTER TABLE employee_tbl modify(emp_id varchar(10),例:創(chuàng)建一雇員表(編號/C,姓名/C,住所/C,電話/N)。,CREATE TABLE employee_tbl (emp_id char(9) not null, emp_name varchar(40) not null, emp_city varchar(15) not null, emp_phone number(10) null),二、視 圖,視圖的定義 視圖的查詢 視圖的更新 刪除視圖,視圖的定義,什么是視圖? 視圖是存儲在數(shù)據(jù)庫中的預(yù)先定義好的查詢,具有表的外觀,可以象表一樣對其進行存取,但不占據(jù)物理存儲空間。 視圖的特點: 視圖的存在依賴于生成視圖的表; 視圖能用作數(shù)據(jù)庫安全的一種形式; 利用視圖維護綜合數(shù)據(jù)。,創(chuàng)建視圖,基本語法: CREATE VIEW view_name AS SELECT STATEMENT WITH CHECK OPTION 1、從單獨的表中創(chuàng)建視圖 2、從多表中創(chuàng)建視圖 3、從視圖中創(chuàng)建視圖,1、從單獨的表中創(chuàng)建視圖,語法: CREATE VIEW view_name AS SELECT * |COL1,COL2, FROM table_name WHERE expression 例: CREATE VIEW emp _ view AS SELECT emp_id,emp_name,phone FROM employee_tbl,2、從多表中創(chuàng)建視圖,語法: CREATE VIEW VIEW_NAME AS SELECT * |COL1,COL2,. FROM TABLE_NAME1,TABLE_NAME2, WHERE EXPRESSION,例:,CREATE VIEW employee_summary AS SELECT e.emp_id,,p.position,p.pay_rate FROM employee_tbl e,employee_pay_tbl p WHERE e.emp_id = p.emp_id,3、從視圖中創(chuàng)建視圖,語法:CREATE VIEW2 AS SELECT * FROM VIEW1 注意:不要創(chuàng)建層次太深的視圖; 例:由上例視圖employee_summary CREAT subsummary AS SELECT * FROM employee_summary,視圖的查詢,對視圖的查詢與對基本表查詢一樣; 系統(tǒng)執(zhí)行視圖查詢時是把它轉(zhuǎn)換成等價的對基本表的查詢。 例: SELECT emp_id, position FROM employee_summary WHERE pay_rate 15,視圖的更新,對視圖的更新最終要轉(zhuǎn)換成對基本表的更新。 視圖更新條件: 1、視圖必須未涉及連接; 2、視圖必須不包含GROUP BY子句; 3、視圖不能包含任何組合函數(shù); 4、不能使用DISTINCT子句; 5、WHERE子句不能包含表的嵌套引用。,例: UPDATE employee summary SET pay_rate = 18 WHERE emp_id = 52431875 轉(zhuǎn)換成: UPDATE employee _pay_tbl SET pay_rate = 18 WHERE emp_id = 52431875,刪除視圖,語法: DROP VIEW view_name 例:DROP VIEW employee summary 刪除了視圖,由此視圖導(dǎo)出的其他視圖也將自動被刪除 若導(dǎo)出此視圖的基本表被刪除了,則此視圖也將自動刪除,視圖的優(yōu)點,視圖對于數(shù)據(jù)庫的重構(gòu)造提供了一定程度的邏輯獨立性。 簡化了用戶觀點。 視圖使不同的用戶能以不同的方式看待同一數(shù)據(jù)。 視圖對機密數(shù)據(jù)提供了自動的安全保護功能。,三、索引的建立與刪除,語法: CREATE UNIQUE CLUSTER INDEX index_name ON table_name(clo_name 升/降序,.) ASC:升序,DESC:降序 UNIQUE 每一個索引只對應(yīng)唯一的數(shù)據(jù)記錄; CLUSTER 聚簇索引,是指索引項的順序與表中記錄的物理順序一致的索引組織。,例:為學(xué)生-課程數(shù)據(jù)庫中的student, couse, sc 3個表建立索引。其中student表按學(xué)號升序建立唯一索引; couse表按課程號升序建立唯一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年地暖管項目提案報告模范
- 2025年電工(電工故障排除)職業(yè)技能鑒定實操試卷
- 金融行業(yè)從業(yè)資格及工作經(jīng)歷證明(5篇)
- 賣方的購銷協(xié)議
- 電商平臺用戶行為分析系統(tǒng)
- 2025年保健按摩師(高級技師)職業(yè)技能鑒定典型試題
- 2025年甘油(丙三醇)項目立項申請報告模板
- 商品混凝土供需協(xié)議
- 2025年多媒體應(yīng)用設(shè)計師考試-網(wǎng)頁設(shè)計與交互科目試卷
- 二手奢侈品市場2025年交易規(guī)范與消費者信任構(gòu)建策略研究及市場反饋及優(yōu)化效果評估
- 統(tǒng)編版(2024)七年級下冊歷史期末質(zhì)量監(jiān)測試卷(含答案解析)
- 小兒高熱驚厥急救與護理
- 2025年統(tǒng)編版(2024)初中歷史七年級下冊期末測試卷及答案
- 云計算試題及答案
- 政治●湖北卷丨2024年湖北省普通高中學(xué)業(yè)水平選擇性考試政治試卷及答案
- 中醫(yī)醫(yī)院現(xiàn)代醫(yī)院管理制度章程
- 無錫市2024-2025學(xué)年四年級下學(xué)期數(shù)學(xué)期末試題一(有答案)
- 2024年醫(yī)生三基三嚴模擬習(xí)題(附答案解析)
- 2025年神經(jīng)外科護理人文關(guān)懷計劃
- 2025春季學(xué)期國家安全教育期末考試-國開(XJ)-參考資料
- 醫(yī)學(xué)教育常識考試試題及答案
評論
0/150
提交評論