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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

分為整型和浮點型整型:

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

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

字符串:

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

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

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

說明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每個數(shù)據(jù)類型的取值范圍不同,故分別可以表示不同的數(shù)值范圍。在定義整型列時,可以指定可選的顯示尺寸M(見上表),M是從1到255的值,它表示顯示列中值的字符數(shù)。例如:INT(4)意思是指定了一個具有4個字符顯示寬度的INT列。如果定義了一個沒有明確寬度的整數(shù)列,則會分配缺省的寬度,缺省值為每種類型的最長值的長度。對于每種浮點型,可指定一個最大的顯示尺寸M和小數(shù)位數(shù)D,M的取值應該是0-30,但小于M-2。M和D對于DECIMAL是必須的。AUTO_INCREMENT

自動標識列,在需要產生唯一標志符號或者順序值時候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個AUTO_INCREMENT列時,MySQL會插入一個比該列中當前最大值大1的值,一個表中最多能有一個有此屬性的列。對于想使用此屬性的列應該定義為NOTNULL,并定義為PRIMARYKEY或者定義為UNIQUE鍵。 舉例:

createtablet(idintauto_incrementnotnullprimarykey);UNSIGNED

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

舉例:

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

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

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

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

createtabletest2(num1intdefault1,num2intzerofill);

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

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

CHAR把這個大小視為值的準確大小(用空格填補比較短的值)。

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

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

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

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

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

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

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

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

邏輯運算符

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

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

字符串自動轉換數(shù)字比較運算符

比較運算符允許我們對表達式的左邊和右邊進行比較。一個比較運算符的結果總是1(真),0(假),或是為NULL(不能確定)。比較運算符可以用于比較數(shù)字和字符串。數(shù)字作為浮點值比較,而字符串以不區(qū)分大小寫的方式進行比較(除非使用特殊的BINARY二進制關鍵字)MySQL數(shù)據(jù)庫中的通配符“%”(百分號)

代表任意長度(長度可以為0)的字符串舉例:

a%b表示以a開頭,以b結尾的任意長度的字符串。如acb,addgb,ab等都滿足該匹配串“_”(下橫線)

代表任意單個字符舉例:

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

邏輯運算符位運算符如下表所示:

“~” 表示按位取反。

“^”

表示異或。常用函數(shù)字符串函數(shù)數(shù)值函數(shù)日期和時間函數(shù)流程函數(shù)其他常用函數(shù)組函數(shù)類型轉換函數(shù)格式化函數(shù)數(shù)值常用函數(shù)字符串函數(shù)日期和時間常用函數(shù)流程函數(shù)其他函數(shù)常用函數(shù)聚合函數(shù)對一組值進行運算,并返回單個值。也叫組合函數(shù)。COUNT(*|列名) 統(tǒng)計行數(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類型轉換函數(shù)CAST函數(shù)格式:CAST(expr,AStype)支持以下數(shù)據(jù)類型:BINARYCHARDATETIMEDATETIMESIGNEDUNSIGNED

插入記錄操作語法:

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

values(“zhangsan”,20);INSERT

[INTO]<表名>[列名]

VALUES

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

×插入數(shù)據(jù)行4注意事項6:具有缺省值的列,可以使用DEFAULT(缺?。╆P鍵字來代替插入的數(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

<源表名>學生、課程、成績插入數(shù)據(jù)學生信息'95001','洛燕妮','女',20,'信息系''95002','歐陽炎','男',19,'計算機系''95003','何東升','男',21,'美術系''95004','劉晨','男',18,'計算機系''95005','沙明華','女',21,'美術系''95006','歐陽寶寶','男',19,'美術系’課程信息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子句是判斷語句,用來設定條件,限制只更新匹配的行,如果不帶where子句,則更新所有行數(shù)據(jù)。舉例:

將student表中的所有學生名稱為"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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論