版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、WORD格式SQL語句的概述SQL語言的分類數(shù)據(jù)定義語言Data DefinitionLanguage主要用于修改、創(chuàng)立和刪除數(shù)據(jù)庫對象,其中包括 CREATE ALTER DROP語句。數(shù)據(jù)查詢語言Data Query Language主要用于查詢數(shù)據(jù)庫中的數(shù)據(jù),其主要是SELECT語句, SELECT語句包括五個子句,分別是 FROM WHERE HAVING GROUP BY 和 WITH 語句。數(shù)據(jù)操作語言 Data Manipulation Language主要用于更新數(shù)據(jù)庫里數(shù)據(jù)表中的數(shù)據(jù),包括 INSERT UODATE DELETE語句。數(shù)據(jù)控制語言Data Control L
2、anguage主要用于授予和回收訪問數(shù)據(jù)庫的某種權(quán)限。包括 GRANTREVOKE等語句。事物控制語言,主要用于數(shù)據(jù)庫對事物的控制,保證數(shù)據(jù)庫中數(shù)據(jù)的一致性,包括 COMMIT ROLLBACK語句。常用的數(shù)據(jù)類型MYSQL:整型整數(shù)類型取值X圍TINYINT-128 至 127 1 字節(jié)SMALLINT-32768 至 32767 2 字節(jié)MEDIUMINT-sqrt(2,23) 至 sqrt(2,23)-1INT-sqrt(2,31) 至 sqrt(2,31)-1BIGINT-sqrt(2,63) 至 sqrt(2,63)-1浮點型浮點數(shù)類型取值X圍FLOAT(M,N)DOUBLE(M,N
3、)字符類型CHAR(N)定長 1 至 255 個字符VARCHAR(N)可變長 1 至 65535TINYTEXT(N)可變長 1 至 65535TEXT(N)MEDIUMTEXT(N)LONGTEXT(N)SQL語句的書寫標(biāo)準(zhǔn)SQL語句中不區(qū)分關(guān)鍵字的大小寫SQL語句中不區(qū)分列名和對象名的大小寫SQL語句對數(shù)據(jù)庫中數(shù)據(jù)的大小寫敏感SQL語句中使用 -注釋,當(dāng)使用-注釋時, -后面至少有 -個空格,多行注釋用/*/專業(yè)資料整理WORD格式數(shù)據(jù)庫的創(chuàng)立與刪除專業(yè)資料整理WORD格式數(shù)據(jù)庫的創(chuàng)立CREATE DATABASE database_name;在 MYSQL COMMAND LINE C
4、LIENT中書寫 SQL語句時,在 SQL語句后面都要加上分號數(shù)據(jù)庫的刪除DROP DATABASE database_name;數(shù)據(jù)表的創(chuàng)立與更新數(shù)據(jù)庫中的表數(shù)據(jù)記錄:在數(shù)據(jù)表中的每一行被稱為數(shù)據(jù)記錄字段:數(shù)據(jù)表中的每一列被稱為字段主鍵 PRIMARY KEY:作為數(shù)據(jù)表中唯一的表示,保證了每一天數(shù)記錄的唯一性。主鍵在關(guān)系數(shù)據(jù)庫中約束實體完整性。所謂的實體完整性,是指對數(shù)據(jù)表中行的約束。外鍵 FOREIGN KEY:外鍵用來定義表與表之間的關(guān)系。在數(shù)據(jù)表中,如果屬性列 F 是關(guān)系 B 中的一個屬性并不是關(guān)系 B 的主鍵,并且屬性列 F 是關(guān)系 A 的主鍵,那么 F 就是 B 的外鍵。外鍵在關(guān)
5、系數(shù)據(jù)庫中約束參照完整性。所謂的參照完整性是指表與表之間的約束。索引:索引是指向數(shù)據(jù)表中的一個指針, 指向索引字段在數(shù)據(jù)表中的物理位置。 一般可以在如下幾種情況下建立索引在主鍵列中創(chuàng)立索引多表連接時,在經(jīng)常使用的連接列上創(chuàng)立索引在經(jīng)常使用WHERE子句查詢的列上創(chuàng)立索引在經(jīng)常進展分組GROUP BY及排序 ORDER BY的列上創(chuàng)立索引約束:為了保證數(shù)據(jù)的完整需要使用約束1. 唯一約束 UNIQUE使用唯一約束的某一列或者某一組中沒有一樣的值,即保證了值的唯一性。但是唯一約束中可以插入NULL值2. 主鍵約束 PRIMARY KEY保證使用主鍵約束的列中只能有唯一的值,并且不能包含 NULL
6、值,數(shù)據(jù)表中每一列只能定義一個PRIMARY KEY3. 外鍵約束 FOREIGN KEY保證表參照完整性,確保對一個數(shù)據(jù)表的數(shù)據(jù)操作不會對與之關(guān)聯(lián)的表造成不利的影響4. 檢查約束 CHECK限制列的取值X圍或者取值條件, 可以為一個列定義多個 CHECK 約束5. 非空約束 NOT NULL用于對列的約束創(chuàng)立數(shù)據(jù)表CREATE TABLE table_name(column_name1 datatype constraint_condition1,column name2 datatype constraint_condition2)使用約束1.唯一約束 UNIQUE用來保證某一列或者某一組
7、列中沒有一樣的值,一般為列創(chuàng)立了一個唯一約束后,數(shù)據(jù)庫會自動為該列建立一個唯一索引,其索引名與約束名一樣例如: CREATE TABLE T_dept(專業(yè)資料整理WORD格式dept_ID VARCHAR(15) UNIQUE,dept_Name VARCHAR(10)2.主鍵約束CREATE TABLE T_result(stuID VARCHAR(15),cruID VARCHAR(15),result DOUBLE,PRIMARY KEY(stuID,curID)3.外鍵約束FOREIGN KEY表名 1列名 1 REFERENCES表名 2 列名 2ON UPDATE CASCADE
8、|SET NULL|RESTRICTON DELETE CASCADE|SET NULL|RESTRICT專業(yè)資料整理WORD格式其中, FOREIGN KEY是關(guān)鍵字,表名的外鍵,表名 2 表示主表的名字,列名1 是可選的,列名1 是指定數(shù)據(jù)表中用于外鍵約束2 主表中與從表中列名1 對應(yīng)列的名字,后面的ON專業(yè)資料整理WORD格式UPDATEON DELETE表示對表中的數(shù)據(jù)的修改或者刪除,主從表之間采取什么樣的操作方式,專業(yè)資料整理WORD格式是可選的專業(yè)資料整理WORD格式CASCADE:級聯(lián)刪除,如果主表中一條數(shù)據(jù)記錄被刪除,從表中的數(shù)據(jù)也將刪除SET NULL:置空刪除,如果主表中的
9、一條數(shù)據(jù)記錄南北刪除,從表中與之相連的數(shù)據(jù)也將置空RESTRICT:受限刪除,如果主表中的一條數(shù)據(jù)被刪除,那么在執(zhí)行DELETE語句時系統(tǒng)會報錯, 通知用戶與主表相對應(yīng)的數(shù)據(jù)在從表中仍然存在,但是與主表相對應(yīng)的數(shù)據(jù)在從表中不被刪除,它是默認(rèn)的方式CREATE TABLE T_result(stuID VARCHAR(15),curID VARCHAR(15),result DOUBLE,FOREIGN KEY (stuID) REFERCES T_student (stuID) ON DELETE CASCADE, PRIMARY KEY(stuID,curID)3.檢查約束CHECKCREA
10、TE TABLE T_curriculum(curID VARCHAR(15) PRIMARY KEY,curName VARCHAR(10),credit INT,CHECK(credit BETWEEN 3 AND 8)4.非空約束NOT NUL使用索引1. 唯一索引:在數(shù)據(jù)表中使用 UNIQUE 可以為一個數(shù)據(jù)列定義一個唯一索引,唯一索引中的每一個索引值只對應(yīng)數(shù)據(jù)表中的一條記錄,保證了數(shù)據(jù)列中記錄的唯一性2. 主索引:在數(shù)據(jù)表中使用 PRIMARY KEY可以為一個數(shù)據(jù)列定義一個主索引,所謂的專業(yè)資料整理WORD格式主索引就是在主鍵列中建立索引3.單列索引: 定義在數(shù)據(jù)表中一個數(shù)據(jù)列上的
11、索引就是單列索引,一般在數(shù)據(jù)查詢時,如果 WHERE 子句中經(jīng)常用到的數(shù)據(jù)表中的某一列作為查詢條件,就可以把該列創(chuàng)立為單列索引4. 復(fù)合索引:索引可以定義在一個數(shù)據(jù)表的多個數(shù)據(jù)列上,像這樣的索引被稱為復(fù)合索引5. 聚簇索引:創(chuàng)立與刪除索引CREATE UNIQUE|CLUSTER INDEX index_nameON table_name(column_name 排序方式 )排序:關(guān)鍵字ASC表示升序排列,關(guān)鍵字DESC表示降序排列修改數(shù)據(jù)庫中的表1. 向表中增加一列ALTER TABLE table_name ADD(column_name datatype constraint_condi
12、tion) 例如: ALTER TABLE T_teacher ADD salary INT NOT NULL2. 增加一個約束ALTER TABLE table_name ADD constraint_type (column_name) 例如: ALTER TABLE dept ADD PRIMARY KEY (dept_ID)3. 增加一個索引ALTER TABLE table_name ADD INDEX(column_name1,column_name2) 例如: ALTER TABLE T_curriculum ADD INDEX i_credit(credit)4. 修改表中的某
13、一列ALTER TABLE table_name MODIFY column_name datatype 例如: ALTER TABLE T_student MODIFY sex CHAR(2)5. 刪除表中的某一列ALTER TABLE table_name DROP column_name6. 刪除一個約束條件ALTER TABLE table_name DROP constraint_type7. 刪除數(shù)據(jù)庫中的表DROP TABLE table_nameCASCADE CONSTRAINTS刪除表時要使用 CASCADE CONSTRAINTS級聯(lián)刪除從表中的外鍵約束數(shù)據(jù)的查詢操作查詢
14、全部列的數(shù)據(jù)記錄SELECT * FROM table_name or view_name,table_name1 or view_name1 查詢表中指定的列專業(yè)資料整理WORD格式SELECT目標(biāo)列 ,目標(biāo)列FROM 表名或者視圖名, 表名或者視圖名在 SELECT語句中查詢數(shù)據(jù)表或者視圖指定的列時,指定的數(shù)據(jù)表或者視圖中存在的列在 SELECT語句中指定的列名必須是專業(yè)資料整理WORD格式查詢表中不重復(fù)的記錄SELECT DISTINCT目標(biāo)列 ,目標(biāo)列FROM 表名或者視圖名, 表名或者視圖名使用列別名查詢SELECT目標(biāo)列AS 列別名, 目標(biāo)列AS 列別名FROM 表名或者視圖名,表
15、名或者視圖名在 SELECT語句中使用列別名的形式對數(shù)據(jù)表或者視圖查詢時,可以再在查詢的列名后面使用一個空格鍵來代替 AS,空格后面再跟上列別名的名字。如果列別名對字母大小寫敏感, 或者在使用包含有空格或者特殊字符的列別名,那么必須使用單引號或者雙引號將其引起來,否那么系統(tǒng)將報錯對查詢的記錄進展運算SELECT語句還可以使用算數(shù)運算符對指定的列進展運算,其中算術(shù)運算符包括加減乘除以及模除,在 SELECT語句中對指定的列進展算術(shù)運算符進展運算時,只會改變顯示的結(jié)果,并不會改變數(shù)據(jù)表中列的原有值使用連接符 | 連接字段在 ORACLE中,可以使用 | 連接符連接多個字段,在使用連接符時,連接的數(shù)
16、據(jù)類型應(yīng)該是一樣的, 如果不同系統(tǒng)將會報錯, 如果需要在連接的字段中參加字符或者是日期類型的值, 需要將該字符值或者日期類型的值使用單引號引起來。注意, 在 MYSQL和 MSSQL SERVER中并不支持連接符| ,在 MYSQL中可以使用CONCAT函數(shù),在 MS SQL SERVER中可以使用 +來連接關(guān)于 NULL 值在數(shù)據(jù)庫中,如果沒有為該列賦值,而且該列也沒有默認(rèn)值,此時查詢的結(jié)果就為空,即 NULL專業(yè)資料整理WORD格式使用WHERE子句查詢表中滿足條件的記錄專業(yè)資料整理WORD格式比較查詢專業(yè)資料整理WORD格式比較運算符分為三類,算術(shù)比較運算符,BETWEEN AND ,
17、IN專業(yè)資料整理WORD格式算術(shù)比較運算符SQL語句中的算術(shù)比較運算符主要包括=>=<=><!=<>不等于!>不大于!< 不小于,在 SELECT語句的 WHERE子句中可以使用算術(shù)比較運算符對指定的列進展比較,應(yīng)指出的是,在MS SQL SERVER中, <>不是不等于的意思WHERE 字段 1比較運算符值專業(yè)資料整理WORD格式在 SQL 語句中,如果在 WHERE子句中比較的時整數(shù)型數(shù)據(jù),那么可以不用使用單引號,如果比較的時其他的數(shù)劇類型,如字符串、日期等,那么必須用單引號引起來,另外,WHERE 子句中比較運算符的左側(cè)和右側(cè)的
18、數(shù)據(jù)類型必須是類型兼容的BETWEEN AND 運算符字段 1BETWEEN 值 1AND 值 2在 SQL中使用 BETWEENAND 運算符可以查詢指定條件X圍的記錄,也可以使用NOT BETWEEN AND 運算符來排除一些記錄IN 運算符查詢與列表匹配的記錄字段 1IN 屬性值1,屬性值2專業(yè)資料整理WORD格式在 SQL語句中也可以使用 NOT IN 來排除一些記錄SELECT teaID,teaName,age,sex,dept FROM T_teacherWHERE dept IN(計算機系 ,數(shù)學(xué)系 )字符串比較使用比較運算符對字符串進展比較在使用比較運算符對字符串進展查詢和比
19、較時,有的數(shù)據(jù)庫需要區(qū)分大小寫,如 ORACLE,但是在 MS SQL SERVER 和 MYSQL中不區(qū)分,為了防止由于不注意字符串大小寫而查詢不到正確的結(jié)果,可以使用干將字符串轉(zhuǎn)換為大小的函數(shù)UPPER LOWER對字符串進展轉(zhuǎn)換專業(yè)資料整理WORD格式使用BINARY關(guān)鍵字對字符串進展二進制比較專業(yè)資料整理WORD格式BINARY可將字符串轉(zhuǎn)換為二進制對象再進展比較SELECT string1比較運算符BINARYstring2或者 SELECT BINARYstring1比較運算符string2專業(yè)資料整理WORD格式邏輯查詢在 SQL中邏輯查詢主要包括ANDORNOT 三種ANDSE
20、LECT stuID,stuName,age,sexFROM T_studentWHERE age>20 AND sex=男 SQL語句中 AND 運算符兩側(cè)的條件必須都為TRUE,否那么將顯示FALSE使用 OR 運算符查詢滿足任一條件的記錄SELECT teaID,teaName,age,sex,dept,professionFROM T_teacherWHERE age>45OR profession=教授 專業(yè)資料整理WORD格式使用 NOT 運算符查詢滿足相反條件的記錄在 MS SQL SERVER中,使用代替NOT專業(yè)資料整理WORD格式空值查詢當(dāng)使用 NULL 查詢數(shù)
21、據(jù)表中的記錄是否為空時,不能使用比較運算符,只能是用或者使用 IS NOT NULL,如果使用運算符對NULL進展比較其查詢條件返回的結(jié)果始終是也就是說使用比較運算符對NULL 值進展比較不會檢索出任何結(jié)果IS NULLFALSE,專業(yè)資料整理WORD格式使用 LIKE操作符實現(xiàn)模糊查詢匹配任意單個字符在 SQL中,通配符“ _表示單個字符,一個“ _只能表示一個字符SELECT stuID,stuName,age,sex,birth FROM T_studentWHERE stuID LIKEs_3專業(yè)資料整理WORD格式(WHERE stuID NOT LIKEs_3)MYSQL數(shù)據(jù)庫中的
22、LIKE操作符進展匹配時,對字母的大小寫不敏感匹配 0 個或者多個字符通配符“ %表示 0 個或者多個字符SELECT stuID,stuName,age,sex,birthFROMT_studentWHEREstuName LIKE 王 %LIKE關(guān)鍵字后面的匹配符必須使用單引號,對字母進展匹配時,還要注意區(qū)分大小寫使用轉(zhuǎn)義字符如果在查詢時數(shù)據(jù)表中的某個字段中的字符值本身就包含了“%和“ _,這時就要用到轉(zhuǎn)義字符,用關(guān)鍵字ESCAPE來轉(zhuǎn)義,步驟:1. 在需要轉(zhuǎn)義的“ % “_字符前加一個轉(zhuǎn)義符,該轉(zhuǎn)義符可以是任意字符2. 在 ESCAPE關(guān)鍵字后指定該轉(zhuǎn)義字符的名稱SELECT deptI
23、D,deptNameFROM T_deptWHERE deptID LIKE%$_%ESCAPE$使用 REGEXP關(guān)鍵字進展模式匹配1. 用來匹配字符串的開場2. $ 用來匹配字符串的結(jié)尾3. 在方括號中的任意字符都可以匹配4. + 表示用于匹配的該字符在匹配的字符串中出現(xiàn)至少一次或?qū)掖?. *表示用于匹配的該字符在匹配的字符串中出現(xiàn)零次或者屢次6. () 括號中的內(nèi)容將被看成是一個整體7. m 整數(shù) m 表示花括號中的字符串需要出現(xiàn)的次數(shù)表中數(shù)據(jù)的排序與分組專業(yè)資料整理WORD格式使用GROUP BY子句對數(shù)據(jù)記錄進展排序?qū)I(yè)資料整理WORD格式指定表中的一列進展排序?qū)I(yè)資料整理WORD格
24、式使用 ORDER BY可對查詢的結(jié)果進展排序,ASC表升序,DESC表降序?qū)I(yè)資料整理WORD格式ORDER BY column1 ASC|DESC專業(yè)資料整理WORD格式SELECT teaID,teaName,dept,profession,salaryFROM T_teacherORDER BY salary ASC如果指定要排序的列中存在空值,那么在升序排列中顯示在最前,降序排列中顯示在最后專業(yè)資料整理WORD格式ORDER BY也可以放在WHERE子句后面SELECT teaID,teaName,dept,profession,salaryFROM T_teacherWHERE d
25、ept=計算機系 ORDER BY salary ASC指定表中列的位置序號進展排序SELECT teaID,teaName,dept,profession,salaryFROM T_teacherORDER BY 5 ASCsalary 的位置是5,可以用 5 來代替對 SELECT語句中的非選擇列進展排序使用 ORDER BY子句中也可以對沒有在SELECT中出現(xiàn)的選擇列進展排序操作SELECT teaID,teaName,dept,professionFROM T_teacherWHERE dept=計算機系 ORDER BY salary ASC不過一般的情況下都會使用在SELECT中
26、出現(xiàn)的列進展排序,這樣顯得很直觀指定數(shù)據(jù)表中的多列進展排序ORDER BY 可以指定數(shù)據(jù)表中的多列進展排序操作,這時指定排序的列之間使用分號隔開ORDER BY column1,column2 ASC|DESCSLEECT teaID,teaName,dept,profession,salaryFROM T_teacherORDER BY dept,salary使用 ORDER BY進展多列排序時,遵循以下規(guī)那么:1. 根據(jù) ORDER BY指定的第一列,按照指定的升序或者降序進展排序2.當(dāng) ORDER BY 子句中指定的第一列中出現(xiàn)一樣的數(shù)據(jù)時,再根據(jù)ORDER BY 指定的第二列的升序或者降序進展排列3.當(dāng) ORDER BY 子句中指定的第二列中出現(xiàn)一樣的數(shù)據(jù)時,再根據(jù)ORDER BY 指定的第三列的升序或者降序進展排列,依次類推常用的聚合函數(shù)專業(yè)資料整理WORD格式函數(shù)功能專業(yè)資料整理WORD格式COUNT列 | 表達式COUNT(*)MAX(列 | 表達式 )計算給定列或者表達式中的非空行數(shù)計算數(shù)據(jù)表中的總行數(shù),包括空值計算給定列或者表達式中的最大值專業(yè)資料整理WORD格式MIN()專業(yè)資料整理WORD格式SUM(列 | 表達式)專業(yè)資料整理WORD格式AVG()使用 MYSQL數(shù)據(jù)庫限制結(jié)果集行數(shù)LIMIT nLIMIT offset,n連
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024某影視公司與某音頻公司關(guān)于影視作品音頻制作之合同
- 2025年度數(shù)據(jù)中心房屋租賃及電力設(shè)備供應(yīng)合同4篇
- 2025年度智慧城市大數(shù)據(jù)分析服務(wù)合同4篇
- 2025年度幼兒園幼兒保健服務(wù)承包合同:健康護航協(xié)議4篇
- 2024版項目委托融資服務(wù)協(xié)議書
- 2025年度文化產(chǎn)業(yè)項目投資合同3篇
- 2025年度智能電網(wǎng)建設(shè)出資協(xié)議參考文本4篇
- 2025年度商場櫥窗窗簾設(shè)計安裝與廣告合作合同3篇
- 2025年度新能源汽車充電設(shè)施代付款協(xié)議4篇
- 《建筑業(yè)稅收政策培訓(xùn)教學(xué)課件》
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 2024年一級建造師考試思維導(dǎo)圖-市政
- 高壓架空輸電線路反事故措施培訓(xùn)課件
- 隱私計算技術(shù)與數(shù)據(jù)安全保護
- 人教版小學(xué)數(shù)學(xué)五年級上冊口算題卡
- 《子宮肉瘤》課件
- 小學(xué)防范詐騙知識講座
- 當(dāng)保安夜班睡覺管理制度
評論
0/150
提交評論