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)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

復(fù)習(xí)數(shù)據(jù)庫的創(chuàng)建與修改數(shù)據(jù)表的創(chuàng)建與修改約束的創(chuàng)建MySQL語言語法MySQL數(shù)據(jù)類型數(shù)據(jù)類型種類數(shù)值列類型字符串列類型日期和時(shí)間列類型數(shù)據(jù)類型種類數(shù)值型

分為整型和浮點(diǎn)型整型:

可以由十進(jìn)制和十六進(jìn)制表示 整數(shù)由數(shù)字序列組成,如:1,100。 由十六進(jìn)制表示方法:0x且后面加1—9和 A—F的任意數(shù)字或字母,并且0x中的X不 能大寫。浮點(diǎn)型:

浮點(diǎn)數(shù)由一個數(shù)字加一個小數(shù)點(diǎn)再加上一 個數(shù)字組成。兩個數(shù)字序列不能同時(shí)為空。

字符串:

由單引號或者雙引號括起來的字符或者數(shù)字。 如:”abc”,‘a(chǎn)bc10’字符串中要用轉(zhuǎn)義字符才能表示的特殊符號日期和時(shí)間值 是存儲如“2005-1-1”

或者“12:00:00”這樣的數(shù)值的值。在MySQL中日期是按”年-月-日”的順序。NULL值 是一種無類型的值,表示“空,什么也沒有”。數(shù)值列類型

MySQL為除了NULL值外的所有通用數(shù)據(jù)類型提供了列類型。列類型是一種手段,通過這種手段可以描述表的列可以包含什么樣類型的值。數(shù)值列類型 所有數(shù)值列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:數(shù)值列類型包括整型和浮點(diǎn)型

說明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每個數(shù)據(jù)類型的取值范圍不同,故分別可以表示不同的數(shù)值范圍。在定義整型列時(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)志符號或者順序值時(shí)候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個AUTO_INCREMENT列時(shí),MySQL會插入一個比該列中當(dāng)前最大值大1的值,一個表中最多能有一個有此屬性的列。對于想使用此屬性的列應(yīng)該定義為NOTNULL,并定義為PRIMARYKEY或者定義為UNIQUE鍵。 舉例:

createtablet(idintauto_incrementnotnullprimarykey);UNSIGNED

無符號,此屬性禁用負(fù)值,將數(shù)值的取值范圍從零開始。

舉例:

createtablet(numtinyint,num2tinyintunsigned);數(shù)值列的完整性約束NULL和NOTNULL

默認(rèn)為NULL,即插入值時(shí)沒有在此字段插入值時(shí)自動填NULL,如果指定了NOTNULL,則必須在插入值時(shí)在此字段添入值,不允許插入NULL值。DEFAULT

可以通過此屬性來指定一個缺省值,即如果沒有在此列添加值,那么默認(rèn)添加DEFAULT后指定值。ZEROFILL

前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。 舉例:

createtabletest2(num1intdefault1,num2intzerofill);

字符串列類型所有字符串列類型及其說明和所占的字節(jié)數(shù)見下表:說明:對于可變長的字符串類型,其長度取決于實(shí)際存放在列中的值的長度。此長度在上表中用L來表示。附加若干額外字節(jié),用來記錄字符串長度,也就是說總長度等于L+n(n=1、2、3、4、8)CHAR和VARCHAR類型

CHAR類型和VARCHAR類型長度范圍都是0~255之間的大小。他們之間的差別在于MySQL處理存儲的方式:

CHAR把這個大小視為值的準(zhǔn)確大?。ㄓ每崭裉钛a(bǔ)比較短的值)。

VARCHAR類型把它視為最大值并且只使用了存儲字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個額外的字節(jié)記錄長度)。因而,較短的值當(dāng)被插入一個語句為VARCHAR類型的字段時(shí),將不會用空格填補(bǔ)(然而,較長的值仍然被截短)。BLOB和TEXT類型

BLOB是二進(jìn)制大對象,如果想存儲二進(jìn)制數(shù)BLOB將是最佳選擇,而TEXT與之相同,只是BOLOB按照二進(jìn)制編碼排序(區(qū)分大小寫),TEXT按照字符文本模式排序(不區(qū)分大小寫)。ENUM和SET類型 是特殊的串類型,其列值必須從固定的串集中選擇,二者差別為前者必須是只能選擇其中的一個值,而后者可以多選。(不推薦使用)字符串列類型的可選屬性BINARY

使用此屬性可以使列值作為二進(jìn)制串處理,即看成BLOB類型。NULL和NOTNULL

同數(shù)值型功能相同DEFAULT

同數(shù)值型功能相同日期和時(shí)間列類型所有時(shí)間和日期列類型的類型名及其說明和所占的字節(jié)數(shù)見下表 :說明:每個時(shí)間和日期列類型都有一個零值,當(dāng)插入非法數(shù)值時(shí)就用零值來添加表示日期時(shí)必須先按:年,月,日的順序給出DATE,TIME,DATETIME分別是存儲日期,時(shí)間與日期和時(shí)間的組合,其格式為“YYYY-MM-DD”,

“hh:mm:ss”和“YYYY-MM-DDhh:mm:ss”,對于DATETIME類型,日期和時(shí)間部分都需要TIMESTAMP

