db4MySQL語言與數(shù)據(jù)查詢_第1頁
db4MySQL語言與數(shù)據(jù)查詢_第2頁
db4MySQL語言與數(shù)據(jù)查詢_第3頁
db4MySQL語言與數(shù)據(jù)查詢_第4頁
db4MySQL語言與數(shù)據(jù)查詢_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、復(fù)習(xí)數(shù)據(jù)庫的創(chuàng)建與修改數(shù)據(jù)表的創(chuàng)建與修改約束的創(chuàng)建MySQL語言語法MySQL數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型種類數(shù)據(jù)類型種類數(shù)值列類型數(shù)值列類型字符串列類型字符串列類型日期和時間列類型日期和時間列類型數(shù)據(jù)類型種類數(shù)據(jù)類型種類數(shù)值型數(shù)值型分為整型和浮點(diǎn)型分為整型和浮點(diǎn)型整型:整型:可以由十進(jìn)制和十六進(jìn)制表示整數(shù)由數(shù)字序列組成,如:1,100。由十六進(jìn)制表示方法:0 x且后面加19和AF 的任意數(shù)字或字母,并且0 x中的X不能大寫。浮點(diǎn)型浮點(diǎn)型:浮點(diǎn)數(shù)由一個數(shù)字加一個小數(shù)點(diǎn)再加上一個數(shù)字組成。兩個數(shù)字序列不能同時為空。字符串字符串:由單引號或者雙引號括起來的字符或者數(shù)字。如:”abc”,abc10字符串

2、中要用轉(zhuǎn)義字符才能表示的特殊符號日期和時間值日期和時間值是存儲如“2005 -1-1” 或者“12:00:00”這樣的數(shù)值的值。在MySQL中日期是按”年-月-日”的順序。NULL值值是一種無類型的值,表示“空,什么也沒有”。數(shù)值列類型數(shù)值列類型 MySQL為除了NULL值外的所有通用數(shù)據(jù)類型提供了列類型。列類型是一種手段,通過這種手段可以描述表的列可以包含什么樣類型的值。數(shù)值列類型數(shù)值列類型 所有數(shù)值列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:數(shù)值列類型包括整型和浮點(diǎn)型 說明:TINYINT, SAMLLINT, MEDIUMINT, INT, BIGINT每個數(shù)據(jù)類型的取值范圍不同,故分別

3、可以表示不同的數(shù)值范圍。在定義整型列時,可以指定可選的顯示尺寸M(見上表),M是從1到255的值,它表示顯示列中值的字符數(shù)。例如:INT(4) 意思是指定了一個具有4個字符顯示寬度的INT列。如果定義了一個沒有明確寬度的整數(shù)列,則會分配缺省的寬度,缺省值為每種類型的最長值的長度。對于每種浮點(diǎn)型,可指定一個最大的顯示尺寸M和小數(shù)位數(shù)D,M的取值應(yīng)該是0-30,但小于M-2。M和D對于DECIMAL是必須的。AUTO_INCREMENT 自動標(biāo)識列,在需要產(chǎn)生唯一標(biāo)志符號或者順序值時候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個AUTO_INCREMENT列時,MySQL會插入一

4、個比該列中當(dāng)前最大值大1 的值,一個表中最多能有一個有此屬性的列。對于想使用此屬性的列應(yīng)該定義為NOT NULL,并定義為PRIMARY KEY 或者定義為UNIQUE鍵。舉例:create table t(id int auto_increment not null primary key);UNSIGNED 無符號,此屬性禁用負(fù)值,將數(shù)值的取值范圍從零開始。舉例:create table t(num tinyint , num2 tinyint unsigned);數(shù)值列的完整性約束NULL和和NOT NULL 默認(rèn)為NULL,即插入值時沒有在此字段插入值時自動填NULL,如果指定了NOT

