mysql基礎(chǔ)入門_第1頁
mysql基礎(chǔ)入門_第2頁
mysql基礎(chǔ)入門_第3頁
mysql基礎(chǔ)入門_第4頁
mysql基礎(chǔ)入門_第5頁
免費預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

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

文檔簡介

1、Mysql 基礎(chǔ)入門SQl組成語法DML(Data Manipulation Language 數(shù)據(jù)操作語言)查詢、插入、刪除和修改數(shù)據(jù)庫中的數(shù)據(jù);SELECT INSERT UPDATE DELET育DCL(Data Control Language數(shù)據(jù)控制語言)用來控制存取許可、存取權(quán)限等;GRANT REVOKE等;DML(Data Definition Language 數(shù)據(jù)定義語言)用來建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義其列CREATE TABLEDROP TABLE、ALTER TABLED功能函數(shù)日期函數(shù)、數(shù)學(xué)函數(shù)、字符函數(shù)、系統(tǒng)函數(shù);Mysql 數(shù)據(jù)類型1. 主要類型分類( 1 )數(shù)

2、值型數(shù)值是諸如32 或 153.4 這樣的值。mysql 支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點數(shù)后跟“ e”或"e"、一個符號(“ +”或“-")和一個整數(shù)指數(shù)來表示。1.24e+12 和 23.47e-1 都是合法的科學(xué)表示法表示的數(shù)。而 1.24e12 不是合法的,因為指數(shù)前的符號未給出。浮點數(shù)由整數(shù)部分、一個小數(shù)點和小數(shù)部分組成。整數(shù)部分和小數(shù)部分可以分別為空,但不能同時為空。數(shù)值前可放一個負號“- ”以表示負值。( 2)字符(串)型字符型 (也叫字符串型,簡稱串)是諸如“ hello, world! ”或“一個饅頭引起的血案”這樣的值,或者是電話號碼 8

3、7398413 這樣的值。既可用單引號也可用雙引號將串值括起來。初學(xué)者往往分不清數(shù)值87398143 和字符串87398143 的區(qū)別。都是數(shù)字啊,怎么一個要用數(shù)值型,一個要用字符型呢?關(guān)鍵就在于:數(shù)值型的87398143 是要參與計算的,比如它是金融中的一個貨款總額;而字符型的87398143 是不參與計算的,只是表示電話號碼,這樣的還有街道號碼、門牌號碼等等,它們都不參與計算。( 3)日期和時間型日期和時間是一些諸如“2006 -07- 12”或“12:30:43 ”這樣的值。 mysql 還支持日期 / 時間的組合,如“2006 -07-1212:30:43 ”。( 4) null 值n

4、ull表示未知值。比如填寫表格中通訊地址不清楚留空不填寫,這就是null值。我們用create table語句創(chuàng)建一個表(參看前面的章節(jié)),這個表中包含列的定 義。例如我們在前面創(chuàng)建了一個joke表,這個表中有 content和writer兩個列:create table(content varchar(20) not null,writer varchar(10) null )2.具體類型介紹2.1 數(shù)值列類型mysql有整數(shù)和浮點數(shù)值的列類型,如表 1所示。整數(shù)列類型可以有符號也可無符 號。有一種特殊的屬性允許整數(shù)列值自動生成,這對需要唯一序列或標(biāo)識號的應(yīng)用系統(tǒng)來說是非常有用的。說明tin

5、yint非常小的整數(shù)smallint較小整數(shù)mediumint中等大小整數(shù)int標(biāo)準(zhǔn)整數(shù)bigint較大整數(shù)float單精度浮點數(shù)double雙精度浮點數(shù)decimal一個串的浮點數(shù)表1:數(shù)值列類型每種數(shù)值類型的名稱和取值范圍如表2所示。類型說明取值范圍tinyint(m)后符號值: 無符號值:-128 到 1270 到 255 ( 0(-27到28 -到271)-1)smallint(m)后符號值: 無符號值:-32768 到 32767 (0 到 65535 (0 到 212156 -到 215 -1)1)mediumint(m)后符號值:22 3 - 無符號值:-8388608 到1 )