時(shí)間戳列類型以YYYYMMDDhhmmss的格式來表示值,其取值范圍是19700101000000到2037年的某個時(shí)間,主要用于記錄更改或創(chuàng)建某個記錄總結(jié):常用數(shù)據(jù)類型分類備注和說明數(shù)據(jù)類型說明二進(jìn)制數(shù)據(jù)類型存儲非子符和文本的數(shù)據(jù)BLOB可用來存儲圖像文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合char固定長度的非Unicode字符數(shù)據(jù)varchar可變長度非Unicode數(shù)據(jù)text存儲長文本信息日期和時(shí)間日期和時(shí)間在單引號內(nèi)輸入time時(shí)間date日期datetime日期和時(shí)間數(shù)值型數(shù)據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負(fù)數(shù)以及浮點(diǎn)數(shù)intsmallint整數(shù)floatdouble浮點(diǎn)數(shù)貨幣數(shù)據(jù)類型用于財(cái)務(wù)數(shù)據(jù)decimal定點(diǎn)數(shù)Bit數(shù)據(jù)類型表示是/否的數(shù)據(jù)bit存儲布爾數(shù)據(jù)類型MySQL運(yùn)算符

算數(shù)運(yùn)算符比較運(yùn)算符

邏輯運(yùn)算符

位運(yùn)算符算數(shù)運(yùn)算符

用字符串表示的數(shù)字在任何可能便于計(jì)算的地方都被自動地轉(zhuǎn)換為數(shù)字。當(dāng)執(zhí)行轉(zhuǎn)換時(shí),MySQL遵循兩個基本規(guī)則:如果第一位是數(shù)字的字符串被用于一個算數(shù)運(yùn)算中,那么它被轉(zhuǎn)換為這個數(shù)字的值。如果一個包含字符和數(shù)字混合的字符串不能被正確的轉(zhuǎn)換為數(shù)字,那么它被轉(zhuǎn)換成0。

字符串自動轉(zhuǎn)換數(shù)字比較運(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é)尾的任意長度的字符串。如acb,addgb,ab等都滿足該匹配串“_”(下橫線)

代表任意單個字符舉例:

a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串。如acb,afb等都滿足該匹配串

邏輯運(yùn)算符位運(yùn)算符如下表所示:

“~” 表示按位取反。

“^”

表示異或。常用函數(shù)字符串函數(shù)數(shù)值函數(shù)日期和時(shí)間函數(shù)流程函數(shù)其他常用函數(shù)組函數(shù)類型轉(zhuǎn)換函數(shù)格式化函數(shù)數(shù)值常用函數(shù)字符串函數(shù)日期和時(shí)間常用函數(shù)流程函數(shù)其他函數(shù)常用函數(shù)聚合函數(shù)對一組值進(jìn)行運(yùn)算,并返回單個值。也叫組合函數(shù)。COUNT(*|列名) 統(tǒng)計(jì)行數(shù)AVG(數(shù)值類型列名) 平均值SUM(數(shù)值類型列名) 求和MAX(列名) 最大值MIN(列名) 最小值除了COUNT()以外,聚合函數(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,AStype)支持以下數(shù)據(jù)類型:BINARYCHARDATETIMEDATETIMESIGNEDUNSIGNED

插入記錄操作語法:

敘述:如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用‘’或“”引號括起來舉例1:向people表中添加一條記錄:insertintopeople(name,age)

values(“zhangsan”,20);INSERT

[INTO]<表名>[列名]

VALUES

<值列表>插入案例創(chuàng)建一張學(xué)生信息表,往表中插入數(shù)據(jù)createtablestudents( scodeintnotnullauto_increment, snamevarchar(20)notnull, saddressvarchar(20)default‘未知’, sgradeint, semailvarchar(20), ssexbit, primarykey(scode));插入數(shù)據(jù)行1注意事項(xiàng)1:每次插入一行數(shù)據(jù),不可能只插入半行或者幾列數(shù)據(jù),因此,插入的數(shù)據(jù)是否有效將按照整行的完整性的要求來檢驗(yàn);INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(‘小明')×插入數(shù)據(jù)行2注意事項(xiàng)2:每個數(shù)據(jù)值的數(shù)據(jù)類型、精度和小數(shù)位數(shù)必須與相應(yīng)的列匹配;INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(‘張青裁’,‘上海松江’,ZQC,‘ZQC@S’,‘男')×插入數(shù)據(jù)行3注意事項(xiàng)4:如果在設(shè)計(jì)表的時(shí)候就指定了某列不允許為空,則必須插入數(shù)據(jù);INSERTINTOStudents(SAddress,SGrade,SEmail,SSEX)VALUES('上海松江',6,'ZQC@S',0)

×插入數(shù)據(jù)行4注意事項(xiàng)6:具有缺省值的列,可以使用DEFAULT(缺省)關(guān)鍵字來代替插入的數(shù)值INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('張青裁',DEFAULT,6,'ZQC@S',0)插入多行數(shù)據(jù)INSERTSTUDENTS(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);INSERTINTO

<表名>(列名)VALUES(<列名值>),(<列名值>),(<列名值>)……插入多行數(shù)據(jù)INSERTINTO TongXunLu('姓名','地址','電子郵件')

SELECT SName,SAddress,SEmailFROM StudentsINSERTINTO

<表名>(列名)SELECT

<列名>FROM

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

更改記錄操作語法:敘述:

where子句是判斷語句,用來設(shè)定條件,限制只更新匹配的行,如果不帶where子句,則更新所有行數(shù)據(jù)。舉例:

將student表中的所有學(xué)生名稱為"Alex"的改為"Tom":updatestudentsetsname="Tom"wheresname="Alex";UPDATE

<表名>

SET<列名

=更新值>

[WHERE<更新條件>]更新數(shù)據(jù)行UPDATEStudentSETSSEX=0UPDATEStudentSETSdept='家政系'

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論