5、 NULL,則必須在插入值時在此字段添入值,不允許插入NULL值。DEFAULT 可以通過此屬性來指定一個缺省值,即如果沒有在此列添加值,那么默認(rèn)添加DEFAULT后指定值。ZEROFILL 前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。舉例:create table test2(num1 int default 1,num2 int zerofill); 字符串列類型字符串列類型所有字符串列類型及其說明和所占的字節(jié)數(shù)見下表: 說明:對于可變長的字符串類型,其長度取決于實(shí)際存放在列中的值的長度。此長度在上表中用L來表示。附加若干額外字節(jié),用來記錄字符串長度,也就是說總長度等于Ln(n1、2、3、4、

6、8)CHAR和和VARCHAR類型類型CHAR類型和VARCHAR類型長度范圍都是0255之間的大小。他們之間的差別在于MySQL處理存儲的方式:CHAR把這個大小視為值的準(zhǔn)確大小(用空格填補(bǔ)比較短的值)。VARCHAR類型把它視為最大值并且只使用了存儲字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個額外的字節(jié)記錄長度)。因而,較短的值當(dāng)被插入一個語句為VARCHAR類型的字段時,將不會用空格填補(bǔ)(然而,較長的值仍然被截短 )。BLOB和和TEXT類型類型BLOB是二進(jìn)制大對象,如果想存儲二進(jìn)制數(shù)BLOB將是最佳選擇,而TEXT與之相同,只是BOLOB按照二進(jìn)制編碼排序(區(qū)分大小寫),TEXT按照字符文本

7、模式排序(不區(qū)分大小寫)。ENUM 和和SET類型類型是特殊的串類型,其列值必須從固定的串集中選擇,二者差別為前者必須是只能選擇其中的一個值,而后者可以多選。(不推薦使用)字符串列類型的可選屬性字符串列類型的可選屬性BINARY使用此屬性可以使列值作為二進(jìn)制串處理,即看成BLOB類型。NULL 和NOT NULL同數(shù)值型功能相同DEFAULT同數(shù)值型功能相同日期和時間列類型日期和時間列類型所有時間和日期列類型的類型名及其說明和所占的字節(jié)數(shù)見下表 : 說明:說明:每個時間和日期列類型都有一個零值,當(dāng)插入非法數(shù)當(dāng)插入非法數(shù)值時就用零值來添加值時就用零值來添加表示日期時必須先按:年,月,日的順序給出

8、DATE ,TIME ,DATETIME分別是存儲日期,時間與日期和時間的組合,其格式為“YYYY-MM-DD”,“hh:mm:ss”和“YYYY-MM-DD hh:mm:ss”,對于DATETIME類型,日期和時間部分都需要TIMESTAMP時間戳列類型以YYYYMMDDhhmmss的格式來表示值,其取值范圍是19700101000000到2037年的某個時間,主要用于記錄更改或創(chuàng)建某個記錄總結(jié):常用數(shù)據(jù)類型分類備注和說明數(shù)據(jù)類型說明二進(jìn)制數(shù)據(jù)類型存儲非子符和文本的數(shù)據(jù)BLOB可用來存儲圖像文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合char固定長度的非 Unicode 字符數(shù)據(jù)v

9、archar可變長度非 Unicode 數(shù)據(jù)text存儲長文本信息日期和時間日期和時間在單引號內(nèi)輸入time時間date日期datetime 日期和時間數(shù)值型數(shù)據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負(fù)數(shù)以及浮點(diǎn)數(shù)intsmallint整數(shù)floatdouble浮點(diǎn)數(shù)貨幣數(shù)據(jù)類型用于財務(wù)數(shù)據(jù)decimal定點(diǎn)數(shù)Bit數(shù)據(jù)類型表示是/否的數(shù)據(jù)bit存儲布爾數(shù)據(jù)類型MySQL運(yùn)算符運(yùn)算符 算數(shù)運(yùn)算符算數(shù)運(yùn)算符 比較運(yùn)算符比較運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)算符 位運(yùn)算符位運(yùn)算符算數(shù)算數(shù)運(yùn)算符運(yùn)算符用字符串表示的數(shù)字在任何可能便于計算的地方都被自動地轉(zhuǎn)換為數(shù)字。當(dāng)執(zhí)行轉(zhuǎn)換時,MySQL遵循兩個基本規(guī)則:如果第一位是數(shù)