6、0 到 167772158388607(0到(-22 3 至 IJ22 4 -1)int(m)后符號值:231- 1)無符號值:-2147683648 到 21476836470 到 4294967295 ( 0 到 232(-231-1)到bigint(m)后符號值:-9223372036854775808到9223373036854775807 (- 263 到 263-1 )無符號值:0 到 18446744073709551615 ( 0 到 264-1)float(m,d)最小非零值:± 1.1 75494351e - 38double(m,d)最小非零值:土 2.2250

7、738585072014e-308decimal(m,d)可變;其值的范圍依賴于 m和d表2:數(shù)值列類型的取值范圍各種類型值所需白存儲量如表 3所示。類型說明存儲需求tinyint(m)1 Rsmallint(m)2字節(jié)mediumint(m)3寸int(m)4寸bigint(m)8Rfloat(m,d)4寸double(m, d)8Rdecimal (m, d)m字節(jié)(mysql < 3.23 ) , m+2字節(jié) (mysql > 3.23)表3:數(shù)值列類型的存儲需求mysql 提供了五種整型: tinyint 、smallint 、mediumint 、int 和 bigint

8、 °int 為 integer 的縮寫。這些類型在可表示的取值范圍上是不同的。整數(shù)列可定義為unsigned從而禁用負值;這使列的取值范圍為 0以上。各種類型的存儲量需求也是不同的。取值范圍較大的類型所需的存儲量較大。mysql提供三種浮點類型:float、double和decimal。與整型不同,浮點類型不能是unsigned的,其取值范圍也與整型不同,這種不同不僅在于這些類型有最大值,而 且還有最小非零值。最小值提供了相應(yīng)類型精度的一種度量,這對于記錄科學(xué)數(shù)據(jù)來說是非常重要的(當(dāng)然,也有負的最大和最小值)。在選擇了某種數(shù)值類型時,應(yīng)該考慮所要表示的值的范圍,只需選擇能覆蓋要取值的

9、范圍的最小類型即可。選擇較大類型會對空間造成浪費,使表不必要地增大,處理起來沒有選擇較小類型那樣有效。對于整型值,如果數(shù)據(jù)取值范圍較小,如人員年齡或兄弟姐妹數(shù),則tinyint最合適。mediumint能夠表示數(shù)百萬的值并且可用于更多類型的值,但存儲代價較大。bigint在全部整型中取值范圍最大,而且需要的存儲空間是表示范圍次大的整型int類型的兩倍,因此只在確實需要時才用。對于浮點值,double占用float的兩倍空間。除非特別需要高精度或范圍極大的值,一般應(yīng)使用只用一半存儲代價的float型來表示數(shù)據(jù)。在定義整型列時,可以指定可選的顯示尺寸m如果這樣,m應(yīng)該是一個1到255的整數(shù)。它表示

10、用來顯示列中值的字符數(shù)。例如,mediumint(4)指定了一個具有4個字符顯示寬度的mediumint歹U。如果定義了一個沒有明確寬度的整數(shù)列,將會自動分配給它一個缺省的寬度。缺省值為每種類型的“最長”值的長度。如果某個特定值的可打印表示需要不止m個字符,則顯示完全的值;不會將值截斷以適合m個字符。對每種浮點類型,可指定一個最大的顯示尺寸m和小數(shù)位數(shù)do m的值應(yīng)該取1到255。d的值可為0 到3 0,但是不應(yīng)大于 m - 2 (如果熟悉odbc 術(shù)語,就會知 道m(xù)和d 對應(yīng)于odbc 概念的"精度"和"小數(shù)點位數(shù)”)。 m和d對float和 double 都是

11、可選的,但對于 decimal是必須的。在選項 m和d時,如果省略了它們,則 使用缺省值。2.2 字符串列類型mysql提供了幾種存放字符數(shù)據(jù)的串類型,其類型如下:類型名說明char定長字符串varchar可變長字符串tinyblob非常小的blob (二進制大對象)blob小 blobmediumblob中等的bloblongblob大 blobtinytext非常小的文本串一jtext小文本串Jmediumtext中等文本串ongtext大文本串enum枚舉;列可賦予某個枚舉成員set集合;列可賦予多個集合成員表4:字符串列類型下表給出了 mysql定義串值列的類型,以及每種類型的最大尺寸

12、和存儲需求。對 于可變長的列類型,各行的值所占的存儲量是不同的,這取決于實際存放在列中的值的長度。這個長度在表中用l表示。類型說明|最大尺寸存儲需求Jchar(m)m 字節(jié)_jm 字節(jié)varchar(m)m字節(jié)l + 1字節(jié)tinyblob,tinytext28-1 Bl +1 Bblob, text216節(jié)-1字l +2字節(jié)mediumblob,mediumtext224-1 Bl +3klongblob,longtext232-1 Bl +4kenum( "value1 " ,"value2 ",)65535 個成員或2字節(jié)set ( "v

13、alue1 ",“value2 ”,)64個成員1、2、3、4 或 8表5:串列類型最大尺寸及存儲需求l以外所需的額外字節(jié)為存放該值的長度所需的字節(jié)數(shù)。mysql通過存儲值的內(nèi)容及其長度來處理可變長度的值。這些額外的字節(jié)是無符號整數(shù)。請注意,可變長類型的最大長度、此類型所需的額外字節(jié)數(shù)以及占用相同字節(jié)數(shù)的無符號整數(shù)之間的對應(yīng)關(guān)系。例如,mediumblob 值可能最多224 - 1字節(jié)長并需要3個字節(jié)記錄其結(jié)果。3個字節(jié)的整 數(shù)類型mediumint的最大無符號值為 224 - 1。這并非偶然。2.3 日期時間列類型mysql提供了幾種時間值的列類型,它們分別是: date、date

14、time、time、 timestamp和year。下表給出了 mysql為定義存儲日期和時間值所提供的這些類型,并給 出了每種類型的合法取值范圍。類型名說明dateyyyy -mm-dd格式表tk的日期值timehh:mm:ss格式表示的時間值datetimeyyyy -mm-dd hh:mm:ss”格式timestampyyyymmddhhmm s游式表小 的時間戳值year“yyyy”格式的年份值表6:日期時間列類型色名取值范圍存儲需求date“1000-01- 01” 至U “9999 -12- 31”3ktime“-838:59:59 ” 到 “ 838:59:59 ”3kdatet

15、ime“1000-01-0100:00:00 ”至U“9999-12-3123:59:59 ”8字節(jié)timestamp19700101000000 到 2037 年的某41個時刻year1901 到 21551 B表7:日前時間列類型的取值范圍和存儲需求2.4 空值 NULL下面舉個例子:create table student (name varchar(20) not null ,Chinesetinyint(3),maths tinyint(3) ,englishtinyint(3),birthday date )這個例子創(chuàng)建一個 student表,這個表中有name字段,字符類型列,不

16、允許 null (空值)。有 Chinese、maths和english 三個整數(shù)類型列。還有個 birthday 日期類型列。三、mysql查詢的五種子句where( 條件查詢)、having (篩選)、group by (分組)、order by (排序)、limit (限制結(jié)果數(shù))1、where常用運算符:力較運算行<>>,>, r <-m(vlrv2.vn)between vl and v2 在vl至v2之間包含vl,v2)額運算將not ( !)涉輜茸or( | )遺輯或and ( && )理諾與where price>=3000

17、and price <= 5000 or price >=500 and price <=1000500-10003000-5000where price not between 3000 and 5000不在3000與5000之間的他一查詢like 像通配他%任急字在_顯個字符where goods_name like 語基亞where goods name like 諾基亞N_12、group by 分制一般白況Fgroup計江陰薨言鶴)一起使電力有最義13: select goods_id,xauid.max(shop_price) from goo

18、ds group by cat_id;這里J?出*崎舁中的Oood_name?F琳1的!國為shop.pncu快用了max適孰,那么它是取舒大的,iTD頹O快用Tgroup by分 組,那Zgoods_name#沒有史用於言球.它六EJdT的一t商品,并不會邸ishopAK硒克而改交mysq中的五種女計邳如(1) maxsdcct rnax(go<xls_pflce) from goods意能取出最大的價格的值,只有值5三嶼干欄目下價格最高3nselect cat-kl,max(goods.pnce) from goos group by cat-id;本出價格最看g辭鱷setect g

19、oodsJd.(nax(goods.pnce) from goods group by goods.kl;(2) min:小偏(3) sum:求Z裁相比g閨5急扣seiea sum(goods_number) from goods;(4) avg:求平t3口求尋個欄目的商品干腕潛select cat-kj,avgCgoods.pdce) from goods group by catjd;(5) count:求總行船9架衽個欄目下面由恢select cat_idxount(*) from goods group by cat_id;年力力要杷旬個字段名合成變量來理斛,它可以迎行運且中學(xué)例:芭角

20、衣店每個商品價格比市場價低多少;select goods.drgoods_name,goods_pnce-market_pnce from goods;查西野欄目下面積壓的縷select cacjdrsum(goods_pnce*qoods number) from goods group by cat id;#可以用d睬給計算結(jié)果取個別名#select ca Jid,sim(goods)rice * goods.number) as hk from goods group by cat_id 不僅列名可以取月信,表單也可以取別名3、having與where的異同息havmgqMier啜低,可

21、以低送捌£ “hereG侑表達法2弓h(huán)avln距就田2寫“here升燈表中的夕墳建作用,金翊夕嵬gsng對亙除果甲的帙揮作用群超咨道本店商品價格比市場價飪多少銃,招麻。研以上口酒品select goods_id,good_name,market_pnce - shop_pnce as s from goods having s>200 ;這里入HL中相沱十因方s是堂部4臬 t)Mi”已只能對表中的字蟆名第造父祟用、加日叮;尼貝任:select joodsidrQoods_name from goods where martcet_pnce sx)p pace > 200;同時使用where與havingselect cauid,goods_name,market_pnce - shop_pnce as s from goods where cauid = 3 having s > 200:.點詢枳壓貨5槌過2萬元雌目,以及i費欄目積壓的物select cat_ld,sum(shop_pnce * goods_number) as t from goods jroup by cat-id having s > 20000,自詞司門及兩(以上科目不及格的學(xué)生的干打分先計卓所有學(xué)生的平均分sel

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論