10、字的字符串被用于一個算數(shù)運(yùn)算中,那么它被轉(zhuǎn)換為這個數(shù)字的值。如果一個包含字符和數(shù)字混合的字符串不能被正確的轉(zhuǎn)換為數(shù)字,那么它被轉(zhuǎn)換成0。 字符串自動轉(zhuǎn)換數(shù)字字符串自動轉(zhuǎn)換數(shù)字比較運(yùn)算符比較運(yùn)算符 比較運(yùn)算符允許我們對表達(dá)式的左邊和右邊進(jìn)行比較。一個比較運(yùn)算符的結(jié)果總是1(真),0(假),或是為NULL(不能確定)。 比較運(yùn)算符可以用于比較數(shù)字和字符串。數(shù)字作為浮點(diǎn)值比較,而字符串以不區(qū)分大小寫的方式進(jìn)行比較(除非使用特殊的BINARY二進(jìn)制關(guān)鍵字)MySQL數(shù)據(jù)庫中的通配符“%” (百分號百分號) 代表任意長度(長度可以為0)的字符串舉例舉例:a%b表示以a開頭,以b結(jié)尾的任意長度的字符串。如

11、acb,addgb,ab 等都滿足該匹配串“_ ”(下橫線下橫線) 代表任意單個字符舉例舉例:a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串。如acb,afb等都滿足該匹配串 邏輯運(yùn)算符位運(yùn)算符如下表所示:“” 表示按位取反。“” 表示異或。常用函數(shù)字符串函數(shù)數(shù)值函數(shù)日期和時間函數(shù)流程函數(shù)其他常用函數(shù)組函數(shù)類型轉(zhuǎn)換函數(shù)格式化函數(shù)數(shù)值常用函數(shù)字符串函數(shù)日期和時間常用函數(shù)流程函數(shù)其他函數(shù)常用函數(shù)聚合函數(shù)對一組值進(jìn)行運(yùn)算,并返回單個值。也叫組合函數(shù)。COUNT(*|列名)統(tǒng)計行數(shù)AVG(數(shù)值類型列名)平均值SUM (數(shù)值類型列名)求和MAX(列名)最大值MIN(列名)最小值除了COUNT()以外

12、,聚合函數(shù)都會忽略NULL值。格式化函數(shù)FORMAT函數(shù)DATE_FORMAT()和TIME_FORMAT()函數(shù)%a %b %d %p %r %S%H %I %j %m %M%T %w %W %Y類型轉(zhuǎn)換函數(shù)CAST函數(shù)格式: CAST(expr, AS type)支持以下數(shù)據(jù)類型:BINARY CHAR DATE TIME DATETIME SIGNED UNSIGNED插入記錄操作插入記錄操作語法:敘述:如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用 或“ ”引號括起來舉例舉例1 1:向people表中添加一條記錄:insert into people(name,

13、age) values(“zhangsan”,20);INSERT INTO 列名列名 VALUES 插入案例創(chuàng)建一張學(xué)生信息表,往表中插入數(shù)據(jù)create table students(scode int not null auto_increment,sname varchar(20) not null,saddress varchar(20) default未知,sgrade int,semail varchar(20),ssex bit,primary key(scode);插入數(shù)據(jù)行 1注意事項(xiàng)注意事項(xiàng)1:1:每次插入一行數(shù)據(jù),不可能只插入半行或者幾列數(shù)據(jù),因每次插入一行數(shù)據(jù),不可能

14、只插入半行或者幾列數(shù)據(jù),因此,插入的數(shù)據(jù)是否有效將按照整行的完整性的要求來檢驗(yàn);此,插入的數(shù)據(jù)是否有效將按照整行的完整性的要求來檢驗(yàn);INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (小明) 插入數(shù)據(jù)行 2注意事項(xiàng)注意事項(xiàng)2:2:每個數(shù)據(jù)值的數(shù)據(jù)類型、精度和小數(shù)位數(shù)必須與相應(yīng)的列每個數(shù)據(jù)值的數(shù)據(jù)類型、精度和小數(shù)位數(shù)必須與相應(yīng)的列匹配;匹配;INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (張青裁,上海松江,ZQC,ZQCS, 男) 插入

15、數(shù)據(jù)行3注意事項(xiàng)注意事項(xiàng)4:4:如果在設(shè)計表的時候就指定了某列不允許為空,則必須插如果在設(shè)計表的時候就指定了某列不允許為空,則必須插入數(shù)據(jù);入數(shù)據(jù);INSERT INTO Students (SAddress,SGrade,SEmail,SSEX) VALUES (上海松江,6,ZQCS,0) 插入數(shù)據(jù)行4注意事項(xiàng)注意事項(xiàng)6:6:具有缺省值的列,可以使用具有缺省值的列,可以使用DEFAULTDEFAULT(缺?。╆P(guān)鍵字來代(缺?。╆P(guān)鍵字來代替插入的數(shù)值替插入的數(shù)值INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (張

16、青裁,DEFAULT,6,ZQCS,0)插入多行數(shù)據(jù)INSERT STUDENTS (SName,SGrade,SSex)VALUES(測試女生1,75,0), (測試女生2,77,0),(測試女生3,83,0),(測試男生1,81,1),(測試女生4,90,0),(測試男生2,94,1),(測試女生5,51,0),(測試男生3,53,1);INSERT INTO (列名)VALUES(), (), ()插入多行數(shù)據(jù)INSERT INTO TongXunLu (姓名,地址,電子郵件) SELECT SName,SAddress,SEmailFROM StudentsINSERT INTO (列

17、名)SELECT FROM 學(xué)生、課程、成績插入數(shù)據(jù)學(xué)生信息學(xué)生信息95001,洛燕妮洛燕妮,女女,20,信息系信息系 95002,歐陽炎歐陽炎,男男,19,計算機(jī)系計算機(jī)系 95003,何東升何東升,男男,21,美術(shù)系美術(shù)系 95004,劉晨劉晨,男男,18,計算機(jī)系計算機(jī)系 95005,沙明華沙明華,女女,21,美術(shù)系美術(shù)系 95006,歐陽寶寶歐陽寶寶,男男,19,美術(shù)系美術(shù)系課程信息課程信息1,JAVA2,C3,.NET成績信息成績信息95001,1,98 95002,1,50 95004,1,70 95003,4,95 95005,4,40 95006,4,77 95001,2,80

18、 95002,3,58 95006,2,70更改記錄操作更改記錄操作語法:敘述: where 子句是判斷語句,用來設(shè)定條件,限制只更新匹配的行,如果不帶where子句,則更新所有行數(shù)據(jù)。舉例: 將student表中的所有學(xué)生名稱為Alex的改為Tom: update student set sname=Tom where sname=Alex;UPDATE SET WHERE 更新數(shù)據(jù)行UPDATE Student SET SSEX = 0UPDATE Student SET Sdept =家政系 WHERE Sdept = 刺繡系UPDATE ScSET Grade = Grade + 5WHERE Grade = 95刪除記錄操作刪除記錄操作語法:敘述:此語句刪除表中的行,如果不帶where子句,則刪除整個表中的記錄,但是表不被刪除。舉例:刪除student表中的所有年齡小于18歲的記錄: delete from student where sage18;DELETE FROM WHERE 補(bǔ)充說明刪除學(xué)生編號為95005的學(xué)生信息包括成績信息delete from student,sc using student,sc

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論